patches/glibc/2.2.5/glibc-2.2.5-allow-gcc-4.0-mipsel.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Jul 28 21:34:41 2007 +0000 (2007-07-28)
changeset 301 2be7232a73ac
permissions -rw-r--r--
Bump version to 0.2.2.
yann@1
     1
Message-ID: <424A8F67.7060307@kaear.co.uk>
yann@1
     2
Date: Wed, 30 Mar 2005 12:37:11 +0100
yann@1
     3
From: Piete Sartain <kaear@kaear.co.uk>
yann@1
     4
To:  crossgcc@sources.redhat.com
yann@1
     5
Subject: [Patch]  CT 0.3 - glibc-2.2.5-allow-gcc-4.0-mipsel
yann@1
     6
yann@1
     7
yann@1
     8
I copied the relevant sections out of 
yann@1
     9
http://kegel.com/crosstool/crosstool-0.29/patches/glibc-2.3-20050307/glibc-2.3.4-allow-gcc-4.0-powerpc64.patch 
yann@1
    10
for a mipsel target.
yann@1
    11
yann@1
    12
The build still fails, but now with an assembler error at crtbegin.o.
yann@1
    13
yann@1
    14
[---dank: judging from my old buildlogs, this should fix:
yann@1
    15
yann@1
    16
In file included from dynamic-link.h:21,
yann@1
    17
                 from dl-reloc.c:153:
yann@1
    18
../sysdeps/mips/dl-machine.h: In function '_dl_relocate_object':
yann@1
    19
../sysdeps/mips/dl-machine.h:477: error: invalid storage class for function 'elf_machine_rel'
yann@1
    20
../sysdeps/mips/dl-machine.h:539: error: invalid storage class for function 'elf_machine_rel_relative'
yann@1
    21
../sysdeps/mips/dl-machine.h:546: error: invalid storage class for function 'elf_machine_lazy_rel'
yann@1
    22
../sysdeps/mips/dl-machine.h:554: error: invalid storage class for function 'elf_machine_got_rel'
yann@1
    23
../sysdeps/mips/dl-machine.h:641: error: invalid storage class for function 'elf_machine_runtime_setup'
yann@1
    24
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'
yann@1
    25
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
yann@1
    26
make[1]: *** [elf/subdir_lib] Error 2
yann@1
    27
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'
yann@1
    28
make: *** [all] Error 2
yann@1
    29
---]
yann@1
    30
yann@1
    31
yann@1
    32
--- glibc-2.2.5/sysdeps/mips/dl-machine.h.old	2005-03-28 18:19:56.000000000 +0100
yann@1
    33
+++ glibc-2.2.5/sysdeps/mips/dl-machine.h	2005-03-28 18:25:15.000000000 +0100
yann@1
    34
@@ -534,14 +534,28 @@
yann@1
    35
     }
yann@1
    36
 }
yann@1
    37
 
yann@1
    38
-static inline void
yann@1
    39
+#if __GNUC__ >= 4
yann@1
    40
+  auto inline void
yann@1
    41
+#else
yann@1
    42
+  static inline void
yann@1
    43
+#endif
yann@1
    44
+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
yann@1
    45
+  __attribute ((always_inline))
yann@1
    46
+#endif
yann@1
    47
 elf_machine_rel_relative (ElfW(Addr) l_addr, const ElfW(Rel) *reloc,
yann@1
    48
 			  ElfW(Addr) *const reloc_addr)
yann@1
    49
 {
yann@1
    50
   /* XXX Nothing to do.  There is no relative relocation, right?  */
yann@1
    51
 }
yann@1
    52
 
yann@1
    53
-static inline void
yann@1
    54
+#if __GNUC__ >= 4
yann@1
    55
+  auto inline void
yann@1
    56
+#else
yann@1
    57
+  static inline void
yann@1
    58
+#endif
yann@1
    59
+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
yann@1
    60
+  __attribute ((always_inline))
yann@1
    61
+#endif
yann@1
    62
 elf_machine_lazy_rel (struct link_map *map,
yann@1
    63
 		      ElfW(Addr) l_addr, const ElfW(Rel) *reloc)
yann@1
    64
 {
yann@1
    65
@@ -550,7 +564,14 @@
yann@1
    66
 
yann@1
    67
 #ifndef RTLD_BOOTSTRAP
yann@1
    68
 /* Relocate GOT. */
yann@1
    69
-static inline void
yann@1
    70
+#if __GNUC__ >= 4
yann@1
    71
+  auto inline void
yann@1
    72
+#else
yann@1
    73
+  static inline void
yann@1
    74
+#endif
yann@1
    75
+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
yann@1
    76
+  __attribute ((always_inline))
yann@1
    77
+#endif
yann@1
    78
 elf_machine_got_rel (struct link_map *map, int lazy)
yann@1
    79
 {
yann@1
    80
   ElfW(Addr) *got;
yann@1
    81