# HG changeset patch # User "Yann E. MORIN" # Date 1294094422 -3600 # Node ID 7af68e6083aa973919472802153ce671b1f4fbff # Parent a64ae33ea8ae680fef043cb6e393635aa271d2f6 libc-glibc: remove 2.3.6 This is an obsolete version which is no longer used by any sample (the only user, the ia64 sample, has been removed). It also makes the code path a bit complex, with twists just to accomodate that version. Removing the version will make those twists go away, and will ease commonalisation of glibc and eglibc in the future (hopefully!). Signed-off-by: "Yann E. MORIN" diff -r a64ae33ea8ae -r 7af68e6083aa config/libc/glibc.in --- a/config/libc/glibc.in Mon Jan 03 22:02:06 2011 +0100 +++ b/config/libc/glibc.in Mon Jan 03 23:40:22 2011 +0100 @@ -101,11 +101,6 @@ prompt "2.5 (OBSOLETE)" depends on OBSOLETE -config LIBC_GLIBC_V_2_3_6 - bool - prompt "2.3.6 (OBSOLETE)" - depends on OBSOLETE - endchoice config LIBC_VERSION @@ -124,4 +119,3 @@ default "2.6" if LIBC_GLIBC_V_2_6 default "2.5.1" if LIBC_GLIBC_V_2_5_1 default "2.5" if LIBC_GLIBC_V_2_5 - default "2.3.6" if LIBC_GLIBC_V_2_3_6 diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/100-arm-ctl_bus_isa.patch --- a/patches/glibc/2.3.6/100-arm-ctl_bus_isa.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -Applies to both glibc-2.2.5 and glibc-2.3.2, and probably glibc cvs as of Aug 2004. -Needed to build glibc with linux kernels 2.4.23 or higher on ARM, -Fixes following error: - -../sysdeps/unix/sysv/linux/arm/ioperm.c: In function `init_iosys': -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: `BUS_ISA' undeclared (first use in this function) -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (Each undeclared identifier is reported only once -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: for each function it appears in.) -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: initializer element is not constant -../sysdeps/unix/sysv/linux/arm/ioperm.c:103: error: (near initialization for `iobase_name[1]') -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: initializer element is not constant -../sysdeps/unix/sysv/linux/arm/ioperm.c:104: error: (near initialization for `ioshift_name[1]') -make[2]: *** [/home/dank/crosstool-0.28/build/arm-softfloat-linux-gnu/gcc-3.3.4-glibc-2.2.5/build-glibc/misc/ioperm.o] Error 1 - -cf. "[SYSCTL] BUS_ISA -> CTL_BUS_ISA", http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html - ---- glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c.old 2003-02-20 14:22:24.000000000 -0800 -+++ glibc-2.3.2/sysdeps/unix/sysv/linux/arm/ioperm.c 2004-01-31 16:01:50.000000000 -0800 -@@ -47,6 +47,12 @@ - #include - #include - -+/* see http://www.ussg.iu.edu/hypermail/linux/kernel/0311.0/0529.html */ -+#include -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23)) -+#define CTL_BUS_ISA BUS_ISA /* and hope it's not the one from linux/input.h */ -+#endif -+ - #define PATH_ARM_SYSTYPE "/etc/arm_systype" - #define PATH_CPUINFO "/proc/cpuinfo" - -@@ -80,7 +86,7 @@ - * Initialize I/O system. There are several ways to get the information - * we need. Each is tried in turn until one succeeds. - * -- * 1. Sysctl (CTL_BUS, BUS_ISA, ISA_*). This is the preferred method -+ * 1. Sysctl (CTL_BUS, CTL_BUS_ISA, ISA_*). This is the preferred method - * but not all kernels support it. - * - * 2. Read the value (not the contents) of symlink PATH_ARM_SYSTYPE. -@@ -100,8 +106,8 @@ - { - char systype[256]; - int i, n; -- static int iobase_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_BASE }; -- static int ioshift_name[] = { CTL_BUS, BUS_ISA, BUS_ISA_PORT_SHIFT }; -+ static int iobase_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_BASE }; -+ static int ioshift_name[] = { CTL_BUS, CTL_BUS_ISA, BUS_ISA_PORT_SHIFT }; - size_t len = sizeof(io.base); - - if (! sysctl (iobase_name, 3, &io.io_base, &len, NULL, 0) - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/110-fix-pr398.patch --- a/patches/glibc/2.3.6/110-fix-pr398.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -Fixes error - -dl-runtime.c:222: error: parse error before "CFI_STARTPROC" -make[2]: *** [crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/build-glibc/elf/dl-runtim -e.o] Error 1 -make[2]: Leaving directory `crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040 -822/elf' -make[1]: *** [elf/subdir_lib] Error 2 -make[1]: Leaving directory `crosstool-0.28-rc35/build/s390-unknown-linux-gnu/gcc-3.4.1-glibc-20040822/glibc-20040 -822' -make: *** [all] Error 2 - ------------------ - -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=398 -http://sources.redhat.com/ml/libc-alpha/2004-07/msg00023.html - ------------------ - -CVSROOT: /cvs/glibc -Module name: libc -Branch: glibc-2_3-branch -Changes by: roland@sources.redhat.com 2006-02-23 22:36:51 - -Modified files: - sysdeps/s390/s390-64: dl-machine.h - sysdeps/s390/s390-32: dl-machine.h - -Log message: - 2004-07-10 GOTO Masanori - - [BZ #398] - * sysdeps/s390/s390-32/dl-machine.h: Include for CFI - directive. - * sysdeps/s390/s390-64/dl-machine.h: Likewise. - -Patches: -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/s390/s390-64/dl-machine.h.diff?cvsroot=glibc&only_with_tag=glibc-2_3-branch&r1=1.19.4.1&r2=1.19.4.2 -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/s390/s390-32/dl-machine.h.diff?cvsroot=glibc&only_with_tag=glibc-2_3-branch&r1=1.20.4.1&r2=1.20.4.2 - -=================================================================== -RCS file: /cvs/glibc/libc/sysdeps/s390/s390-64/dl-machine.h,v -retrieving revision 1.19.4.1 -retrieving revision 1.19.4.2 -diff -u -r1.19.4.1 -r1.19.4.2 ---- libc/sysdeps/s390/s390-64/dl-machine.h 2005/10/17 04:57:27 1.19.4.1 -+++ libc/sysdeps/s390/s390-64/dl-machine.h 2006/02/23 22:36:51 1.19.4.2 -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - /* This is an older, now obsolete value. */ - #define EM_S390_OLD 0xA390 -=================================================================== -RCS file: /cvs/glibc/libc/sysdeps/s390/s390-32/dl-machine.h,v -retrieving revision 1.20.4.1 -retrieving revision 1.20.4.2 -diff -u -r1.20.4.1 -r1.20.4.2 ---- libc/sysdeps/s390/s390-32/dl-machine.h 2005/10/17 04:57:27 1.20.4.1 -+++ libc/sysdeps/s390/s390-32/dl-machine.h 2006/02/23 22:36:51 1.20.4.2 -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - /* This is an older, now obsolete value. */ - #define EM_S390_OLD 0xA390 diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/120-allow-gcc-4.0-wordexp.patch --- a/patches/glibc/2.3.6/120-allow-gcc-4.0-wordexp.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -../sysdeps/generic/wordexp.c: In function 'exec_comm': -../sysdeps/generic/wordexp.c:815: sorry, unimplemented: inlining failed in call to 'exec_comm_child': function body not available -../sysdeps/generic/wordexp.c:900: sorry, unimplemented: called from here -make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-dev/build/i686-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/build-glibc/posix/wordexp.o] Error - -I had to add the keyword 'inline' to get it to compile: - ---- glibc-2.3-20050307/sysdeps/generic/wordexp.c.old 2005-03-12 08:54:15.709253928 -0800 -+++ glibc-2.3-20050307/sysdeps/generic/wordexp.c 2005-03-12 08:54:51.242852000 -0800 -@@ -809,7 +809,7 @@ - } - - /* Function called by child process in exec_comm() */ --static void -+static inline void - internal_function __attribute__ ((always_inline)) - exec_comm_child (char *comm, int *fildes, int showerr, int noexec) - { - - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/130-allow-gcc4-wcstol_l.patch --- a/patches/glibc/2.3.6/130-allow-gcc4-wcstol_l.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -Fixes -../sysdeps/wordsize-64/wcstol_l.c:11: error: '____wcstoll_l_internal' aliased to undefined symbol '____wcstol_l_internal' -../sysdeps/wordsize-64/wcstol_l.c:12: error: '__wcstoll_l' aliased to undefined symbol '__wcstol_l' -../sysdeps/wordsize-64/wcstol_l.c:13: error: 'wcstoll_l' aliased to undefined symbol '__wcstol_l' -make[2]: *** [/home/dkegel/queue/jobdir.produser_cpsm10/crosstool-0.32/build/x86_64-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/wcsmbs/wcstoul_l.o] Error 1 - -https://www.redhat.com/archives/fedora-cvs-commits/2005-March/msg00408.html -%changelog -+* Fri Mar 25 2005 Jakub Jelinek 2.3.4-18 -+- fix build on 64-bit arches with new GCC - -Revision 1.4.2.1, Fri Mar 25 11:59:01 2005 UTC (3 weeks, 4 days ago) by jakub -Branch: fedora-branch -CVS Tags: fedora-glibc-2_3_4-18 -Changes since 1.4: +2 -0 lines -Diff to previous 1.4 (colored) - - * sysdeps/wordsize-64/strtol_l.c: Don't add aliases if UNSIGNED. - * sysdeps/wordsize-64/wcstol_l.c: Likewise. - - -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/wordsize-64/strtol_l.c.diff?r1=1.4&r2=1.4.2.1&cvsroot=glibc -http://sourceware.org/cgi-bin/cvsweb.cgi/libc/sysdeps/wordsize-64/wcstol_l.c.diff?r1=1.4&r2=1.4.2.1&cvsroot=glibc - -=================================================================== -RCS file: /cvs/glibc/libc/sysdeps/wordsize-64/strtol_l.c,v -retrieving revision 1.4 -retrieving revision 1.4.2.1 -diff -u -r1.4 -r1.4.2.1 ---- libc/sysdeps/wordsize-64/strtol_l.c 2003/03/03 09:45:12 1.4 -+++ libc/sysdeps/wordsize-64/strtol_l.c 2005/03/25 11:59:01 1.4.2.1 -@@ -8,7 +8,9 @@ - #undef ____strtoll_l_internal - #undef __strtoll_l - #undef strtoll_l -+#if !UNSIGNED - strong_alias (____strtol_l_internal, ____strtoll_l_internal) - libc_hidden_ver (____strtol_l_internal, ____strtoll_l_internal) - weak_alias (__strtol_l, __strtoll_l) - weak_alias (__strtol_l, strtoll_l) -+#endif -=================================================================== -RCS file: /cvs/glibc/libc/sysdeps/wordsize-64/wcstol_l.c,v -retrieving revision 1.4 -retrieving revision 1.4.2.1 -diff -u -r1.4 -r1.4.2.1 ---- libc/sysdeps/wordsize-64/wcstol_l.c 2002/08/08 11:44:51 1.4 -+++ libc/sysdeps/wordsize-64/wcstol_l.c 2005/03/25 11:59:01 1.4.2.1 -@@ -8,6 +8,8 @@ - #undef ____wcstoll_l_internal - #undef __wcstoll_l - #undef wcstoll_l -+#if !UNSIGNED - strong_alias (____wcstol_l_internal, ____wcstoll_l_internal) - weak_alias (__wcstol_l, __wcstoll_l) - weak_alias (__wcstol_l, wcstoll_l) -+#endif - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/140-cygwin.patch --- a/patches/glibc/2.3.6/140-cygwin.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,187 +0,0 @@ -Fixes -elf/librtld.os: In function `process_envvars': : undefined reference to `__access' -... -when building glibc-2.3.x on cygwin - -Idea from -http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch -Basically, make glibc use .oST as suffix for 'object static' -instead of .oS, since cygwin has trouble distinguishing .os from .oS -(Original patch had .on, but .oST is more mnemonic for 'object static') - -glibc-linuxthreads-2.3.5 also requires a patch, see -../glibc-linuxthreads-2.3.5/glibc-linuxthreads-2.3.5-cygwin.patch - -[ forward ported to glibc-2.3.5 by Petr Cvachoucek: - -Message-ID: <4282FCBA.3040000@unicontrols.cz> -Date: Thu, 12 May 2005 08:50:34 +0200 -From: Petr Cvachoucek -To: Dan Kegel -CC: crossgcc@sources.redhat.com -Subject: Patches to build gcc 3.4.3 / glibc 2.3.5 on cygwin - -Hi Dan, -following patches are needed to build gcc-3.4.3/glibc-2.3.5 toolchain -on cygwin. Tested to build toolchains for powerpc 604 and 750 targets. - --- - Petr Cvachoucek - Unicontrols a.s. - http://www.unicontrols.cz -] - -diff -aur glibc-2.3.5/Makeconfig glibc-2.3.5-cygwin/Makeconfig ---- glibc-2.3.5/Makeconfig 2005-02-16 11:50:19.000000000 +0100 -+++ glibc-2.3.5-cygwin/Makeconfig 2005-05-11 08:24:51.046875000 +0200 -@@ -449,7 +449,7 @@ - # run the linked programs. - link-libc = -Wl,-rpath-link=$(rpath-link) \ - $(common-objpfx)libc.so$(libc.so-version) \ -- $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib) -+ $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib) - # This is how to find at build-time things that will be installed there. - rpath-dirs = math elf dlfcn nss nis rt resolv crypt - endif -@@ -656,7 +656,7 @@ - # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX}) - # to pass different flags for each flavor. - libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o)) --all-object-suffixes := .o .os .op .og .ob .oS -+all-object-suffixes := .o .os .op .og .ob .oST - object-suffixes := - CPPFLAGS-.o = $(pic-default) - CFLAGS-.o = $(filter %frame-pointer,$(+cflags)) -@@ -712,14 +712,14 @@ - - ifeq (yes,$(build-shared)) - # Build special library that contains the static-only routines for libc. --object-suffixes-for-libc += .oS -+object-suffixes-for-libc += .oST - - # Must build the routines as PIC, though, because they can end up in (users') - # shared objects. We don't want to use CFLAGS-os because users may, for - # example, make that processor-specific. --CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag) --CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1 --libtype.oS = lib%_nonshared.a -+CFLAGS-.oST = $(CFLAGS-.o) $(PIC-ccflag) -+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1 -+libtype.oST = lib%_nonshared.a - endif - - # The assembler can generate debug information too. -diff -aur glibc-2.3.5/Makerules glibc-2.3.5-cygwin/Makerules ---- glibc-2.3.5/Makerules 2004-12-15 19:52:39.000000000 +0100 -+++ glibc-2.3.5-cygwin/Makerules 2005-05-11 08:25:33.578125000 +0200 -@@ -416,7 +416,7 @@ - # Bounded pointer thunks are only built for *.ob - elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks)) - --elide-routines.oS += $(filter-out $(static-only-routines),\ -+elide-routines.oST += $(filter-out $(static-only-routines),\ - $(routines) $(aux) $(sysdep_routines)) \ - $(elide-bp-thunks) - elide-routines.os += $(static-only-routines) $(elide-bp-thunks) -@@ -961,7 +961,7 @@ - install: $(inst_libdir)/libc.so - $(inst_libdir)/libc.so: $(common-objpfx)format.lds \ - $(common-objpfx)libc.so$(libc.so-version) \ -- $(inst_libdir)/$(patsubst %,$(libtype.oS),\ -+ $(inst_libdir)/$(patsubst %,$(libtype.oST),\ - $(libprefix)$(libc-name)) \ - $(+force) - (echo '/* GNU ld script';\ -@@ -969,7 +969,7 @@ - echo ' the static library, so try that secondarily. */';\ - cat $<; \ - echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \ -- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\ -+ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\ - ')' \ - ) > $@.new - mv -f $@.new $@ -diff -aur glibc-2.3.5/extra-lib.mk glibc-2.3.5-cygwin/extra-lib.mk ---- glibc-2.3.5/extra-lib.mk 2004-12-02 23:54:47.000000000 +0100 -+++ glibc-2.3.5-cygwin/extra-lib.mk 2005-05-11 08:27:28.156250000 +0200 -@@ -13,7 +13,7 @@ - - ifneq (,$($(lib)-static-only-routines)) - ifneq (,$(filter yesyes%,$(build-shared)$(elf)$($(lib).so-version))) --object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oS) -+object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oST) - endif - endif - -@@ -29,7 +29,7 @@ - - # Add each flavor of library to the lists of things to build and install. - install-lib += $(foreach o,$(object-suffixes-$(lib)),$(lib:lib%=$(libtype$o))) --extra-objs += $(foreach o,$(filter-out .os .oS,$(object-suffixes-$(lib))),\ -+extra-objs += $(foreach o,$(filter-out .os .oST,$(object-suffixes-$(lib))),\ - $(patsubst %,%$o,$(filter-out \ - $($(lib)-shared-only-routines),\ - $(all-$(lib)-routines)))) -@@ -57,7 +57,7 @@ - - - # Use o-iterator.mk to generate a rule for each flavor of library. --ifneq (,$(filter-out .os .oS,$(object-suffixes-$(lib)))) -+ifneq (,$(filter-out .os .oST,$(object-suffixes-$(lib)))) - define o-iterator-doit - $(objpfx)$(patsubst %,$(libtype$o),$(lib:lib%=%)): \ - $(patsubst %,$(objpfx)%$o,\ -@@ -65,7 +65,7 @@ - $(all-$(lib)-routines))); \ - $$(build-extra-lib) - endef --object-suffixes-left = $(filter-out .os .oS,$(object-suffixes-$(lib))) -+object-suffixes-left = $(filter-out .os .oST,$(object-suffixes-$(lib))) - include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes-left)) - endif - -@@ -77,9 +77,9 @@ - $(build-extra-lib) - endif - --ifneq (,$(filter .oS,$(object-suffixes-$(lib)))) --$(objpfx)$(patsubst %,$(libtype.oS),$(lib:lib%=%)): \ -- $(patsubst %,$(objpfx)%.oS,\ -+ifneq (,$(filter .oST,$(object-suffixes-$(lib)))) -+$(objpfx)$(patsubst %,$(libtype.oST),$(lib:lib%=%)): \ -+ $(patsubst %,$(objpfx)%.oST,\ - $(filter $($(lib)-static-only-routines),\ - $(all-$(lib)-routines))) - $(build-extra-lib) -diff -aur glibc-2.3.5/nptl/Makefile glibc-2.3.5-cygwin/nptl/Makefile ---- glibc-2.3.5/nptl/Makefile 2005-02-16 09:45:56.000000000 +0100 -+++ glibc-2.3.5-cygwin/nptl/Makefile 2005-05-11 08:26:01.812500000 +0200 -@@ -360,7 +360,7 @@ - - $(inst_libdir)/libpthread.so: $(common-objpfx)format.lds \ - $(objpfx)libpthread.so$(libpthread.so-version) \ -- $(inst_libdir)/$(patsubst %,$(libtype.oS),\ -+ $(inst_libdir)/$(patsubst %,$(libtype.oST),\ - $(libprefix)pthread) \ - $(+force) - (echo '/* GNU ld script';\ -@@ -368,7 +368,7 @@ - echo ' the static library, so try that secondarily. */';\ - cat $<; \ - echo 'GROUP ( $(slibdir)/libpthread.so$(libpthread.so-version)' \ -- '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)pthread)'\ -+ '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)pthread)'\ - ')' \ - ) > $@.new - mv -f $@.new $@ -diff -aur glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile ---- glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile 2004-08-16 08:46:14.000000000 +0200 -+++ glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile 2005-05-11 08:26:25.937500000 +0200 -@@ -10,4 +10,4 @@ - ASFLAGS-.op += -Wa,-Av9a - ASFLAGS-.og += -Wa,-Av9a - ASFLAGS-.ob += -Wa,-Av9a --ASFLAGS-.oS += -Wa,-Av9a -+ASFLAGS-.oST += -Wa,-Av9a - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/150-sh-lowlevellock.patch --- a/patches/glibc/2.3.6/150-sh-lowlevellock.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -ML: http://sources.redhat.com/ml/libc-hacker/2005-09/msg00002.html - -Date: Mon, 05 Sep 2005 21:07:15 +0900 (JST) -Message-Id: <20050905.210715.15267870.kkojima@rr.iij4u.or.jp> -To: libc-hacker at sources dot redhat dot com -Subject: SH: A typo in lowlevellock.S -From: Kaz Kojima - -Hi, - -The appended patch fixes a typo in a low-level lock function. It -set the correct 3rd argument for the futex syscall in loop. Sorry -for missing such an embarrassing bug. - -Regards, - kaz - -nptl/ChangeLog: -2005-09-05 Kaz Kojima - - * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait): - Fix typo in register name. - ---- glibc.old/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2004-10-26 04:06:44.000000000 +0900 -+++ glibc/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2005-09-05 19:18:25.000000000 +0900 -@@ -1,4 +1,4 @@ --/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. -+/* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -51,8 +51,8 @@ __lll_mutex_lock_wait: - SYSCALL_INST_PAD - - 2: -- mov #2, r4 -- XCHG (r4, @r8, r2) -+ mov #2, r6 -+ XCHG (r6, @r8, r2) - tst r2, r2 - bf 1b - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/160-sh-memset.patch --- a/patches/glibc/2.3.6/160-sh-memset.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -From: - http://sources.redhat.com/ml/libc-alpha/2005-07/msg00051.html - http://sources.redhat.com/ml/crossgcc/2005-10/msg00035.html - -Message-ID: <434576E1.6020305@sscd.de> -Date: Thu, 06 Oct 2005 21:11:29 +0200 -From: Alexander Sieb -To: crossgcc at sourceware dot org -Subject: Crosstool sh4-linux-gcc-4.0.2-glibc-2.3.5 patches - -On sh[34]-linux, memset function does not work if 2nd argument is negative -and 3rd argument is greater than 12. -for example, memset(ptr, "\xda", 20) sets 0xff instead of 0xda. - -Attached patch fixes this problem. - - * sysdeps/sh/memset.S (memset): Correct 2nd argument handling. - ---- glibc-2.3.5.old/sysdeps/sh/memset.S 29 Apr 2003 22:47:18 -0000 1.4 -+++ glibc-2.3.5/sysdeps/sh/memset.S 23 Jul 2005 08:37:21 -0000 -@@ -28,6 +28,7 @@ ENTRY(memset) - bt.s L_byte_loop_init - mov r4,r7 - -+ extu.b r5,r5 - swap.b r5,r1 - or r1,r5 - swap.w r5,r1 - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/170-allow-gcc-4.0-arm.patch --- a/patches/glibc/2.3.6/170-allow-gcc-4.0-arm.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -Fixes -In file included from dynamic-link.h:22, - from dl-reloc.c:265: -../sysdeps/arm/dl-machine.h: In function '_dl_relocate_object': -../sysdeps/arm/dl-machine.h:371: error: invalid storage class for function 'fix_bad_pc24' -make[2]: Leaving directory `/home/dank/queue/jobdir.k8/crosstool-dev/build/arm-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.6/glibc-2.3.6/elf' - -when building glibc-2.3.6 with gcc-4.0 - -Like -http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/arm/dl-machine.h.diff?r1=1.51&r2=1.52&cvsroot=glibc -but fixes fix_bad_pc24. - - ---- glibc-2.3.6-orig/sysdeps/arm/dl-machine.h Sun Mar 20 17:54:37 2005 -+++ glibc-2.3.6/sysdeps/arm/dl-machine.h Sun Mar 20 17:57:32 2005 -@@ -357,7 +357,14 @@ - #ifdef RESOLVE - - /* Deal with an out-of-range PC24 reloc. */ --static Elf32_Addr -+#if __GNUC__ >= 4 -+ auto inline Elf32_Addr -+#else -+ static inline Elf32_Addr -+#endif -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) -+ __attribute ((always_inline)) -+#endif - fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value) - { - static void *fix_page; - -Signed-off-by: Robert P. J. Day -with a little editing by dank@kegel.com diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/180-allow-gcc-4.0-elf.patch --- a/patches/glibc/2.3.6/180-allow-gcc-4.0-elf.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -From http://www.mail-archive.com/pld-cvs-commit@pld-linux.org/msg00229.html -Fixes - rtld.c: In function '_dl_start': - dynamic-link.h:47: error: nested function 'elf_machine_rela_relative' declared but never defined - dynamic-link.h:41: error: nested function 'elf_machine_rela' declared but never defined -when compiling glibc-2.3.4 with gcc-4.0 - -But see also -http://sources.redhat.com/ml/libc-hacker/2005-02/msg00000.html -and -http://sources.redhat.com/ml/libc-hacker/2005-03/msg00008.html -which seem to propose less radical fixes? - -Aha. See also http://sources.redhat.com/bugzilla/show_bug.cgi?id=721 - ---- glibc-2.3.6.orig/elf/dynamic-link.h 2005-03-12 18:12:37.000000000 -0800 -+++ glibc-2.3.6/elf/dynamic-link.h 2005-03-12 18:12:59.777820848 -0800 -@@ -19,47 +19,6 @@ - - #include - #include -- --#ifdef RESOLVE --/* We pass reloc_addr as a pointer to void, as opposed to a pointer to -- ElfW(Addr), because not all architectures can assume that the -- relocated address is properly aligned, whereas the compiler is -- entitled to assume that a pointer to a type is properly aligned for -- the type. Even if we cast the pointer back to some other type with -- less strict alignment requirements, the compiler might still -- remember that the pointer was originally more aligned, thereby -- optimizing away alignment tests or using word instructions for -- copying memory, breaking the very code written to handle the -- unaligned cases. */ --# if ! ELF_MACHINE_NO_REL --auto inline void __attribute__((always_inline)) --elf_machine_rel (struct link_map *map, const ElfW(Rel) *reloc, -- const ElfW(Sym) *sym, const struct r_found_version *version, -- void *const reloc_addr); --auto inline void __attribute__((always_inline)) --elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc, -- void *const reloc_addr); --# endif --# if ! ELF_MACHINE_NO_RELA --auto inline void __attribute__((always_inline)) --elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, -- const ElfW(Sym) *sym, const struct r_found_version *version, -- void *const reloc_addr); --auto inline void __attribute__((always_inline)) --elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc, -- void *const reloc_addr); --# endif --# if ELF_MACHINE_NO_RELA || defined ELF_MACHINE_PLT_REL --auto inline void __attribute__((always_inline)) --elf_machine_lazy_rel (struct link_map *map, -- ElfW(Addr) l_addr, const ElfW(Rel) *reloc); --# else --auto inline void __attribute__((always_inline)) --elf_machine_lazy_rel (struct link_map *map, -- ElfW(Addr) l_addr, const ElfW(Rela) *reloc); --# endif --#endif -- - #include - - #ifndef VERSYMIDX - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/190-configure-apple-as.patch --- a/patches/glibc/2.3.6/190-configure-apple-as.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -http://in3www.epfl.ch/~schaffne/glibc-configure-apple-as.patch -http://sources.redhat.com/ml/crossgcc/2004-02/msg00151.html - -The following makes it possible to configure glibc-2.3.2 on Mac OS X, -where the assembler but doesn't understand the --version flag. - -Fixes the symptom -checking whether ld is GNU ld... no -checking for /usr/libexec/gcc/darwin/ppc/as... /usr/libexec/gcc/darwin/ppc/as -checking version of /usr/libexec/gcc/darwin/ppc/as... - - ---- glibc-2.3.2/configure~ Wed Feb 26 09:20:48 2003 -+++ glibc-2.3.2/configure Fri Feb 27 13:12:53 2004 -@@ -3914,7 +3914,7 @@ - # Found it, now check the version. - echo "$as_me:$LINENO: checking version of $AS" >&5 - echo $ECHO_N "checking version of $AS... $ECHO_C" >&6 -- ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'` -+ ac_prog_version=`$AS -v &1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; - 2.1[3-9]*) - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/200-use_short_for_fnstsw.patch --- a/patches/glibc/2.3.6/200-use_short_for_fnstsw.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -Original patch from H.J. Lu, as reported there: -http://www.nabble.com/PATCH:-Use-short-for-fnstsw-td14775171.html - -fnstsw stores 16bit into %ax. The upper 16bit of %eax is unchanged. -The new assembler (binutils-2.18.50.0.4 and up) will disallow "fnstsw %eax". - -diff -dur glibc-2.6.1.orig/sysdeps/i386/fpu/ftestexcept.c glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c ---- glibc-2.6.1.orig/sysdeps/i386/fpu/ftestexcept.c 2004-03-05 11:14:48.000000000 +0100 -+++ glibc-2.6.1/sysdeps/i386/fpu/ftestexcept.c 2008-06-24 10:56:14.000000000 +0200 -@@ -26,7 +26,7 @@ - int - fetestexcept (int excepts) - { -- int temp; -+ short temp; - int xtemp = 0; - - /* Get current exceptions. */ diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/210-fix-pr631.patch --- a/patches/glibc/2.3.6/210-fix-pr631.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -From dank@kegel.com -Wed Jun 15 09:12:43 PDT 2005 - -Fixes - -build-glibc/libc.a(nsswitch.o)(.data+0x64): undefined reference to `_nss_files_getaliasent_r' -build-glibc/libc.a(nsswitch.o)(.data+0x6c): undefined reference to `_nss_files_endaliasent' -... 53 lines deleted ... -build-glibc/libc.a(nsswitch.o)(.data+0x21c): undefined reference to `_nss_files_getspnam_r' -collect2: ld returned 1 exit status -make[2]: *** [/build/gcc-3.4.3-glibc-2.3.5-hdrs-2.6.11.2/i686-unknown-linux-gnu/build-glibc/elf/ldconfig] Error 1 - -when building glibc with --enable-static-nss. - -See http://sources.redhat.com/bugzilla/show_bug.cgi?id=631 - ---- glibc-2.3.5/Makeconfig.old Wed Jun 15 08:13:12 2005 -+++ glibc-2.3.5/Makeconfig Wed Jun 15 08:13:14 2005 -@@ -487,7 +487,7 @@ - - # The static libraries. - ifeq (yes,$(build-static)) --link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(common-objpfx)libc.a -+link-libc-static = $(common-objpfx)libc.a $(static-gnulib) $(otherlibs) $(common-objpfx)libc.a - else - ifeq (yes,$(build-shared)) - # We can try to link the programs with lib*_pic.a... ---- glibc-2.3.5/elf/Makefile.old Wed Jun 15 07:46:49 2005 -+++ glibc-2.3.5/elf/Makefile Wed Jun 15 08:14:00 2005 -@@ -115,6 +115,13 @@ - install-bin-script = ldd - endif - -+ifeq (yes,$(build-static-nss)) -+nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss) -+resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv) -+otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \ -+ $(resolvobjdir)/libresolv.a -+endif -+ - others = sprof sln - install-bin = sprof - others-static = sln - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/220-fp-byteorder.patch --- a/patches/glibc/2.3.6/220-fp-byteorder.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,205 +0,0 @@ -Taken from http://sources.redhat.com/ml/crossgcc/2004-02/msg00104.html -Author: addsub@eyou.com -Target: ARM - -Fixes http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/execute/920501-8.c -and makes printf("%f", 1.0) work. - -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00115.html : - It ... fixes the 'printf("%f\n", 0.5); prints 0.000000' and general 'floating point - is broken' on my big-endian hardfloat FPA ARM platform. ... - It's definitely needed for hardfloat. So I'd think it's needed for - big-endian systems in any case, and for VFP on little-endian systems - too. Someone would have to verify that though. - -Lennert Buytenhek wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00123.html - I just had a look at glibc-20040830, and [this patch] is still needed and useful - for this version. glibc-20040830 out-of-the-box still contains the - following wrong assumptions: - - sysdeps/arm/bits/endian.h: float word order is big endian (which it is - not on vfp systems) - - sysdeps/arm/gmp-mparam.h: IEEE doubles are mixed endian (which they - are not on big endian systems, neither on vfp systems) - - sysdeps/arm/ieee754.h: IEEE doubles are in little endian byte order - (which they are not on big endian systems) - [This patch] seems the right solution for all of these issues. - -Dimitry Andric wrote in http://sources.redhat.com/ml/crossgcc/2004-09/msg00132.html : - It's even needed for glibc CVS, AFAICS. - The patch hunk which modifies glibc.new/sysdeps/arm/bits/endian.h - (currently at version 1.4) is only needed for proper VFP operation. - But the hunk which modifies sysdeps/arm/gmp-mparam.h, and the hunk - that deletes sysdeps/arm/ieee754.h (yes, this IS correct), are needed - for proper operation of *any* FP model on big endian ARM. - -See also discussion in followups to -http://sources.redhat.com/ml/crossgcc/2004-05/msg00245.html) - -Message-ID: <276985760.37584@eyou.com> -Received: from unknown (HELO eyou.com) (172.16.2.2) - by 0.0.0.0 with SMTP; Tue, 17 Feb 2004 10:42:40 +0800 -Received: (qmail 8238 invoked by uid 65534); 17 Feb 2004 10:42:38 +0800 -Date: 17 Feb 2004 10:42:38 +0800 -Message-ID: <20040217104238.8237.qmail@eyou.com> -From: "add" -To: dank@kegel.com -Reply-To: "add" -Subject: Re:   problem while building arm vfp softfloat gcc ` - -Hi, Dan, This is a patch I applied to my glibc-2.3.2, then my softfloat -toolchain can printf("%f\n",1.0). So you may have a try of this - - -diff -uNrp glibc.old/sysdeps/arm/bits/endian.h glibc.new/sysdeps/arm/bits/endian.h ---- glibc.old/sysdeps/arm/bits/endian.h 1999-04-12 11:59:13.000000000 -0400 -+++ glibc.new/sysdeps/arm/bits/endian.h 2004-02-12 09:15:13.000000000 -0500 -@@ -9,4 +9,9 @@ - #else - #define __BYTE_ORDER __LITTLE_ENDIAN - #endif -+ -+#ifdef __VFP_FP__ -+#define __FLOAT_WORD_ORDER __BYTE_ORDER -+#else - #define __FLOAT_WORD_ORDER __BIG_ENDIAN -+#endif -diff -uNrp glibc.old/sysdeps/arm/gmp-mparam.h glibc.new/sysdeps/arm/gmp-mparam.h ---- glibc.old/sysdeps/arm/gmp-mparam.h 2001-07-07 15:21:19.000000000 -0400 -+++ glibc.new/sysdeps/arm/gmp-mparam.h 2004-02-12 09:15:13.000000000 -0500 -@@ -26,5 +26,13 @@ MA 02111-1307, USA. */ - #define BITS_PER_SHORTINT 16 - #define BITS_PER_CHAR 8 - --#define IEEE_DOUBLE_BIG_ENDIAN 0 --#define IEEE_DOUBLE_MIXED_ENDIAN 1 -+#if defined(__ARMEB__) -+# define IEEE_DOUBLE_MIXED_ENDIAN 0 -+# define IEEE_DOUBLE_BIG_ENDIAN 1 -+#elif defined(__VFP_FP__) -+# define IEEE_DOUBLE_MIXED_ENDIAN 0 -+# define IEEE_DOUBLE_BIG_ENDIAN 0 -+#else -+# define IEEE_DOUBLE_BIG_ENDIAN 0 -+# define IEEE_DOUBLE_MIXED_ENDIAN 1 -+#endif -diff -uNrp glibc.old/sysdeps/arm/ieee754.h glibc.new/sysdeps/arm/ieee754.h ---- glibc.old/sysdeps/arm/ieee754.h 2001-07-07 15:21:19.000000000 -0400 -+++ glibc.new/sysdeps/arm/ieee754.h 1969-12-31 19:00:00.000000000 -0500 -@@ -1,115 +0,0 @@ --/* Copyright (C) 1992, 1995, 1996, 1998 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#ifndef _IEEE754_H -- --#define _IEEE754_H 1 --#include -- --#include -- --__BEGIN_DECLS -- --union ieee754_float -- { -- float f; -- -- /* This is the IEEE 754 single-precision format. */ -- struct -- { -- unsigned int mantissa:23; -- unsigned int exponent:8; -- unsigned int negative:1; -- } ieee; -- -- /* This format makes it easier to see if a NaN is a signalling NaN. */ -- struct -- { -- unsigned int mantissa:22; -- unsigned int quiet_nan:1; -- unsigned int exponent:8; -- unsigned int negative:1; -- } ieee_nan; -- }; -- --#define IEEE754_FLOAT_BIAS 0x7f /* Added to exponent. */ -- -- --union ieee754_double -- { -- double d; -- -- /* This is the IEEE 754 double-precision format. */ -- struct -- { -- unsigned int mantissa0:20; -- unsigned int exponent:11; -- unsigned int negative:1; -- unsigned int mantissa1:32; -- } ieee; -- -- /* This format makes it easier to see if a NaN is a signalling NaN. */ -- struct -- { -- unsigned int mantissa0:19; -- unsigned int quiet_nan:1; -- unsigned int exponent:11; -- unsigned int negative:1; -- unsigned int mantissa1:32; -- } ieee_nan; -- }; -- --#define IEEE754_DOUBLE_BIAS 0x3ff /* Added to exponent. */ -- -- --/* The following two structures are correct for `new' floating point systems but -- wrong for the old FPPC. The only solution seems to be to avoid their use on -- old hardware. */ -- --union ieee854_long_double -- { -- long double d; -- -- /* This is the IEEE 854 double-extended-precision format. */ -- struct -- { -- unsigned int exponent:15; -- unsigned int empty:16; -- unsigned int negative:1; -- unsigned int mantissa1:32; -- unsigned int mantissa0:32; -- } ieee; -- -- /* This is for NaNs in the IEEE 854 double-extended-precision format. */ -- struct -- { -- unsigned int exponent:15; -- unsigned int empty:16; -- unsigned int negative:1; -- unsigned int mantissa1:32; -- unsigned int mantissa0:30; -- unsigned int quiet_nan:1; -- unsigned int one:1; -- } ieee_nan; -- }; -- --#define IEEE854_LONG_DOUBLE_BIAS 0x3fff -- --__END_DECLS -- --#endif /* ieee754.h */ - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/230-mips-bootstrap-gcc-header-install.patch --- a/patches/glibc/2.3.6/230-mips-bootstrap-gcc-header-install.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -http://sourceware.org/ml/crossgcc/2005-05/msg00165.html -Fixes a MIPS build problem (unrelated to NPTL) - -Message-ID: <428E8B24.1000201@realitydiluted.com> -Date: Fri, 20 May 2005 20:13:08 -0500 -From: "Steven J dot Hill" -To: crossgcc at sources dot redhat dot com, toolchain at gentoo dot org, - Shay_Gal-On at pmc-sierra dot com, TheNop at gmx dot net -Subject: New NPTL patches for crosstools and MIPS NPTL patches.... - -Greetings. - -I have uploaded the latest NPTL patch for crosstool-0.34. I have also -uploaded a tarball of the patches necessary to build a MIPS NPTL -cross toolchain. To build a MIPS NPTL toolchain you will need the -released version of binutils-2.16 and the absolute latest GCC and -glibc code from the HEAD of cvs. Use the 'demo-mips-nptl.sh' script -to build the toolchain. Please report bugs or issues to the crossgcc -mailing list. Here is the link off of my FTP site: - - ftp://ftp.realitydiluted.com/crosstools/crosstool-0.34/ - -[Note: BOOTSTRAP_GCC is set by crosstool.sh when invoking make install-headers] - -diff -ur glibc-2.4.0-20050406/sysdeps/mips/mips32/Makefile glibc-2.4.0-20050406-patched/sysdeps/mips/mips32/Makefile ---- glibc-2.4.0-20050406/sysdeps/mips/mips32/Makefile 2003-03-29 02:15:28.000000000 -0600 -+++ glibc-2.4.0-20050406-patched/sysdeps/mips/mips32/Makefile 2005-04-12 21:36:51.318837655 -0500 -@@ -1,3 +1,7 @@ -+ifeq ($(filter -DBOOTSTRAP_GCC,$(CFLAGS)),) - ifeq ($(filter -mabi=32,$(CC)),) - CC += -mabi=32 - endif -+else -+CC += -D"_MIPS_SZPTR=32" -+endif - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/240-make-install-lib-all.patch --- a/patches/glibc/2.3.6/240-make-install-lib-all.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -From http://svn.exactcode.de/t2/trunk/package/base/glibc32/make-install-lib-all.patch -Rule to install all needed libraries, not just the ones installed by install-lib, -yet not install programs. -Needed because we can't use the main install target, as we can't build programs before -we have the final gcc installed; linking fails because libeh.a is not present, -and glibc insists on linking programs with that library. - -diff -Naur glibc-2.3.4.orig/Makerules glibc-2.3.4/Makerules ---- glibc-2.3.4.orig/Makerules 2004-12-15 20:52:39.000000000 +0200 -+++ glibc-2.3.4/Makerules 2005-02-19 15:16:31.415125176 +0200 -@@ -844,6 +844,13 @@ - installed-libcs := $(foreach o,$(filter-out .os,$(object-suffixes-for-libc)),\ - $(inst_libdir)/$(patsubst %,$(libtype$o),\ - $(libprefix)$(libc-name))) -+ -+install-lib-all: $(inst_slibdir)/libc.so$(libc.so-version) \ -+ $(inst_slibdir)/libc-$(version).so \ -+ $(inst_libdir)/libc.so \ -+ $(inst_libdir)/libc.a \ -+ install-lib -+ - install: $(installed-libcs) - $(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib $(+force) - $(make-target-directory) - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/250-weakalias.patch --- a/patches/glibc/2.3.6/250-weakalias.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -This one was taken from debian. - -# DP: Description: Fix __bind redefinition problem -# DP: Related bugs: -# DP: Dpatch author: Phil Blundell -# DP: Patch author: Daniel Jacobowitz -# DP: Upstream status: In CVS -# DP: Status Details: -# DP: Date: 2005-12-25 - -Index: sysdeps/unix/sysv/linux/arm/socket.S -=================================================================== -RCS file: /cvs/glibc/ports/sysdeps/unix/sysv/linux/arm/socket.S,v -retrieving revision 1.12 -retrieving revision 1.13 -diff -u -r1.12 -r1.13 ---- glibc-2.3.6.ds1.orig/sysdeps/unix/sysv/linux/arm/socket.S 4 Dec 2004 21:20:16 -0000 1.12 -+++ glibc-2.3.6.ds1/sysdeps/unix/sysv/linux/arm/socket.S 27 Oct 2005 18:50:12 -0000 1.13 -@@ -1,4 +1,6 @@ --/* Copyright (C) 1995, 1996, 1997, 1998, 2003 Free Software Foundation, Inc. -+/* Copyright (C) 1995, 1996, 1997, 1998, 2003, 2004, 2005 -+ Free Software Foundation, Inc. -+ - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -32,7 +34,11 @@ - The .S files for the other calls just #define socket and #include this. */ - - #ifndef __socket -+#ifndef NO_WEAK_ALIAS - #define __socket P(__,socket) -+#else -+#define __socket socket -+#endif - #endif - - #define PUSHARGS_1 str a1, [sp, $-4]! -@@ -120,4 +126,6 @@ - - PSEUDO_END (__socket) - -+#ifndef NO_WEAK_ALIAS - weak_alias (__socket, socket) -+#endif diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/260-csu-Makefile.patch --- a/patches/glibc/2.3.6/260-csu-Makefile.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -Use printf instead of echo for some shells. - -http://www.cygwin.com/ml/libc-alpha/2005-02/msg00123.html - -This patch does not generate invalid csu/version-info.h which has -unterminating " line because some /bin/sh cannot parse correctly. The -previous discussion was: - - http://sources.redhat.com/ml/libc-alpha/2004-08/msg00129.html - http://sources.redhat.com/ml/libc-alpha/2004-08/msg00145.html - -This patch gets rid of all this issue because the conclusion of the -discussion was to use printf instead of echo. Roland, could you look -at it again? - -Regards, --- gotom - -2005-02-26 GOTO Masanori - - * csu/Makefile: Use printf instead of echo for some shells. - -Index: csu/Makefile -=================================================================== -RCS file: /cvs/glibc/libc/csu/Makefile,v -retrieving revision 1.75 -diff -u -p -r1.75 Makefile ---- glibc/csu/Makefile 3 Jan 2005 17:57:14 -0000 1.75 -+++ glibc.new/csu/Makefile 27 Feb 2005 01:17:49 -0000 -@@ -241,7 +241,7 @@ $(objpfx)version-info.h: $(common-objpfx - esac; \ - files="$(all-Banner-files)"; \ - if test -n "$$files"; then \ -- echo "\"Available extensions:\\n\""; \ -+ printf '"Available extensions:\\n"\n'; \ - sed -e '/^#/d' -e 's/^[[:space:]]*/ /' \ - -e 's/^\(.*\)$$/\"\1\\n\"/' $$files; \ - fi) > $@T - diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/270-alpha-asm_page.patch --- a/patches/glibc/2.3.6/270-alpha-asm_page.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -2008-06-07 Mike Frysinger - - * sysdeps/unix/sysv/linux/alpha/sys/user.h: Copy page.h definitions - from the kernel header to sys/user.h and remove the #include of - sys/user.h. - ---- a/sysdeps/unix/sysv/linux/alpha/sys/user.h -+++ b/sysdeps/unix/sysv/linux/alpha/sys/user.h -@@ -23,7 +23,6 @@ - only. Don't read too much into it. Don't use it for anything other - than gdb/strace unless you know what you are doing. */ - --#include - #include - - struct user -@@ -41,6 +40,9 @@ struct user - char u_comm[32]; /* user command name */ - }; - -+#define PAGE_SHIFT 13 -+#define PAGE_SIZE (1 << PAGE_SHIFT) -+#define PAGE_MASK (~(PAGE_SIZE-1)) - #define NBPG PAGE_SIZE - #define UPAGES 1 - #define HOST_TEXT_START_ADDR (u.start_code) diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/280-alpha-asm_elf.patch --- a/patches/glibc/2.3.6/280-alpha-asm_elf.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,194 +0,0 @@ -since the kernel no longer provides asm/elf.h, the sys/procfs.h from the -common code, alpha, and sh fail when used. this should things up. --mike - -2008-06-07 Mike Frysinger - - * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. - * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h - definitions from the kernel header to sys/procfs.h and remove the - #include of asm/elf.h. - * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. - -*Attachment: signature.asc * -/Description:/ This is a digitally signed message part. - -2008-06-07 Mike Frysinger - - * sysdeps/unix/sysv/linux/sys/procfs.h: Replace with #error stub. - * sysdeps/unix/sysv/linux/alpha/sys/procfs.h: Copy some asm/elf.h - definitions from the kernel header to sys/procfs.h and remove the - #include of asm/elf.h. - * sysdeps/unix/sysv/linux/sh/sys/procfs.h: Likewise. - ---- a/sysdeps/unix/sysv/linux/alpha/sys/procfs.h -+++ b/sysdeps/unix/sysv/linux/alpha/sys/procfs.h -@@ -29,10 +29,23 @@ - #include - #include - #include --#include - - __BEGIN_DECLS - -+/* -+ * The OSF/1 version of makes gregset_t 46 entries long. -+ * I have no idea why that is so. For now, we just leave it at 33 -+ * (32 general regs + processor status word). -+ */ -+#define ELF_NGREG 33 -+#define ELF_NFPREG 32 -+ -+typedef unsigned long elf_greg_t; -+typedef elf_greg_t elf_gregset_t[ELF_NGREG]; -+ -+typedef double elf_fpreg_t; -+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; -+ - struct elf_siginfo - { - int si_signo; /* Signal number. */ ---- a/sysdeps/unix/sysv/linux/sh/sys/procfs.h -+++ b/sysdeps/unix/sysv/linux/sh/sys/procfs.h -@@ -29,10 +29,19 @@ - #include - #include - #include --#include - - __BEGIN_DECLS - -+/* -+ * ELF register definitions... -+ */ -+typedef unsigned long elf_greg_t; -+ -+#define ELF_NGREG (sizeof (struct pt_regs) / sizeof(elf_greg_t)) -+typedef elf_greg_t elf_gregset_t[ELF_NGREG]; -+ -+typedef struct user_fpu_struct elf_fpregset_t; -+ - struct elf_siginfo - { - int si_signo; /* Signal number. */ ---- a/sysdeps/unix/sysv/linux/sys/procfs.h -+++ b/sysdeps/unix/sysv/linux/sys/procfs.h -@@ -1,115 +1,2 @@ --/* Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -- --#ifndef _SYS_PROCFS_H --#define _SYS_PROCFS_H 1 -- --/* This is somehow modelled after the file of the same name on SysVr4 -- systems. It provides a definition of the core file format for ELF -- used on Linux. */ -- --#include --#include --#include --#include --#include --#include --#include -- --__BEGIN_DECLS -- --struct elf_siginfo -- { -- int si_signo; /* Signal number. */ -- int si_code; /* Extra code. */ -- int si_errno; /* Errno. */ -- }; -- --/* Definitions to generate Intel SVR4-like core files. These mostly -- have the same names as the SVR4 types with "elf_" tacked on the -- front to prevent clashes with linux definitions, and the typedef -- forms have been avoided. This is mostly like the SVR4 structure, -- but more Linuxy, with things that Linux does not support and which -- gdb doesn't really use excluded. Fields present but not used are -- marked with "XXX". */ --struct elf_prstatus -- { --#if 0 -- long int pr_flags; /* XXX Process flags. */ -- short int pr_why; /* XXX Reason for process halt. */ -- short int pr_what; /* XXX More detailed reason. */ --#endif -- struct elf_siginfo pr_info; /* Info associated with signal. */ -- short int pr_cursig; /* Current signal. */ -- unsigned long int pr_sigpend; /* Set of pending signals. */ -- unsigned long int pr_sighold; /* Set of held signals. */ --#if 0 -- struct sigaltstack pr_altstack; /* Alternate stack info. */ -- struct sigaction pr_action; /* Signal action for current sig. */ --#endif -- __pid_t pr_pid; -- __pid_t pr_ppid; -- __pid_t pr_pgrp; -- __pid_t pr_sid; -- struct timeval pr_utime; /* User time. */ -- struct timeval pr_stime; /* System time. */ -- struct timeval pr_cutime; /* Cumulative user time. */ -- struct timeval pr_cstime; /* Cumulative system time. */ --#if 0 -- long int pr_instr; /* Current instruction. */ --#endif -- elf_gregset_t pr_reg; /* GP registers. */ -- int pr_fpvalid; /* True if math copro being used. */ -- }; -- -- --#define ELF_PRARGSZ (80) /* Number of chars for args */ -- --struct elf_prpsinfo -- { -- char pr_state; /* Numeric process state. */ -- char pr_sname; /* Char for pr_state. */ -- char pr_zomb; /* Zombie. */ -- char pr_nice; /* Nice val. */ -- unsigned long int pr_flag; /* Flags. */ -- unsigned short int pr_uid; -- unsigned short int pr_gid; -- int pr_pid, pr_ppid, pr_pgrp, pr_sid; -- /* Lots missing */ -- char pr_fname[16]; /* Filename of executable. */ -- char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */ -- }; -- --/* Addresses. */ --typedef void *psaddr_t; -- --/* Register sets. Linux has different names. */ --typedef gregset_t prgregset_t; --typedef fpregset_t prfpregset_t; -- --/* We don't have any differences between processes and threads, -- therefore habe only ine PID type. */ --typedef __pid_t lwpid_t; -- -- --typedef struct elf_prstatus prstatus_t; --typedef struct elf_prpsinfo prpsinfo_t; -- --__END_DECLS -- --#endif /* sys/procfs.h */ -+/* sys/procfs.h is architecture specific. */ -+#error "This file must be supplied by every Linux architecture." - diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/290-gcc-4.3-include.patch --- a/patches/glibc/2.3.6/290-gcc-4.3-include.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -GCC trunk now has multiple internal headers directories, one -containing the self-contained GCC-provided headers and one containing -the (not self-contained but including libc's or -a fixed version thereof) and the fixed headers; more such directories -may be added in future. - -When glibc uses -nostdinc, it needs to use -isystem options for all -these internal directories. This patch teaches it about the -include-fixed directory (and is harmless with old GCC versions without -that directory). - -2007-03-18 Joseph Myers - - * configure.in: Also pass -isystem option for GCC's include-fixed - directory. - * configure: Regenerate. - - ---- glibc-2.3.6.ori/configure.in 2008-10-22 14:55:58.000000000 +0200 -+++ glibc-2.3.6/configure.in 2008-10-22 14:56:15.000000000 +0200 -@@ -804,7 +804,7 @@ - # thing on a system that doesn't need fixincludes. (Not presently a problem.) - if test -n "$sysheaders"; then - ccheaders=`$CC -print-file-name=include` -- SYSINCLUDES="-nostdinc -isystem $ccheaders \ -+ SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $ccheaders-fixed \ - -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`" - fi - AC_SUBST(SYSINCLUDES) ---- glibc-2.3.6.ori/configure 2008-10-22 15:11:37.000000000 +0200 -+++ glibc-2.3.6/configure 2008-10-22 15:11:54.000000000 +0200 -@@ -4438,7 +4438,7 @@ - # thing on a system that doesn't need fixincludes. (Not presently a problem.) - if test -n "$sysheaders"; then - ccheaders=`$CC -print-file-name=include` -- SYSINCLUDES="-nostdinc -isystem $ccheaders \ -+ SYSINCLUDES="-nostdinc -isystem $ccheaders -isystem $ccheaders-fixed \ - -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`" - fi - diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/300-fix-binutils-version-check.patch --- a/patches/glibc/2.3.6/300-fix-binutils-version-check.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ ---- glibc-2.3.6.orig/configure 2010-03-08 23:10:00.000000000 +0100 -+++ glibc-2.3.6/configure 2010-03-08 23:12:00.000000000 +0100 -@@ -3917,7 +3917,7 @@ - ac_prog_version=`$AS -v &1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; -- 2.1[3-9]*) -+ 2.1[3-9]*|2.[2-9]*|[3-9].*|1[0-9].*) - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - -@@ -3978,7 +3978,7 @@ - ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'` - case $ac_prog_version in - '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; -- 2.1[3-9]*) -+ 2.1[3-9]*|2.[2-9]*|[3-9].*|1[0-9].*) - ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; - *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; - diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/310-_begin-missing.patch --- a/patches/glibc/2.3.6/310-_begin-missing.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -diff -ru glibc-2.3.6/elf/Makefile glibc-2.3.6.patched/elf/Makefile ---- glibc-2.3.6/elf/Makefile 2010-05-02 18:58:38.000000000 -0400 -+++ glibc-2.3.6.patched/elf/Makefile 2010-05-02 18:54:54.000000000 -0400 -@@ -292,7 +292,7 @@ - $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 | \ - LC_ALL=C \ - sed -e '/^=========/,/^=========/!d;/^=========/d' \ -- -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \ -+ -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \ - > $@.lds - $(LINK.o) -nostdlib -nostartfiles -shared -o $@ \ - $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now)) \ diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/maybe/100-allow-gcc-4.0-powerpc32.patch --- a/patches/glibc/2.3.6/maybe/100-allow-gcc-4.0-powerpc32.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -Fixes - -../sysdeps/powerpc/powerpc32/dl-machine.h: In function '_dl_relocate_object': -../sysdeps/powerpc/powerpc32/dl-machine.h:461: error: invalid storage class for function 'elf_machine_rela_relative' -../sysdeps/powerpc/powerpc32/dl-machine.h:469: error: invalid storage class for function 'elf_machine_lazy_rel' -make[2]: *** [/home/dank/queue/jobdir.dual2/crosstool-dev/build/powerpc-750-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/build-glibc/elf/dl-reloc.o] Error 1 - ---- glibc-2.3.6.orig/sysdeps/powerpc/powerpc32/dl-machine.h Wed Jul 30 23:33:52 2003 -+++ glibc-2.3.6/sysdeps/powerpc/powerpc32/dl-machine.h Thu Mar 17 13:19:16 2005 -@@ -455,8 +455,14 @@ - } - } - --auto inline void --__attribute__ ((always_inline)) -+#if __GNUC__ >= 4 -+ auto inline void -+#else -+ static inline void -+#endif -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) -+ __attribute ((always_inline)) -+#endif - elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc, - void *const reloc_addr_arg) - { -@@ -464,8 +470,14 @@ - *reloc_addr = l_addr + reloc->r_addend; - } - --auto inline void --__attribute__ ((always_inline)) -+#if __GNUC__ >= 4 -+ auto inline void -+#else -+ static inline void -+#endif -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) -+ __attribute ((always_inline)) -+#endif - elf_machine_lazy_rel (struct link_map *map, - Elf32_Addr l_addr, const Elf32_Rela *reloc) - { - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa patches/glibc/2.3.6/maybe/101-allow-gcc-4.0-powerpc64.patch --- a/patches/glibc/2.3.6/maybe/101-allow-gcc-4.0-powerpc64.patch Mon Jan 03 22:02:06 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -Fixes: - -In file included from dynamic-link.h:22, - from dl-reloc.c:269: -../sysdeps/powerpc/powerpc64/dl-machine.h: In function '_dl_relocate_object': -../sysdeps/powerpc/powerpc64/dl-machine.h:573: error: invalid storage class for function 'elf_machine_rela_relative' -../sysdeps/powerpc/powerpc64/dl-machine.h:607: error: invalid storage class for function 'elf_machine_rela' -../sysdeps/powerpc/powerpc64/dl-machine.h:889: error: invalid storage class for function 'elf_machine_lazy_rel' -make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-dev/build/powerpc64-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3-20050307/glibc-2.3-20050307/elf' - ---- glibc-2.3.6.orig/sysdeps/powerpc/powerpc64/dl-machine.h Thu Mar 17 13:35:23 2005 -+++ glibc-2.3.6/sysdeps/powerpc/powerpc64/dl-machine.h Thu Mar 17 13:37:12 2005 -@@ -567,8 +567,14 @@ - const Elf64_Sym *refsym) - attribute_hidden; - --auto inline void --__attribute__ ((always_inline)) -+#if __GNUC__ >= 4 -+ auto inline void -+#else -+ static inline void -+#endif -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) -+ __attribute ((always_inline)) -+#endif - elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc, - void *const reloc_addr_arg) - { -@@ -599,8 +605,14 @@ - - /* Perform the relocation specified by RELOC and SYM (which is fully - resolved). MAP is the object containing the reloc. */ --auto inline void --__attribute__ ((always_inline)) -+#if __GNUC__ >= 4 -+ auto inline void -+#else -+ static inline void -+#endif -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) -+ __attribute ((always_inline)) -+#endif - elf_machine_rela (struct link_map *map, - const Elf64_Rela *reloc, - const Elf64_Sym *sym, -@@ -885,8 +897,14 @@ - MODIFIED_CODE_NOQUEUE (reloc_addr); - } - --auto inline void --__attribute__ ((always_inline)) -+#if __GNUC__ >= 4 -+ auto inline void -+#else -+ static inline void -+#endif -+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) -+ __attribute ((always_inline)) -+#endif - elf_machine_lazy_rel (struct link_map *map, - Elf64_Addr l_addr, const Elf64_Rela *reloc) - { - -Signed-off-by: Robert P. J. Day diff -r a64ae33ea8ae -r 7af68e6083aa scripts/build/libc/glibc.sh --- a/scripts/build/libc/glibc.sh Mon Jan 03 22:02:06 2011 +0100 +++ b/scripts/build/libc/glibc.sh Mon Jan 03 23:40:22 2011 +0100 @@ -144,33 +144,6 @@ CT_DoLog EXTRA "Installing C library headers" - if grep -q GLIBC_2.3 "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/ChangeLog"; then - # glibc-2.3.x passes cross options to $(CC) when generating errlist-compat.c, - # which fails without a real cross-compiler. - # Fortunately, we don't need errlist-compat.c, since we just need .h - # files, so work around this by creating a fake errlist-compat.c and - # satisfying its dependencies. - # Another workaround might be to tell configure to not use any cross - # options to $(CC). - # The real fix would be to get install-headers to not generate - # errlist-compat.c. - # Note: BOOTSTRAP_GCC is used by: - # patches/glibc-2.3.5/glibc-mips-bootstrap-gcc-header-install.patch - - libc_cv_ppc_machine=yes \ - CT_DoExecLog ALL \ - make CFLAGS="-O2 -DBOOTSTRAP_GCC" \ - OBJDUMP_FOR_HOST="${CT_TARGET}-objdump" \ - PARALLELMFLAGS="${PARALLELMFLAGS}" \ - sysdeps/gnu/errlist.c - mkdir -p stdio-common - - # sleep for 2 seconds for benefit of filesystems with lousy time - # resolution, like FAT, so make knows for sure errlist-compat.c doesn't - # need generating - sleep 2 - CT_DoExecLog ALL touch stdio-common/errlist-compat.c - fi # Note: BOOTSTRAP_GCC (see above) libc_cv_ppc_machine=yes \ CT_DoExecLog ALL \ @@ -464,29 +437,6 @@ "${extra_config[@]}" \ ${CT_LIBC_GLIBC_EXTRA_CONFIG} - if grep -l '^install-lib-all:' "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/Makerules" > /dev/null; then - # nptl-era glibc. - # If the install-lib-all target (which is added by our make-install-lib-all.patch) - # is present, it means we're building glibc-2.3.3 or later, and we can't - # build programs yet, as they require libeh, which won't be installed - # until full build of gcc - # YEM-FIXME: This comment is misleading: latest glibc-s do not have the - # make-install-lib-all.patch applied, so do not pass through this - # part of the if statement; nonetheless, they do build, and - # the result is useable (maybe the dual-pass core gcc is - # responsible for this). - GLIBC_INITIAL_BUILD_RULE=lib - GLIBC_INITIAL_INSTALL_RULE="install-lib-all install-headers" - GLIBC_INSTALL_APPS_LATER=yes - else - # classic glibc. - # We can build and install everything with the bootstrap compiler. - # YEM-FIXME: See the above FIXME as well. - GLIBC_INITIAL_BUILD_RULE=all - GLIBC_INITIAL_INSTALL_RULE=install - GLIBC_INSTALL_APPS_LATER=no - fi - # glibc initial build hacks # http://sourceware.org/ml/crossgcc/2008-10/msg00068.html case "${CT_ARCH},${CT_ARCH_CPU}" in @@ -506,14 +456,14 @@ OBJDUMP_FOR_HOST="${CT_TARGET}-objdump" \ ASFLAGS="${GLIBC_INITIAL_BUILD_ASFLAGS}" \ PARALLELMFLAGS="${PARALLELMFLAGS}" \ - ${GLIBC_INITIAL_BUILD_RULE} + all CT_DoLog EXTRA "Installing C library" CT_DoExecLog ALL make install_root="${CT_SYSROOT_DIR}" \ ${LIBC_SYSROOT_ARG} \ OBJDUMP_FOR_HOST="${CT_TARGET}-objdump" \ PARALLELMFLAGS="${PARALLELMFLAGS}" \ - ${GLIBC_INITIAL_INSTALL_RULE} + install # This doesn't seem to work when building a crosscompiler, # as it tries to execute localedef using the just-built ld.so!? @@ -544,34 +494,7 @@ # This function finishes the glibc install do_libc_finish() { - # Finally, build and install glibc programs, now that libeh (if any) is installed - # Don't do this unless needed, 'cause it causes glibc-2.{1.3,2.2} to fail here with - # .../gcc-3.4.1-glibc-2.1.3/build-glibc/libc.so.6: undefined reference to `__deregister_frame_info' - # .../gcc-3.4.1-glibc-2.1.3/build-glibc/libc.so.6: undefined reference to `__register_frame_info' - [ "${GLIBC_INSTALL_APPS_LATER}" = "yes" ] || return 0 - - CT_DoStep INFO "Finishing C library" - - cd "${CT_BUILD_DIR}/build-libc" - - CT_DoLog EXTRA "Re-building C library" - CT_DoExecLog ALL make LD=${CT_TARGET}-ld \ - RANLIB=${CT_TARGET}-ranlib \ - OBJDUMP_FOR_HOST="${CT_TARGET}-objdump" \ - ASFLAGS="${GLIBC_INITIAL_BUILD_ASFLAGS}" \ - PARALLELMFLAGS="${PARALLELMFLAGS}" - - CT_DoLog EXTRA "Installing missing C library components" - # note: should do full install and then fix linker scripts, but this is faster - for t in bin rootsbin sbin data others; do - CT_DoExecLog ALL make install_root="${CT_SYSROOT_DIR}" \ - ${LIBC_SYSROOT_ARG} \ - OBJDUMP_FOR_HOST="${CT_TARGET}-objdump" \ - PARALLELMFLAGS="${PARALLELMFLAGS}" \ - install-${t} - done - - CT_EndStep + : } # Build up the addons list, separated with $1