1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-mipsel.patch Sat Jun 02 08:13:13 2007 +0000
1.3 @@ -0,0 +1,81 @@
1.4 +Message-ID: <424A8F67.7060307@kaear.co.uk>
1.5 +Date: Wed, 30 Mar 2005 12:37:11 +0100
1.6 +From: Piete Sartain <kaear@kaear.co.uk>
1.7 +To: crossgcc@sources.redhat.com
1.8 +Subject: [Patch] CT 0.3 - glibc-2.2.5-allow-gcc-4.0-mipsel
1.9 +
1.10 +
1.11 +I copied the relevant sections out of
1.12 +http://kegel.com/crosstool/crosstool-0.29/patches/glibc-2.3-20050307/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch
1.13 +for a mipsel target.
1.14 +
1.15 +The build still fails, but now with an assembler error at crtbegin.o.
1.16 +
1.17 +[---dank: judging from my old buildlogs, this should fix:
1.18 +
1.19 +In file included from dynamic-link.h:21,
1.20 + from dl-reloc.c:153:
1.21 +../sysdeps/mips/dl-machine.h: In function '_dl_relocate_object':
1.22 +../sysdeps/mips/dl-machine.h:477: error: invalid storage class for function 'elf_machine_rel'
1.23 +../sysdeps/mips/dl-machine.h:539: error: invalid storage class for function 'elf_machine_rel_relative'
1.24 +../sysdeps/mips/dl-machine.h:546: error: invalid storage class for function 'elf_machine_lazy_rel'
1.25 +../sysdeps/mips/dl-machine.h:554: error: invalid storage class for function 'elf_machine_got_rel'
1.26 +../sysdeps/mips/dl-machine.h:641: error: invalid storage class for function 'elf_machine_runtime_setup'
1.27 +make[2]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-0.30/build/mipsel-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5/elf'
1.28 +make[2]: *** [/home/dank/queue/jobdir.fast2/crosstool-0.30/build/mipsel-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/build-glibc/elf/dl-reloc.o] Error 1
1.29 +make[1]: *** [elf/subdir_lib] Error 2
1.30 +make[1]: Leaving directory `/home/dank/queue/jobdir.fast2/crosstool-0.30/build/mipsel-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.2.5/glibc-2.2.5'
1.31 +make: *** [all] Error 2
1.32 +---]
1.33 +
1.34 +
1.35 +--- glibc-2.2.5/sysdeps/mips/dl-machine.h.old 2005-03-28 18:19:56.000000000 +0100
1.36 ++++ glibc-2.2.5/sysdeps/mips/dl-machine.h 2005-03-28 18:25:15.000000000 +0100
1.37 +@@ -534,14 +534,28 @@
1.38 + }
1.39 + }
1.40 +
1.41 +-static inline void
1.42 ++#if __GNUC__ >= 4
1.43 ++ auto inline void
1.44 ++#else
1.45 ++ static inline void
1.46 ++#endif
1.47 ++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
1.48 ++ __attribute ((always_inline))
1.49 ++#endif
1.50 + elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
1.51 + ElfW(Addr) *const reloc_addr)
1.52 + {
1.53 + /* XXX Nothing to do. There is no relative relocation, right? */
1.54 + }
1.55 +
1.56 +-static inline void
1.57 ++#if __GNUC__ >= 4
1.58 ++ auto inline void
1.59 ++#else
1.60 ++ static inline void
1.61 ++#endif
1.62 ++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
1.63 ++ __attribute ((always_inline))
1.64 ++#endif
1.65 + elf_machine_lazy_rel (struct link_map *map,
1.66 + ElfW(Addr) l_addr, const ElfW(Rel) *reloc)
1.67 + {
1.68 +@@ -550,7 +564,14 @@
1.69 +
1.70 + #ifndef RTLD_BOOTSTRAP
1.71 + /* Relocate GOT. */
1.72 +-static inline void
1.73 ++#if __GNUC__ >= 4
1.74 ++ auto inline void
1.75 ++#else
1.76 ++ static inline void
1.77 ++#endif
1.78 ++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
1.79 ++ __attribute ((always_inline))
1.80 ++#endif
1.81 + elf_machine_got_rel (struct link_map *map, int lazy)
1.82 + {
1.83 + ElfW(Addr) *got;
1.84 +