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
|