patches/glibc/2.3.6/170-glibc-2.3.6-allow-gcc-4.0-arm.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Feb 17 22:08:06 2008 +0000 (2008-02-17)
changeset 431 8bde4c6ea47a
permissions -rw-r--r--
Robert P. J. DAY says:

apparently, the patchset for gcc 4.2.1 applies properly to the
source for gcc 4.2.2 and gcc 4.2.3. so, if you want, you can simply
add support for those last two just by augmenting menuconfig and
adding a couple symlinks for those two directories. seems like a
cheap way to add a couple new versions.
     1 Fixes
     2 In file included from dynamic-link.h:22,
     3                  from dl-reloc.c:265:
     4 ../sysdeps/arm/dl-machine.h: In function '_dl_relocate_object':
     5 ../sysdeps/arm/dl-machine.h:371: error: invalid storage class for function 'fix_bad_pc24'
     6 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'
     7 
     8 when building glibc-2.3.6 with gcc-4.0
     9 
    10 Like
    11 http://sources.redhat.com/cgi-bin/cvsweb.cgi/libc/sysdeps/arm/dl-machine.h.diff?r1=1.51&r2=1.52&cvsroot=glibc
    12 but fixes fix_bad_pc24.
    13 
    14 
    15 --- glibc-2.3.6-orig/sysdeps/arm/dl-machine.h	Sun Mar 20 17:54:37 2005
    16 +++ glibc-2.3.6/sysdeps/arm/dl-machine.h	Sun Mar 20 17:57:32 2005
    17 @@ -357,7 +357,14 @@
    18  #ifdef RESOLVE
    19  
    20  /* Deal with an out-of-range PC24 reloc.  */
    21 -static Elf32_Addr
    22 +#if __GNUC__ >= 4
    23 +  auto inline Elf32_Addr
    24 +#else
    25 +  static inline Elf32_Addr
    26 +#endif
    27 +#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)
    28 +  __attribute ((always_inline))
    29 +#endif
    30  fix_bad_pc24 (Elf32_Addr *const reloc_addr, Elf32_Addr value)
    31  {
    32    static void *fix_page;
    33 
    34 Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>
    35 with a little editing by dank@kegel.com