patches/glibc/2.3.4/glibc-2.3.5-allow-gcc4-symbols.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sat Feb 24 11:00:05 2007 +0000 (2007-02-24)
changeset 1 eeea35fbf182
permissions -rw-r--r--
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!".
Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup.
That means I'm putting backups in place in the afternoon.
That also means we've lost history... :-(
     1 If I'm really lucky, this fixes the following error building with gcc-4.0.0:
     2 
     3 ../sysdeps/ieee754/dbl-64/s_isinf.c:29: error: 'isinf' aliased to undefined symbol '__isinf'
     4 make[2]: *** [/home/dank/queue/jobdir.fast/crosstool-0.32/build/i686-unknown-linux-gnu/gcc-4.0.0-20050410-glibc-2.3.4/build-glibc/math/s_isinf.os] Error 1
     5 make[1]: *** [math/subdir_lib] Error 2
     6 make: *** [lib] Error 2
     7 
     8 ---
     9 
    10 
    11 Revision 1.71, Thu Mar 17 21:06:27 2005 UTC (3 weeks, 5 days ago) by roland
    12 Branch: MAIN
    13 CVS Tags: fedora-glibc-20050405T2114, fedora-glibc-20050401T1444, fedora-glibc-20050324T0715, fedora-glibc-20050319T1907, HEAD
    14 Changes since 1.70: +11 -66 lines
    15 Diff to previous 1.70 (colored)
    16 
    17 2005-03-16  Richard Henderson  <rth@redhat.com>
    18 
    19 	* include/libc-symbols.h (__hidden_proto): Remove bogus declaration
    20 	of internal.
    21 	(__hidden_def1, __hidden_dot_def1): Remove.
    22 	(__hidden_def2, __hidden_def3): Remove.
    23 	(__hidden_ver1): New.
    24 	(hidden_ver, hidden_def, hidden_weak): Use it.
    25 	(hidden_data_ver, hidden_data_ver, hidden_data_weak): Use non-data
    26 	version of the macro.
    27 
    28 http://sourceware.org/cgi-bin/cvsweb.cgi/libc/include/libc-symbols.h.diff?r1=1.70&r2=1.71&cvsroot=glibc
    29 
    30 ===================================================================
    31 RCS file: /cvs/glibc/libc/include/libc-symbols.h,v
    32 retrieving revision 1.70
    33 retrieving revision 1.71
    34 diff -u -r1.70 -r1.71
    35 --- libc/include/libc-symbols.h	2005/02/11 00:29:46	1.70
    36 +++ libc/include/libc-symbols.h	2005/03/17 21:06:27	1.71
    37 @@ -583,78 +583,23 @@
    38  #  define hidden_proto(name, attrs...) \
    39    __hidden_proto (name, __GI_##name, ##attrs)
    40  #  define __hidden_proto(name, internal, attrs...) \
    41 -  extern __typeof (name) internal; \
    42    extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
    43    __hidden_proto_hiddenattr (attrs);
    44  #  define __hidden_asmname(name) \
    45    __hidden_asmname1 (__USER_LABEL_PREFIX__, name)
    46  #  define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
    47  #  define __hidden_asmname2(prefix, name) #prefix name
    48 -#  ifdef HAVE_ASM_SET_DIRECTIVE
    49 -#   define __hidden_def1(original, alias)			\
    50 -  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
    51 -  .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
    52 -#   ifdef HAVE_ASM_GLOBAL_DOT_NAME
    53 -#     define __hidden_dot_def1(original, alias)	 ASM_LINE_SEP	\
    54 -  ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
    55 -  .set C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
    56 -#   else
    57 -#     define __hidden_dot_def1(original, alias)
    58 -#   endif
    59 -#  else
    60 -#   define __hidden_def1(original, alias)			\
    61 -  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
    62 -  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
    63 -#   ifdef HAVE_ASM_GLOBAL_DOT_NAME
    64 -#    define __hidden_dot_def1(original, alias)	ASM_LINE_SEP	\
    65 -  ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
    66 -  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
    67 -#   else
    68 -#    define __hidden_dot_def1(original, alias)
    69 -#   endif
    70 -#  endif
    71 -#  define __hidden_def2(...) #__VA_ARGS__
    72 -#  define __hidden_def3(...) __hidden_def2 (__VA_ARGS__)
    73 -#  define hidden_def(name)					\
    74 -  __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name) \
    75 -  __hidden_dot_def1 (__GI_##name, name)));
    76 -#  define hidden_data_def(name)					\
    77 -  __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name)));
    78 -#  define hidden_ver(local, name)				\
    79 -  __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name) \
    80 -  __hidden_dot_def1 (local, __GI_##name)));
    81 -#  define hidden_data_ver(local, name)				\
    82 -  __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name)));
    83 -#  ifdef HAVE_WEAK_SYMBOLS
    84 -#   ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
    85 -#    define __hidden_weak1(original, alias)			\
    86 -  .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
    87 -#    ifdef HAVE_ASM_GLOBAL_DOT_NAME
    88 -#     define __hidden_dot_weak1(original, alias)	ASM_LINE_SEP	\
    89 -  .weakext C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
    90 -#    else
    91 -#     define __hidden_dot_weak1(original, alias)
    92 -#    endif
    93 -#   else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
    94 -#    define __hidden_weak1(original, alias)			\
    95 -  .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP			\
    96 -  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
    97 -#    ifdef HAVE_ASM_GLOBAL_DOT_NAME
    98 -#     define __hidden_dot_weak1(original, alias)	ASM_LINE_SEP	\
    99 -  .weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
   100 -  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
   101 -#    else
   102 -#     define __hidden_dot_weak1(original, alias)
   103 -#    endif
   104 -#   endif
   105 -#   define hidden_weak(name)					\
   106 -  __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name) \
   107 -  __hidden_dot_weak1 (__GI_##name, name)));
   108 -#   define hidden_data_weak(name)					\
   109 -  __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name)));
   110 -#  else
   111 -#   define hidden_weak(name) hidden_def (name)
   112 -#  endif
   113 +#  define __hidden_ver1(local, internal, name) \
   114 +  extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \
   115 +  extern __typeof (name) __EI_##name \
   116 +	__attribute__((alias (__hidden_asmname (#local))))
   117 +#  define hidden_ver(local, name)	__hidden_ver1(local, __GI_##name, name);
   118 +#  define hidden_data_ver(local, name)	hidden_ver(local, name)
   119 +#  define hidden_def(name)		__hidden_ver1(__GI_##name, name, name);
   120 +#  define hidden_data_def(name)		hidden_def(name)
   121 +#  define hidden_weak(name) \
   122 +	__hidden_ver1(__GI_##name, name, name) __attribute__((weak));
   123 +#  define hidden_data_weak(name)	hidden_weak(name)
   124  # else
   125  /* For assembly, we need to do the opposite of what we do in C:
   126     in assembly gcc __REDIRECT stuff is not in place, so functions