Annotation of /trunk/glibc/patches/glibc-2.3.5-gcc4_fix_symbols-1.patch
Parent Directory | Revision Log
Revision 144 -
(hide annotations)
(download)
Tue May 8 20:06:05 2007 UTC (17 years, 4 months ago) by niro
File size: 4803 byte(s)
Tue May 8 20:06:05 2007 UTC (17 years, 4 months ago) by niro
File size: 4803 byte(s)
-import
1 | niro | 144 | 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 |