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... :-(
yann@1
     1
If I'm really lucky, this fixes the following error building with gcc-4.0.0:
yann@1
     2
yann@1
     3
../sysdeps/ieee754/dbl-64/s_isinf.c:29: error: 'isinf' aliased to undefined symbol '__isinf'
yann@1
     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
yann@1
     5
make[1]: *** [math/subdir_lib] Error 2
yann@1
     6
make: *** [lib] Error 2
yann@1
     7
yann@1
     8
---
yann@1
     9
yann@1
    10
yann@1
    11
Revision 1.71, Thu Mar 17 21:06:27 2005 UTC (3 weeks, 5 days ago) by roland
yann@1
    12
Branch: MAIN
yann@1
    13
CVS Tags: fedora-glibc-20050405T2114, fedora-glibc-20050401T1444, fedora-glibc-20050324T0715, fedora-glibc-20050319T1907, HEAD
yann@1
    14
Changes since 1.70: +11 -66 lines
yann@1
    15
Diff to previous 1.70 (colored)
yann@1
    16
yann@1
    17
2005-03-16  Richard Henderson  <rth@redhat.com>
yann@1
    18
yann@1
    19
	* include/libc-symbols.h (__hidden_proto): Remove bogus declaration
yann@1
    20
	of internal.
yann@1
    21
	(__hidden_def1, __hidden_dot_def1): Remove.
yann@1
    22
	(__hidden_def2, __hidden_def3): Remove.
yann@1
    23
	(__hidden_ver1): New.
yann@1
    24
	(hidden_ver, hidden_def, hidden_weak): Use it.
yann@1
    25
	(hidden_data_ver, hidden_data_ver, hidden_data_weak): Use non-data
yann@1
    26
	version of the macro.
yann@1
    27
yann@1
    28
http://sourceware.org/cgi-bin/cvsweb.cgi/libc/include/libc-symbols.h.diff?r1=1.70&r2=1.71&cvsroot=glibc
yann@1
    29
yann@1
    30
===================================================================
yann@1
    31
RCS file: /cvs/glibc/libc/include/libc-symbols.h,v
yann@1
    32
retrieving revision 1.70
yann@1
    33
retrieving revision 1.71
yann@1
    34
diff -u -r1.70 -r1.71
yann@1
    35
--- libc/include/libc-symbols.h	2005/02/11 00:29:46	1.70
yann@1
    36
+++ libc/include/libc-symbols.h	2005/03/17 21:06:27	1.71
yann@1
    37
@@ -583,78 +583,23 @@
yann@1
    38
 #  define hidden_proto(name, attrs...) \
yann@1
    39
   __hidden_proto (name, __GI_##name, ##attrs)
yann@1
    40
 #  define __hidden_proto(name, internal, attrs...) \
yann@1
    41
-  extern __typeof (name) internal; \
yann@1
    42
   extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
yann@1
    43
   __hidden_proto_hiddenattr (attrs);
yann@1
    44
 #  define __hidden_asmname(name) \
yann@1
    45
   __hidden_asmname1 (__USER_LABEL_PREFIX__, name)
yann@1
    46
 #  define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
yann@1
    47
 #  define __hidden_asmname2(prefix, name) #prefix name
yann@1
    48
-#  ifdef HAVE_ASM_SET_DIRECTIVE
yann@1
    49
-#   define __hidden_def1(original, alias)			\
yann@1
    50
-  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
yann@1
    51
-  .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
yann@1
    52
-#   ifdef HAVE_ASM_GLOBAL_DOT_NAME
yann@1
    53
-#     define __hidden_dot_def1(original, alias)	 ASM_LINE_SEP	\
yann@1
    54
-  ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
yann@1
    55
-  .set C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
yann@1
    56
-#   else
yann@1
    57
-#     define __hidden_dot_def1(original, alias)
yann@1
    58
-#   endif
yann@1
    59
-#  else
yann@1
    60
-#   define __hidden_def1(original, alias)			\
yann@1
    61
-  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP	\
yann@1
    62
-  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
yann@1
    63
-#   ifdef HAVE_ASM_GLOBAL_DOT_NAME
yann@1
    64
-#    define __hidden_dot_def1(original, alias)	ASM_LINE_SEP	\
yann@1
    65
-  ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
yann@1
    66
-  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
yann@1
    67
-#   else
yann@1
    68
-#    define __hidden_dot_def1(original, alias)
yann@1
    69
-#   endif
yann@1
    70
-#  endif
yann@1
    71
-#  define __hidden_def2(...) #__VA_ARGS__
yann@1
    72
-#  define __hidden_def3(...) __hidden_def2 (__VA_ARGS__)
yann@1
    73
-#  define hidden_def(name)					\
yann@1
    74
-  __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name) \
yann@1
    75
-  __hidden_dot_def1 (__GI_##name, name)));
yann@1
    76
-#  define hidden_data_def(name)					\
yann@1
    77
-  __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name)));
yann@1
    78
-#  define hidden_ver(local, name)				\
yann@1
    79
-  __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name) \
yann@1
    80
-  __hidden_dot_def1 (local, __GI_##name)));
yann@1
    81
-#  define hidden_data_ver(local, name)				\
yann@1
    82
-  __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name)));
yann@1
    83
-#  ifdef HAVE_WEAK_SYMBOLS
yann@1
    84
-#   ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
yann@1
    85
-#    define __hidden_weak1(original, alias)			\
yann@1
    86
-  .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
yann@1
    87
-#    ifdef HAVE_ASM_GLOBAL_DOT_NAME
yann@1
    88
-#     define __hidden_dot_weak1(original, alias)	ASM_LINE_SEP	\
yann@1
    89
-  .weakext C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
yann@1
    90
-#    else
yann@1
    91
-#     define __hidden_dot_weak1(original, alias)
yann@1
    92
-#    endif
yann@1
    93
-#   else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
yann@1
    94
-#    define __hidden_weak1(original, alias)			\
yann@1
    95
-  .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP			\
yann@1
    96
-  C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
yann@1
    97
-#    ifdef HAVE_ASM_GLOBAL_DOT_NAME
yann@1
    98
-#     define __hidden_dot_weak1(original, alias)	ASM_LINE_SEP	\
yann@1
    99
-  .weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP	\
yann@1
   100
-  C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
yann@1
   101
-#    else
yann@1
   102
-#     define __hidden_dot_weak1(original, alias)
yann@1
   103
-#    endif
yann@1
   104
-#   endif
yann@1
   105
-#   define hidden_weak(name)					\
yann@1
   106
-  __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name) \
yann@1
   107
-  __hidden_dot_weak1 (__GI_##name, name)));
yann@1
   108
-#   define hidden_data_weak(name)					\
yann@1
   109
-  __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name)));
yann@1
   110
-#  else
yann@1
   111
-#   define hidden_weak(name) hidden_def (name)
yann@1
   112
-#  endif
yann@1
   113
+#  define __hidden_ver1(local, internal, name) \
yann@1
   114
+  extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \
yann@1
   115
+  extern __typeof (name) __EI_##name \
yann@1
   116
+	__attribute__((alias (__hidden_asmname (#local))))
yann@1
   117
+#  define hidden_ver(local, name)	__hidden_ver1(local, __GI_##name, name);
yann@1
   118
+#  define hidden_data_ver(local, name)	hidden_ver(local, name)
yann@1
   119
+#  define hidden_def(name)		__hidden_ver1(__GI_##name, name, name);
yann@1
   120
+#  define hidden_data_def(name)		hidden_def(name)
yann@1
   121
+#  define hidden_weak(name) \
yann@1
   122
+	__hidden_ver1(__GI_##name, name, name) __attribute__((weak));
yann@1
   123
+#  define hidden_data_weak(name)	hidden_weak(name)
yann@1
   124
 # else
yann@1
   125
 /* For assembly, we need to do the opposite of what we do in C:
yann@1
   126
    in assembly gcc __REDIRECT stuff is not in place, so functions