From 87796f6ce02df30375057fac934685d109f99be3 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 24 Jul 2008 20:30:37 +0000 Subject: gcc: Add toolchain build process changes from OE which adds gcc-cross-intermediate and removes glibc-intermediate based on a patch from Khem Raj as will be aplied to OE.dev making the build process much more rebust/stable/correct. git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4943 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- .../files/glibc-2.6.1-use-short-for-fnstsw.patch | 30 ++++++++++++++++++++++ meta/packages/glibc/glibc-initial.inc | 14 +++++++--- meta/packages/glibc/glibc-intermediate.inc | 12 --------- meta/packages/glibc/glibc-intermediate_2.4.bb | 5 ---- meta/packages/glibc/glibc-intermediate_2.5.bb | 7 ----- meta/packages/glibc/glibc-intermediate_2.6.1.bb | 8 ------ .../glibc/glibc-intermediate_csl-2005q3-2.bb | 8 ------ meta/packages/glibc/glibc-stage.inc | 7 +---- meta/packages/glibc/glibc.inc | 5 ++-- meta/packages/glibc/glibc_2.5.bb | 1 + meta/packages/glibc/glibc_2.6.1.bb | 1 + 11 files changed, 47 insertions(+), 51 deletions(-) create mode 100644 meta/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch delete mode 100644 meta/packages/glibc/glibc-intermediate.inc delete mode 100644 meta/packages/glibc/glibc-intermediate_2.4.bb delete mode 100644 meta/packages/glibc/glibc-intermediate_2.5.bb delete mode 100644 meta/packages/glibc/glibc-intermediate_2.6.1.bb delete mode 100644 meta/packages/glibc/glibc-intermediate_csl-2005q3-2.bb (limited to 'meta/packages/glibc') diff --git a/meta/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch b/meta/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch new file mode 100644 index 000000000..697922927 --- /dev/null +++ b/meta/packages/glibc/files/glibc-2.6.1-use-short-for-fnstsw.patch @@ -0,0 +1,30 @@ +Source: http://sourceware.org/ml/libc-alpha/2008-01/msg00017.html + +I am checking this x86 assembler patch: + +http://sourceware.org/ml/binutils/2008-01/msg00148.html + +to check operand size. fnstsw stores 16bit into %ax. The upper +16bit of %eax is unchanged. The new assembler will disallow +"fnstsw %eax". Here is a patch for glibc. + + +H.J. + +--- + sysdeps/i386/fpu/ftestexcept.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c +=================================================================== +--- glibc-2.6.1.orig/sysdeps/i386/fpu/ftestexcept.c 2008-07-19 11:00:45.000000000 -0700 ++++ glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c 2008-07-19 11:01:25.000000000 -0700 +@@ -26,7 +26,7 @@ + int + fetestexcept (int excepts) + { +- int temp; ++ short temp; + int xtemp = 0; + + /* Get current exceptions. */ diff --git a/meta/packages/glibc/glibc-initial.inc b/meta/packages/glibc/glibc-initial.inc index 0e5db2e72..143a662d5 100644 --- a/meta/packages/glibc/glibc-initial.inc +++ b/meta/packages/glibc/glibc-initial.inc @@ -1,5 +1,5 @@ SECTION = "libs" -DEPENDS = "linux-libc-headers" +DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers" PROVIDES = "virtual/${TARGET_PREFIX}libc-initial" FILESPATH = "${@base_set_filespath([ '${FILE_DIRNAME}/glibc-2.4', '${FILE_DIRNAME}/glibc', '${FILE_DIRNAME}/files', '${FILE_DIRNAME}' ], d)}" @@ -9,7 +9,8 @@ PACKAGES_DYNAMIC = "" do_configure () { sed -ie 's,{ (exit 1); exit 1; }; },{ (exit 0); }; },g' ${S}/configure chmod +x ${S}/configure - CC="${BUILD_CC}" CPP="${BUILD_CPP}" LD="${BUILD_LD}" ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \ + find ${S} -name "configure" | xargs touch + ${S}/configure --host=${TARGET_SYS} --build=${BUILD_SYS} \ --without-cvs --disable-sanity-checks \ --with-headers=${STAGING_DIR_TARGET}${layout_includedir} \ --enable-hacker-mode @@ -30,8 +31,11 @@ do_compile () { } do_stage () { - oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} includedir='${layout_includedir}' prefix='${layout_prefix}' install-headers + oe_runmake cross-compiling=yes install_root=${STAGING_DIR_HOST} \ + includedir='${layout_includedir}' prefix='${layout_prefix}' \ + install-bootstrap-headers=yes install-headers + oe_runmake csu/subdir_lib # Two headers -- stubs.h and features.h -- aren't installed by install-headers, # so do them by hand. We can tolerate an empty stubs.h for the moment. # See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html @@ -42,6 +46,10 @@ do_stage () { if [ -e ${B}/bits/stdio_lim.h ]; then cp ${B}/bits/stdio_lim.h ${STAGING_INCDIR}/bits/ fi + mkdir -p ${STAGING_DIR_TARGET}${layout_libdir} + install -m 644 csu/crt[1in].o ${STAGING_DIR_TARGET}${layout_libdir} + ${CC} -nostdlib -nostartfiles -shared -x c /dev/null \ + -o ${STAGING_DIR_TARGET}${layout_libdir}/libc.so } do_install () { diff --git a/meta/packages/glibc/glibc-intermediate.inc b/meta/packages/glibc/glibc-intermediate.inc deleted file mode 100644 index c226d8658..000000000 --- a/meta/packages/glibc/glibc-intermediate.inc +++ /dev/null @@ -1,12 +0,0 @@ -SECTION = "libs" -PACKAGES = "" -PACKAGES_DYNAMIC = "" -PROVIDES = "virtual/${TARGET_PREFIX}libc-for-gcc" -DEPENDS = "virtual/${TARGET_PREFIX}gcc-initial linux-libc-headers" - -do_install () { - : -} - -GLIBC_ADDONS = "nptl,ports" -GLIBC_EXTRA_OECONF = "" diff --git a/meta/packages/glibc/glibc-intermediate_2.4.bb b/meta/packages/glibc/glibc-intermediate_2.4.bb deleted file mode 100644 index f29ffb30a..000000000 --- a/meta/packages/glibc/glibc-intermediate_2.4.bb +++ /dev/null @@ -1,5 +0,0 @@ -require glibc_${PV}.bb -require glibc-intermediate.inc - -DEFAULT_PREFERENCE = "-1" - diff --git a/meta/packages/glibc/glibc-intermediate_2.5.bb b/meta/packages/glibc/glibc-intermediate_2.5.bb deleted file mode 100644 index 661a69a10..000000000 --- a/meta/packages/glibc/glibc-intermediate_2.5.bb +++ /dev/null @@ -1,7 +0,0 @@ -require glibc_${PV}.bb -require glibc-intermediate.inc - -# gcc uses -Werror which break on a "you have no thumb interwork" _warning_ -do_configure_prepend() { - sed -i s:-Werror:: ${S}/configure -} diff --git a/meta/packages/glibc/glibc-intermediate_2.6.1.bb b/meta/packages/glibc/glibc-intermediate_2.6.1.bb deleted file mode 100644 index 05d625078..000000000 --- a/meta/packages/glibc/glibc-intermediate_2.6.1.bb +++ /dev/null @@ -1,8 +0,0 @@ -require glibc_${PV}.bb -require glibc-intermediate.inc - -# gcc uses -Werror which break on a "you have no thumb interwork" _warning_ -do_configure_prepend() { - sed -i s:-Werror:: ${S}/configure -} - diff --git a/meta/packages/glibc/glibc-intermediate_csl-2005q3-2.bb b/meta/packages/glibc/glibc-intermediate_csl-2005q3-2.bb deleted file mode 100644 index 5d161b127..000000000 --- a/meta/packages/glibc/glibc-intermediate_csl-2005q3-2.bb +++ /dev/null @@ -1,8 +0,0 @@ -require glibc_${PV}.bb -require glibc-intermediate.inc - -DEFAULT_PREFERENCE = "-1" - -GLIBC_ADDONS = "nptl,libidn" - - diff --git a/meta/packages/glibc/glibc-stage.inc b/meta/packages/glibc/glibc-stage.inc index a86cf7888..2b7b303c1 100644 --- a/meta/packages/glibc/glibc-stage.inc +++ b/meta/packages/glibc/glibc-stage.inc @@ -3,7 +3,7 @@ do_stage() { oe_runmake 'install_root=${STAGING_DIR_HOST}' \ 'includedir=${layout_includedir}' 'libdir=${layout_libdir}' 'slibdir=${layout_base_libdir}' \ '${STAGING_DIR_HOST}${layout_base_libdir}/libc.so.6' \ - install-headers install-lib + install install -d ${STAGING_INCDIR}/gnu \ ${STAGING_INCDIR}/bits \ @@ -15,9 +15,4 @@ do_stage() { h=`echo $r|sed -e's,\.x$,.h,'` install -m 0644 ${S}/sunrpc/rpcsvc/$h ${STAGING_INCDIR}/rpcsvc/ done - for i in libc.a libc_pic.a libc_nonshared.a; do - install -m 0644 ${B}/$i ${STAGING_DIR_HOST}/${layout_base_libdir}/ || die "failed to install $i" - done - echo 'GROUP ( libpthread.so.0 libpthread_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_base_libdir}/libpthread.so - echo 'GROUP ( libc.so.6 libc_nonshared.a )' > ${STAGING_DIR_HOST}/${layout_base_libdir}/libc.so } diff --git a/meta/packages/glibc/glibc.inc b/meta/packages/glibc/glibc.inc index 81df03c8d..18edf897c 100644 --- a/meta/packages/glibc/glibc.inc +++ b/meta/packages/glibc/glibc.inc @@ -4,11 +4,12 @@ SECTION = "libs" PRIORITY = "required" LICENSE = "LGPL" # nptl needs unwind support in gcc, which can't be built without glibc. -DEPENDS = "${@['virtual/${TARGET_PREFIX}gcc-initial', 'virtual/${TARGET_PREFIX}gcc']['nptl' in '${GLIBC_ADDONS}']} linux-libc-headers" +DEPENDS = "virtual/${TARGET_PREFIX}gcc-intermediate linux-libc-headers" RDEPENDS_${PN}-dev = "linux-libc-headers-dev" #this leads to circular deps, so lets not add it yet #RDEPENDS_ldd += " bash" -PROVIDES = "virtual/libc ${@['virtual/${TARGET_PREFIX}libc-for-gcc', '']['nptl' in '${GLIBC_ADDONS}']}" +#RDEPENDS += "${@['','libgcc']['nptl' in '${GLIBC_ADDONS}']}" +PROVIDES = "virtual/libc virtual/${TARGET_PREFIX}libc-for-gcc" PROVIDES += "virtual/libintl virtual/libiconv" inherit autotools diff --git a/meta/packages/glibc/glibc_2.5.bb b/meta/packages/glibc/glibc_2.5.bb index 8a46d2fb8..0cab17f12 100644 --- a/meta/packages/glibc/glibc_2.5.bb +++ b/meta/packages/glibc/glibc_2.5.bb @@ -48,6 +48,7 @@ SRC_URI = "ftp://ftp.gnu.org/pub/gnu/glibc/glibc-${PV}.tar.bz2 \ # file://fixup-aeabi-syscalls.patch;patch=1 \ file://zecke-sane-readelf.patch;patch=1 \ file://eabi_kernel_version_hack.patch;patch=1 \ + file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \ file://generic-bits_select.h \ file://generic-bits_types.h \ file://generic-bits_typesizes.h \ diff --git a/meta/packages/glibc/glibc_2.6.1.bb b/meta/packages/glibc/glibc_2.6.1.bb index 2e509e9da..9e1c4b7b4 100644 --- a/meta/packages/glibc/glibc_2.6.1.bb +++ b/meta/packages/glibc/glibc_2.6.1.bb @@ -56,6 +56,7 @@ SRC_URI = "\ file://etc/ld.so.conf \ file://generate-supported.mk \ file://glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch;patch=1 \ + file://glibc-2.6.1-use-short-for-fnstsw.patch;patch=1 \ file://glibc-include-fixed.patch;patch=1;pnum=0 \ " -- cgit v1.2.3