* Add qemux86 machine.
* Glibc 2.4 updates from upstream OE.
* Add linux-x86 kernel to satisfy the deps.



git-svn-id: https://svn.o-hand.com/repos/poky/trunk@616 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
Chris Larson 2006-08-18 09:31:38 +00:00
parent 10984ecd54
commit 45b048283c
13 changed files with 1644 additions and 51 deletions

View File

@ -13,7 +13,8 @@ INHERIT += " package_ipk debian multimachine poky "
# For some reason, this doesn't work
# TARGET_OS ?= "linux"
TARGET_OS = "linux"
TARGET_FPU ?= "soft"
TARGET_FPU_arm ?= "soft"
TARGET_FPU_armeb ?= "soft"
IMAGE_ROOTFS_SIZE_ext2 = 131072
PARALLEL_INSTALL_MODULES = "1"

View File

@ -0,0 +1,10 @@
PCMCIA_MANAGER = "pcmciautils"
PREFERRED_PROVIDER_xserver = "xserver-kdrive"
GUI_MACHINE_CLASS = "bigscreen"
GPE_EXTRA_INSTALL += "gaim sylpheed"
MACHINE_FEATURES = "kernel26 apm alsa pcmcia bluetooth irda usbgadget"
IMAGE_FSTYPES ?= "tar.bz2"
ROOT_FLASH_SIZE = "100"

View File

@ -5,19 +5,9 @@
TARGET_ARCH = "arm"
IPKG_EXTRA_ARCHS = "armv4 armv5te"
PCMCIA_MANAGER = "pcmciautils"
PREFERRED_PROVIDER_xserver = "xserver-kdrive"
GUI_MACHINE_CLASS = "bigscreen"
GPE_EXTRA_INSTALL += "gaim sylpheed"
include conf/machine/include/tune-arm926ejs.conf
require conf/machine/include/qemu.conf
require conf/machine/include/tune-arm926ejs.conf
SERIAL_CONSOLE = "115200 ttyAMA0"
PREFERRED_PROVIDER_virtual/kernel = "linux-openzaurus"
MACHINE_FEATURES = "kernel26 apm alsa pcmcia bluetooth irda usbgadget"
IMAGE_FSTYPES ?= "tar.bz2"
ROOT_FLASH_SIZE = "100"

View File

@ -0,0 +1,17 @@
#@TYPE: Machine
#@NAME: qemu x86 Emulator setup
#@DESCRIPTION: Machine configuration for running an x86 system under qemu emulation
TARGET_ARCH = "i586"
TARGET_VENDOR = "-oe"
IPKG_EXTRA_ARCHS = "x86"
require conf/machine/include/qemu.conf
# require conf/machine/include/tune-arm926ejs.conf
SERIAL_CONSOLE = "115200 ttyS0"
PREFERRED_PROVIDER_virtual/kernel = "linux-x86"
GLIBC_ADDONS = "nptl"
GLIBC_EXTRA_OECONF = "--with-tls"

View File

@ -54,5 +54,5 @@
+#if defined(__ARM_ARCH_5__) || defined(__ARM_ARCH_5T__) || defined(__ARM_ARCH_5TE__)
+/* Nothing required. */
+#else
+#include <sysdeps/generic/mp_clz_tab.c>
+#include <stdlib/mp_clz_tab.c>
+#endif

View File

@ -0,0 +1,9 @@
Create a configparms file which disabled no-z-defs.
This is required to build a working glibs for sh4,
without there will be a lot linker errors during the build.
diff -duNr libc.orig/configparms libc/configparms
--- libc.orig/configparms 1970-01-01 10:00:00.000000000 +1000
+++ libc/configparms 2006-02-23 14:08:18.000000000 +1100
@@ -0,0 +1 @@
+no-z-defs=yes

View File

@ -0,0 +1,149 @@
Index: glibc-2.4/configure
===================================================================
--- glibc-2.4.orig/configure 2006-03-06 12:18:56.000000000 +0100
+++ glibc-2.4/configure 2006-08-06 14:10:51.000000000 +0200
@@ -5488,6 +5488,95 @@
fi
fi
+### XXXX copy and pasted
+# Check for readelf
+# Extract the first word of "$target_alias-readelf", so it can be a program name with args.
+set dummy $target_alias-readelf; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_READELF+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$READELF"; then
+ ac_cv_prog_READELF="$READELF" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_READELF="$target_alias-readelf"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+READELF=$ac_cv_prog_READELF
+if test -n "$READELF"; then
+ { echo "$as_me:$LINENO: result: $READELF" >&5
+echo "${ECHO_T}$READELF" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+if test -z "$ac_cv_prog_READELF"; then
+ if test "$build" = "$target"; then
+ ac_ct_READELF=$READELF
+ # Extract the first word of "readelf", so it can be a program name with args.
+set dummy readelf; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_READELF+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_READELF"; then
+ ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_READELF="readelf"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_prog_ac_ct_READELF" && ac_cv_prog_ac_ct_READELF="readelf"
+fi
+fi
+ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
+if test -n "$ac_ct_READELF"; then
+ { echo "$as_me:$LINENO: result: $ac_ct_READELF" >&5
+echo "${ECHO_T}$ac_ct_READELF" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+ READELF=ac_ct_READELF
+ else
+ READELF="readelf"
+ fi
+else
+ READELF="$ac_cv_prog_READELF"
+fi
+
+### XXXX copy and pasted
+
echo "$as_me:$LINENO: checking for .preinit_array/.init_array/.fini_array support" >&5
echo $ECHO_N "checking for .preinit_array/.init_array/.fini_array support... $ECHO_C" >&6
if test "${libc_cv_initfini_array+set}" = set; then
@@ -5507,7 +5596,7 @@
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }
then
- if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
+ if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
libc_cv_initfini_array=yes
else
libc_cv_initfini_array=no
@@ -5801,7 +5890,7 @@
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }
then
- if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
+ if $READELF -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
libc_cv_z_combreloc=yes
else
libc_cv_z_combreloc=no
Index: glibc-2.4/configure.in
===================================================================
--- glibc-2.4.orig/configure.in 2006-03-01 10:17:40.000000000 +0100
+++ glibc-2.4/configure.in 2006-08-06 14:09:31.000000000 +0200
@@ -1350,6 +1350,8 @@
fi
fi
+ AC_CHECK_TARGET_TOOL([READELF],[readelf],[readelf],[$PATH])
+
AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
libc_cv_initfini_array, [dnl
cat > conftest.c <<EOF
@@ -1361,7 +1363,7 @@
if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest conftest.c
-static -nostartfiles -nostdlib 1>&AS_MESSAGE_LOG_FD])
then
- if readelf -S conftest | fgrep INIT_ARRAY > /dev/null; then
+ if $READELF -S conftest | fgrep INIT_ARRAY > /dev/null; then
libc_cv_initfini_array=yes
else
libc_cv_initfini_array=no
@@ -1543,7 +1545,7 @@
dnl introducing new options this is not easily doable. Instead use a tool
dnl which always is cross-platform: readelf. To detect whether -z combreloc
dnl look for a section named .rel.dyn.
- if readelf -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
+ if $READELF -S conftest.so | grep '\.rel\(a\|\)\.dyn' > /dev/null; then
libc_cv_z_combreloc=yes
else
libc_cv_z_combreloc=no

View File

@ -1,9 +1,9 @@
SECTION = "libs"
include glibc_${PV}.bb
require glibc_${PV}.bb
DEPENDS = "linux-libc-headers"
PROVIDES = "virtual/${TARGET_PREFIX}libc-initial"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-cvs', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}"
PACKAGES = ""

View File

@ -1,5 +1,5 @@
SECTION = "libs"
include glibc_${PV}.bb
require glibc_${PV}.bb
DEFAULT_PREFERENCE = "-1"

View File

@ -25,20 +25,21 @@ ENABLE_BINARY_LOCALE_GENERATION ?= "0"
# BINARY_LOCALE_ARCHES is a space separated list of regular expressions
BINARY_LOCALE_ARCHES ?= "arm.*"
PACKAGES = "glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile"
PACKAGES_DYNAMIC = "glibc-gconv-* glibc-charmap-* glibc-localedata-*"
PACKAGES = "glibc-dbg glibc catchsegv sln nscd ldd localedef glibc-utils glibc-dev glibc-doc glibc-locale libsegfault glibc-extra-nss glibc-thread-db glibc-pcprofile"
PACKAGES_DYNAMIC = "glibc-gconv-* glibc-charmap-* glibc-localedata-* libc6*"
libc_baselibs = "/lib/libc* /lib/libm* /lib/ld* /lib/libpthread* /lib/libresolv* /lib/librt* /lib/libutil* /lib/libnsl* /lib/libnss_files* /lib/libnss_compat* /lib/libnss_dns* /lib/libdl* /lib/libanl* /lib/libBrokenLocale*"
FILES_${PN} = "${sysconfdir} ${libc_baselibs} /sbin/ldconfig ${libexecdir} ${datadir}/zoneinfo"
FILES_${PN} = "${sysconfdir} ${libc_baselibs} /sbin/ldconfig ${libexecdir}/* ${datadir}/zoneinfo"
FILES_ldd = "${bindir}/ldd"
FILES_libsegfault = "/lib/libSegFault*"
FILES_glibc-extra-nss = "/lib/libnss*"
FILES_sln = "/sbin/sln"
FILES_glibc-dev_append = " ${libdir}/*.o ${bindir}/rpcgen"
FILES_nscd = "${sbindir}/nscd*"
FILES_glibc-utils = "${bindir} ${sbindir}"
FILES_glibc-gconv = "${libdir}/gconv"
FILES_glibc-utils = "${bindir}/* ${sbindir}/*"
FILES_glibc-gconv = "${libdir}/gconv/*"
FILES_${PN}-dbg += " ${libdir}/gconv/.debug"
FILES_catchsegv = "${bindir}/catchsegv"
RDEPENDS_catchsegv = "libsegfault"
FILES_glibc-pcprofile = "/lib/libpcprofile.so"
@ -77,17 +78,10 @@ do_install() {
grep -v $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp
mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED
done
# If indicated, only build a limited selection of locales
if [ "${LIMIT_BUILT_LOCALES}" != "${LIMIT_BUILT_LOCALES}" ]; then
for i in ${LIMIT_BUILT_LOCALES}; do
grep $i ${WORKDIR}/SUPPORTED > ${WORKDIR}/SUPPORTED.tmp
mv ${WORKDIR}/SUPPORTED.tmp ${WORKDIR}/SUPPORTED
done
fi
rm -f ${D}/etc/rpc
}
TMP_LOCALE="/tmp/locale/${libdir}/locale"
TMP_LOCALE="/tmp/locale${libdir}/locale"
locale_base_postinst() {
#!/bin/sh
@ -102,6 +96,7 @@ if [ -f ${libdir}/locale/locale-archive ]; then
cp ${libdir}/locale/locale-archive ${TMP_LOCALE}/
fi
localedef --inputfile=${datadir}/i18n/locales/%s --charmap=%s --prefix=/tmp/locale %s
mkdir -p ${libdir}/locale/
mv ${TMP_LOCALE}/locale-archive ${libdir}/locale/
rm -rf ${TMP_LOCALE}
}
@ -204,12 +199,7 @@ python package_do_split_gconvs () {
if deps != []:
bb.data.setVar('RDEPENDS_%s' % pkg, " ".join(deps), d)
use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
if use_bin:
do_split_packages(d, locales_dir, file_regex='(.*)', output_pattern='glibc-localedata-%s', description='locale definition for %s', hook=calc_locale_deps, extra_depends='', aux_files_pattern_verbatim=binary_locales_dir + '/%s')
else:
do_split_packages(d, locales_dir, file_regex='(.*)', output_pattern='glibc-localedata-%s', description='locale definition for %s', hook=calc_locale_deps, extra_depends='')
bb.note("generation of binary locales disabled. this may break i18n!")
do_split_packages(d, locales_dir, file_regex='(.*)', output_pattern='glibc-localedata-%s', description='locale definition for %s', hook=calc_locale_deps, extra_depends='')
bb.data.setVar('PACKAGES', bb.data.getVar('PACKAGES', d) + ' glibc-gconv', d)
f = open(os.path.join(bb.data.getVar('WORKDIR', d, 1), "SUPPORTED"), "r")
@ -248,8 +238,12 @@ python package_do_split_gconvs () {
target_arch = bb.data.getVar("TARGET_ARCH", d, 1)
qemu = "qemu-%s" % target_arch
pkgname = 'locale-base-' + legitimize_package_name(name)
bb.data.setVar('RDEPENDS_%s' % pkgname, 'glibc-localedata-%s glibc-charmap-%s' % (legitimize_package_name(locale), legitimize_package_name(encoding)), d)
m = re.match("(.*)\.(.*)", name)
if m:
glibc_name = "%s.%s" % (m.group(1), m.group(2).lower().replace("-",""))
else:
glibc_name = name
bb.data.setVar('RDEPENDS_%s' % pkgname, legitimize_package_name('glibc-binary-localedata-%s' % glibc_name), d)
rprovides = 'virtual-locale-%s' % legitimize_package_name(name)
m = re.match("(.*)_(.*)", name)
if m:
@ -262,7 +256,7 @@ python package_do_split_gconvs () {
path = bb.data.getVar("PATH", d, 1)
i18npath = os.path.join(treedir, datadir, "i18n")
localedef_opts = "--force --old-style --no-archive --prefix=%s --inputfile=%s/i18n/locales/%s --charmap=%s %s" % (treedir, datadir, locale, encoding, locale)
localedef_opts = "--force --old-style --no-archive --prefix=%s --inputfile=%s/i18n/locales/%s --charmap=%s %s" % (treedir, datadir, locale, encoding, name)
cmd = "PATH=\"%s\" I18NPATH=\"%s\" %s -L %s %s/bin/localedef %s" % (path, i18npath, qemu, treedir, treedir, localedef_opts)
bb.note("generating locale %s (%s)" % (locale, encoding))
if os.system(cmd):
@ -281,20 +275,33 @@ python package_do_split_gconvs () {
bb.build.exec_func("do_prep_locale_tree", d)
# Reshuffle names so that UTF-8 is preferred over other encodings
non_utf8 = []
for l in encodings.keys():
if len(encodings[l]) == 1:
output_locale(l, l, encodings[l][0])
if encodings[l][0] != "UTF-8":
non_utf8.append(l)
else:
if "UTF-8" in encodings[l]:
output_locale(l, l, "UTF-8")
encodings[l].remove("UTF-8")
else:
non_utf8.append(l)
for e in encodings[l]:
output_locale('%s-%s' % (l, e), l, e)
output_locale('%s.%s' % (l, e), l, e)
if non_utf8 != []:
bb.note("the following locales are supported only in legacy encodings:")
bb.note(" " + " ".join(non_utf8))
use_bin = bb.data.getVar("GLIBC_INTERNAL_USE_BINARY_LOCALE", d, 1)
if use_bin:
bb.note("collecting binary locales from locale tree")
bb.build.exec_func("do_collect_bins_from_locale_tree", d)
do_split_packages(d, binary_locales_dir, file_regex='(.*)', output_pattern='glibc-binary-localedata-%s', description='binary locale definition for %s', extra_depends='', allow_dirs=True)
else:
bb.note("generation of binary locales disabled. this may break i18n!")
}
# We want to do this indirection so that we can safely 'return'

View File

@ -3,8 +3,13 @@ HOMEPAGE = "http://www.gnu.org/software/libc/libc.html"
LICENSE = "LGPL"
SECTION = "libs"
PRIORITY = "required"
DEFAULT_PREFERENCE = "-1"
PR = "r4"
# DEFAULT_PREFERENCE = "-1"
PR = "r10"
# the -isystem in bitbake.conf screws up glibc do_stage
BUILD_CPPFLAGS = "-I${STAGING_DIR}/${BUILD_SYS}/include"
TARGET_CPPFLAGS = "-I${STAGING_DIR}/${TARGET_SYS}/include"
FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/glibc-2.4"
@ -53,6 +58,7 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-2.4.tar.bz2 \
file://nptl-crosscompile.patch;patch=1 \
file://glibc-2.4-compile.patch;patch=1 \
file://fixup-aeabi-syscalls.patch;patch=1 \
file://zecke-sane-readelf.patch;patch=1 \
file://generic-bits_select.h \
file://generic-bits_types.h \
file://generic-bits_typesizes.h \
@ -60,6 +66,10 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-2.4.tar.bz2 \
file://etc/ld.so.conf \
file://generate-supported.mk"
# Build fails on sh3 and sh4 without additional patches
SRC_URI_append_sh3 = " file://no-z-defs.patch;patch=1"
SRC_URI_append_sh4 = " file://no-z-defs.patch;patch=1"
S = "${WORKDIR}/glibc-2.4"
B = "${WORKDIR}/build-${TARGET_SYS}"
@ -109,14 +119,6 @@ do_munge() {
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/fenv.h
# Obsoleted by sysdeps/gnu/bits/utmp.h
rm -f ${S}/ports/sysdeps/unix/sysv/linux/arm/bits/utmp.h
# http://www.handhelds.org/hypermail/oe/51/5135.html
# Some files were moved around between directories on
# 2005-12-21, which means that any attempt to check out
# from CVS using a datestamp older than that will be doomed.
#
# This is a workaround for that problem.
rm -rf ${S}/bits
}
addtask munge before do_patch after do_unpack
@ -198,4 +200,4 @@ do_stage() {
echo 'GROUP ( libc.so.6 libc_nonshared.a )' > ${CROSS_DIR}/${TARGET_SYS}/lib/libc.so
}
include glibc-package.bbclass
require glibc-package.bbclass

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,19 @@
DESCRIPTION = "Linux Kernel for x86 compatible machines"
SECTION = "kernel"
LICENSE = "GPL"
PR = "r1"
SRC_URI = "ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \
file://defconfig"
S = "${WORKDIR}/linux-${PV}"
inherit kernel
COMPATIBLE_HOST = "i.86.*-linux"
KERNEL_IMAGETYPE = "bzImage"
do_configure_prepend() {
install -m 0644 ${WORKDIR}/defconfig ${S}/.config
}