Magellan Linux

Contents of /trunk/glibc/patches/glibc-2.3.5-gcc4_fix_symbols-1.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 144 - (show annotations) (download)
Tue May 8 20:06:05 2007 UTC (17 years ago) by niro
File size: 4803 byte(s)
-import

1 Submitted By: Matthew Burgess <matthew@linuxfromscratch.org>
2 Date: 2005-07-15
3 Initial Package Version: 2.3.5
4 Upstream Status: From Upstream (libc/include/libc-symbols.h -r1.71)
5 Origin: Ryan Oliver, courtesy of Dan Kegel's crosstool
6 (http://kegel.com/crosstool/)
7 Description: Fixes a compilation problem with gcc-4.0.x that results in:
8 ../sysdeps/ieee754/dbl-64/s_isinf.c:29: error: 'isinf' aliased to
9 undefined symbol '__isinf'
10
11 diff -Naur glibc-2.3.5.orig/include/libc-symbols.h glibc-2.3.5/include/libc-symbols.h
12 --- glibc-2.3.5.orig/include/libc-symbols.h 2004-10-24 21:17:08.000000000 +0000
13 +++ glibc-2.3.5/include/libc-symbols.h 2005-07-15 17:31:10.854233888 +0000
14 @@ -582,78 +582,23 @@
15 # define hidden_proto(name, attrs...) \
16 __hidden_proto (name, __GI_##name, ##attrs)
17 # define __hidden_proto(name, internal, attrs...) \
18 - extern __typeof (name) internal; \
19 extern __typeof (name) name __asm__ (__hidden_asmname (#internal)) \
20 __hidden_proto_hiddenattr (attrs);
21 # define __hidden_asmname(name) \
22 __hidden_asmname1 (__USER_LABEL_PREFIX__, name)
23 # define __hidden_asmname1(prefix, name) __hidden_asmname2(prefix, name)
24 # define __hidden_asmname2(prefix, name) #prefix name
25 -# ifdef HAVE_ASM_SET_DIRECTIVE
26 -# define __hidden_def1(original, alias) \
27 - ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
28 - .set C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
29 -# ifdef HAVE_ASM_GLOBAL_DOT_NAME
30 -# define __hidden_dot_def1(original, alias) ASM_LINE_SEP \
31 - ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
32 - .set C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
33 -# else
34 -# define __hidden_dot_def1(original, alias)
35 -# endif
36 -# else
37 -# define __hidden_def1(original, alias) \
38 - ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (alias) ASM_LINE_SEP \
39 - C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
40 -# ifdef HAVE_ASM_GLOBAL_DOT_NAME
41 -# define __hidden_dot_def1(original, alias) ASM_LINE_SEP \
42 - ASM_GLOBAL_DIRECTIVE C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
43 - C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
44 -# else
45 -# define __hidden_dot_def1(original, alias)
46 -# endif
47 -# endif
48 -# define __hidden_def2(...) #__VA_ARGS__
49 -# define __hidden_def3(...) __hidden_def2 (__VA_ARGS__)
50 -# define hidden_def(name) \
51 - __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name) \
52 - __hidden_dot_def1 (__GI_##name, name)));
53 -# define hidden_data_def(name) \
54 - __asm__ (__hidden_def3 (__hidden_def1 (__GI_##name, name)));
55 -# define hidden_ver(local, name) \
56 - __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name) \
57 - __hidden_dot_def1 (local, __GI_##name)));
58 -# define hidden_data_ver(local, name) \
59 - __asm__ (__hidden_def3 (__hidden_def1 (local, __GI_##name)));
60 -# ifdef HAVE_WEAK_SYMBOLS
61 -# ifdef HAVE_ASM_WEAKEXT_DIRECTIVE
62 -# define __hidden_weak1(original, alias) \
63 - .weakext C_SYMBOL_NAME (alias), C_SYMBOL_NAME (original)
64 -# ifdef HAVE_ASM_GLOBAL_DOT_NAME
65 -# define __hidden_dot_weak1(original, alias) ASM_LINE_SEP \
66 - .weakext C_SYMBOL_DOT_NAME (alias), C_SYMBOL_DOT_NAME (original)
67 -# else
68 -# define __hidden_dot_weak1(original, alias)
69 -# endif
70 -# else /* ! HAVE_ASM_WEAKEXT_DIRECTIVE */
71 -# define __hidden_weak1(original, alias) \
72 - .weak C_SYMBOL_NAME (alias) ASM_LINE_SEP \
73 - C_SYMBOL_NAME (alias) = C_SYMBOL_NAME (original)
74 -# ifdef HAVE_ASM_GLOBAL_DOT_NAME
75 -# define __hidden_dot_weak1(original, alias) ASM_LINE_SEP \
76 - .weak C_SYMBOL_DOT_NAME (alias) ASM_LINE_SEP \
77 - C_SYMBOL_DOT_NAME (alias) = C_SYMBOL_DOT_NAME (original)
78 -# else
79 -# define __hidden_dot_weak1(original, alias)
80 -# endif
81 -# endif
82 -# define hidden_weak(name) \
83 - __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name) \
84 - __hidden_dot_weak1 (__GI_##name, name)));
85 -# define hidden_data_weak(name) \
86 - __asm__ (__hidden_def3 (__hidden_weak1 (__GI_##name, name)));
87 -# else
88 -# define hidden_weak(name) hidden_def (name)
89 -# endif
90 +# define __hidden_ver1(local, internal, name) \
91 + extern __typeof (name) __EI_##name __asm__(__hidden_asmname (#internal)); \
92 + extern __typeof (name) __EI_##name \
93 + __attribute__((alias (__hidden_asmname (#local))))
94 +# define hidden_ver(local, name) __hidden_ver1(local, __GI_##name, name);
95 +# define hidden_data_ver(local, name) hidden_ver(local, name)
96 +# define hidden_def(name) __hidden_ver1(__GI_##name, name, name);
97 +# define hidden_data_def(name) hidden_def(name)
98 +# define hidden_weak(name) \
99 + __hidden_ver1(__GI_##name, name, name) __attribute__((weak));
100 +# define hidden_data_weak(name) hidden_weak(name)
101 # else
102 /* For assembly, we need to do the opposite of what we do in C:
103 in assembly gcc __REDIRECT stuff is not in place, so functions