patches/glibc/2.3.4/glibc-2.3.5-allow-gcc4-symbols.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.5-allow-gcc4-symbols.patch	Sat Feb 24 11:00:05 2007 +0000
     1.3 @@ -0,0 +1,126 @@
     1.4 +If I'm really lucky, this fixes the following error building with gcc-4.0.0:
     1.5 +
     1.6 +../sysdeps/ieee754/dbl-64/s_isinf.c:29: error: 'isinf' aliased to undefined symbol '__isinf'
     1.7 +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
     1.8 +make[1]: *** [math/subdir_lib] Error 2
     1.9 +make: *** [lib] Error 2
    1.10 +
    1.11 +---
    1.12 +
    1.13 +
    1.14 +Revision 1.71, Thu Mar 17 21:06:27 2005 UTC (3 weeks, 5 days ago) by roland
    1.15 +Branch: MAIN
    1.16 +CVS Tags: fedora-glibc-20050405T2114, fedora-glibc-20050401T1444, fedora-glibc-20050324T0715, fedora-glibc-20050319T1907, HEAD
    1.17 +Changes since 1.70: +11 -66 lines
    1.18 +Diff to previous 1.70 (colored)
    1.19 +
    1.20 +2005-03-16  Richard Henderson  <rth@redhat.com>
    1.21 +
    1.22 +	* include/libc-symbols.h (__hidden_proto): Remove bogus declaration
    1.23 +	of internal.
    1.24 +	(__hidden_def1, __hidden_dot_def1): Remove.
    1.25 +	(__hidden_def2, __hidden_def3): Remove.
    1.26 +	(__hidden_ver1): New.
    1.27 +	(hidden_ver, hidden_def, hidden_weak): Use it.
    1.28 +	(hidden_data_ver, hidden_data_ver, hidden_data_weak): Use non-data
    1.29 +	version of the macro.
    1.30 +
    1.31 +http://sourceware.org/cgi-bin/cvsweb.cgi/libc/include/libc-symbols.h.diff?r1=1.70&r2=1.71&cvsroot=glibc
    1.32 +
    1.33 +===================================================================
    1.34 +RCS file: /cvs/glibc/libc/include/libc-symbols.h,v
    1.35 +retrieving revision 1.70
    1.36 +retrieving revision 1.71
    1.37 +diff -u -r1.70 -r1.71
    1.38 +--- libc/include/libc-symbols.h	2005/02/11 00:29:46	1.70
    1.39 ++++ libc/include/libc-symbols.h	2005/03/17 21:06:27	1.71
    1.40 +@@ -583,78 +583,23 @@
    1.41 + #  define hidden_proto(name, attrs...) \
    1.42 +   __hidden_proto (name, __GI_##name, ##attrs)
    1.43 + #  define __hidden_proto(name, internal, attrs...) \
    1.44 +-  extern __typeof (name) internal; \
    1.45 +   extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
    1.46 +   __hidden_proto_hiddenattr (attrs);
    1.47 + #  define __hidden_asmname(name) \
    1.48 +   __hidden_asmname1 (__USER_LABEL_PREFIX__, name)
    1.49 + #  define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
    1.50 + #  define __hidden_asmname2(prefix, name) #prefix name
    1.51 +-#  ifdef HAVE_ASM_SET_DIRECTIVE
    1.52 +-#   define __hidden_def1(original, alias)			\
    1.53 +-  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
    1.54 +-  .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
    1.55 +-#   ifdef HAVE_ASM_GLOBAL_DOT_NAME
    1.56 +-#     define __hidden_dot_def1(original, alias)	 ASM_LINE_SEP	\
    1.57 +-  ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
    1.58 +-  .set C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
    1.59 +-#   else
    1.60 +-#     define __hidden_dot_def1(original, alias)
    1.61 +-#   endif
    1.62 +-#  else
    1.63 +-#   define __hidden_def1(original, alias)			\
    1.64 +-  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
    1.65 +-  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
    1.66 +-#   ifdef HAVE_ASM_GLOBAL_DOT_NAME
    1.67 +-#    define __hidden_dot_def1(original, alias)	ASM_LINE_SEP	\
    1.68 +-  ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
    1.69 +-  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
    1.70 +-#   else
    1.71 +-#    define __hidden_dot_def1(original, alias)
    1.72 +-#   endif
    1.73 +-#  endif
    1.74 +-#  define __hidden_def2(...) #__VA_ARGS__
    1.75 +-#  define __hidden_def3(...) __hidden_def2 (__VA_ARGS__)
    1.76 +-#  define hidden_def(name)					\
    1.77 +-  __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name) \
    1.78 +-  __hidden_dot_def1 (__GI_##name, name)));
    1.79 +-#  define hidden_data_def(name)					\
    1.80 +-  __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name)));
    1.81 +-#  define hidden_ver(local, name)				\
    1.82 +-  __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name) \
    1.83 +-  __hidden_dot_def1 (local, __GI_##name)));
    1.84 +-#  define hidden_data_ver(local, name)				\
    1.85 +-  __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name)));
    1.86 +-#  ifdef HAVE_WEAK_SYMBOLS
    1.87 +-#   ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
    1.88 +-#    define __hidden_weak1(original, alias)			\
    1.89 +-  .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
    1.90 +-#    ifdef HAVE_ASM_GLOBAL_DOT_NAME
    1.91 +-#     define __hidden_dot_weak1(original, alias)	ASM_LINE_SEP	\
    1.92 +-  .weakext C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
    1.93 +-#    else
    1.94 +-#     define __hidden_dot_weak1(original, alias)
    1.95 +-#    endif
    1.96 +-#   else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
    1.97 +-#    define __hidden_weak1(original, alias)			\
    1.98 +-  .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP			\
    1.99 +-  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
   1.100 +-#    ifdef HAVE_ASM_GLOBAL_DOT_NAME
   1.101 +-#     define __hidden_dot_weak1(original, alias)	ASM_LINE_SEP	\
   1.102 +-  .weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
   1.103 +-  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
   1.104 +-#    else
   1.105 +-#     define __hidden_dot_weak1(original, alias)
   1.106 +-#    endif
   1.107 +-#   endif
   1.108 +-#   define hidden_weak(name)					\
   1.109 +-  __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name) \
   1.110 +-  __hidden_dot_weak1 (__GI_##name, name)));
   1.111 +-#   define hidden_data_weak(name)					\
   1.112 +-  __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name)));
   1.113 +-#  else
   1.114 +-#   define hidden_weak(name) hidden_def (name)
   1.115 +-#  endif
   1.116 ++#  define __hidden_ver1(local, internal, name) \
   1.117 ++  extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \
   1.118 ++  extern __typeof (name) __EI_##name \
   1.119 ++	__attribute__((alias (__hidden_asmname (#local))))
   1.120 ++#  define hidden_ver(local, name)	__hidden_ver1(local, __GI_##name, name);
   1.121 ++#  define hidden_data_ver(local, name)	hidden_ver(local, name)
   1.122 ++#  define hidden_def(name)		__hidden_ver1(__GI_##name, name, name);
   1.123 ++#  define hidden_data_def(name)		hidden_def(name)
   1.124 ++#  define hidden_weak(name) \
   1.125 ++	__hidden_ver1(__GI_##name, name, name) __attribute__((weak));
   1.126 ++#  define hidden_data_weak(name)	hidden_weak(name)
   1.127 + # else
   1.128 + /* For assembly, we need to do the opposite of what we do in C:
   1.129 +    in assembly gcc __REDIRECT stuff is not in place, so functions