patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-arm.patch
changeset 1 eeea35fbf182
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/patches/glibc/2.3.4/glibc-2.3.4-allow-gcc-4.0-arm.patch	Sat Feb 24 11:00:05 2007 +0000
     1.3 @@ -0,0 +1,117 @@
     1.4 +Fixes
     1.5 +In file included from dynamic-link.h:22,
     1.6 +                 from dl-reloc.c:265:
     1.7 +../sysdeps/arm/dl-machine.h: In function '_dl_relocate_object':
     1.8 +../sysdeps/arm/dl-machine.h:371: error: invalid storage class for function 'fix_bad_pc24'
     1.9 +../sysdeps/arm/dl-machine.h:406: error: invalid storage class for function 'elf_machine_rel'
    1.10 +../sysdeps/arm/dl-machine.h:532: error: invalid storage class for function 'elf_machine_rela'
    1.11 +../sysdeps/arm/dl-machine.h:612: error: invalid storage class for function 'elf_machine_rel_relative'
    1.12 +../sysdeps/arm/dl-machine.h:621: error: invalid storage class for function 'elf_machine_rela_relative'
    1.13 +../sysdeps/arm/dl-machine.h:630: error: invalid storage class for function 'elf_machine_lazy_rel'
    1.14 +make[2]: Leaving directory `/home/dank/queue/jobdir.k8/crosstool-dev/build/arm-unknown-linux-gnu/gcc-4.0-20050305-glibc-2.3.3/glibc-2.3.3/elf'
    1.15 +
    1.16 +when building glibc-2.3.[34] with gcc-4.0
    1.17 +
    1.18 +Like
    1.19 +http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/arm/dl-machine.h.diff?r1=1.51&r2=1.52&cvsroot=glibc
    1.20 +but works with older compilers, and fixes fix_bad_pc24.
    1.21 +
    1.22 +
    1.23 +--- glibc-2.3.4/sysdeps/arm/dl-machine.h.old	Sun Mar 20 17:54:37 2005
    1.24 ++++ glibc-2.3.4/sysdeps/arm/dl-machine.h	Sun Mar 20 17:57:32 2005
    1.25 +@@ -359,7 +359,14 @@
    1.26 + # endif
    1.27 + 
    1.28 + /* Deal with an out-of-range PC24 reloc.  */
    1.29 +-static Elf32_Addr
    1.30 ++#if __GNUC__ >= 4
    1.31 ++  auto inline Elf32_Addr
    1.32 ++#else
    1.33 ++  static inline Elf32_Addr
    1.34 ++#endif
    1.35 ++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
    1.36 ++  __attribute ((always_inline))
    1.37 ++#endif
    1.38 + fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value)
    1.39 + {
    1.40 +   static void *fix_page;
    1.41 +@@ -392,7 +399,14 @@
    1.42 + /* Perform the relocation specified by RELOC and SYM (which is fully resolved).
    1.43 +    MAP is the object containing the reloc.  */
    1.44 + 
    1.45 +-static inline void
    1.46 ++#if __GNUC__ >= 4
    1.47 ++  auto inline void
    1.48 ++#else
    1.49 ++  static inline void
    1.50 ++#endif
    1.51 ++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
    1.52 ++  __attribute ((always_inline))
    1.53 ++#endif
    1.54 + elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
    1.55 + 		 const Elf32_Sym *sym, const struct r_found_version *version,
    1.56 + 		 void *const reloc_addr_arg)
    1.57 +@@ -517,7 +531,14 @@
    1.58 + }
    1.59 + 
    1.60 + # ifndef RTLD_BOOTSTRAP
    1.61 +-static inline void
    1.62 ++#if __GNUC__ >= 4
    1.63 ++  auto inline void
    1.64 ++#else
    1.65 ++  static inline void
    1.66 ++#endif
    1.67 ++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
    1.68 ++  __attribute ((always_inline))
    1.69 ++#endif
    1.70 + elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
    1.71 + 		  const Elf32_Sym *sym, const struct r_found_version *version,
    1.72 + 		  void *const reloc_addr_arg)
    1.73 +@@ -597,7 +618,14 @@
    1.74 + }
    1.75 + # endif
    1.76 + 
    1.77 +-static inline void
    1.78 ++#if __GNUC__ >= 4
    1.79 ++  auto inline void
    1.80 ++#else
    1.81 ++  static inline void
    1.82 ++#endif
    1.83 ++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
    1.84 ++  __attribute ((always_inline))
    1.85 ++#endif
    1.86 + elf_machine_rel_relative (Elf32_Addr l_addr, const Elf32_Rel *reloc,
    1.87 + 			  void *const reloc_addr_arg)
    1.88 + {
    1.89 +@@ -606,7 +634,14 @@
    1.90 + }
    1.91 + 
    1.92 + # ifndef RTLD_BOOTSTRAP
    1.93 +-static inline void
    1.94 ++#if __GNUC__ >= 4
    1.95 ++  auto inline void
    1.96 ++#else
    1.97 ++  static inline void
    1.98 ++#endif
    1.99 ++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
   1.100 ++  __attribute ((always_inline))
   1.101 ++#endif
   1.102 + elf_machine_rela_relative (Elf32_Addr l_addr, const Elf32_Rela *reloc,
   1.103 + 			   void *const reloc_addr_arg)
   1.104 + {
   1.105 +@@ -615,7 +650,14 @@
   1.106 + }
   1.107 + # endif
   1.108 + 
   1.109 +-static inline void
   1.110 ++#if __GNUC__ >= 4
   1.111 ++  auto inline void
   1.112 ++#else
   1.113 ++  static inline void
   1.114 ++#endif
   1.115 ++#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
   1.116 ++  __attribute ((always_inline))
   1.117 ++#endif
   1.118 + elf_machine_lazy_rel (struct link_map *map,
   1.119 + 		      Elf32_Addr l_addr, const Elf32_Rel *reloc)
   1.120 + {