blob: 4db098a4e566260c92136569a935b479ed732092 [file] [log] [blame]
Edward O'Callaghan37a6a452009-08-07 20:30:09 +00001/* ===-- apple_versioning.c - Adds versioning symbols for ld ---------------===
2 *
3 * The LLVM Compiler Infrastructure
4 *
5 * This file is distributed under the University of Illinois Open Source
6 * License. See LICENSE.TXT for details.
7 *
8 * ===----------------------------------------------------------------------===
9 */
Daniel Dunbarb3a69012009-06-26 16:47:03 +000010
11
12
13#if __APPLE__
14 #if __ppc__
15 #define NOT_HERE_BEFORE_10_6(sym) \
16 extern const char sym##_tmp3 __asm("$ld$hide$os10.3$_" #sym ); \
17 __attribute__((visibility("default"))) const char sym##_tmp3 = 0; \
18 extern const char sym##_tmp4 __asm("$ld$hide$os10.4$_" #sym ); \
19 __attribute__((visibility("default"))) const char sym##_tmp4 = 0; \
20 extern const char sym##_tmp5 __asm("$ld$hide$os10.5$_" #sym ); \
21 __attribute__((visibility("default"))) const char sym##_tmp5 = 0;
22 #else
23 #define NOT_HERE_BEFORE_10_6(sym) \
24 extern const char sym##_tmp4 __asm("$ld$hide$os10.4$_" #sym ); \
25 __attribute__((visibility("default"))) const char sym##_tmp4 = 0; \
26 extern const char sym##_tmp5 __asm("$ld$hide$os10.5$_" #sym ); \
27 __attribute__((visibility("default"))) const char sym##_tmp5 = 0;
28 #endif
29
30
Edward O'Callaghan37a6a452009-08-07 20:30:09 +000031/* Symbols in libSystem.dylib in 10.6 and later,
32 * but are in libgcc_s.dylib in earlier versions
33 */
Daniel Dunbarb3a69012009-06-26 16:47:03 +000034NOT_HERE_BEFORE_10_6(__absvdi2)
35NOT_HERE_BEFORE_10_6(__absvsi2)
36NOT_HERE_BEFORE_10_6(__absvti2)
37NOT_HERE_BEFORE_10_6(__addvdi3)
38NOT_HERE_BEFORE_10_6(__addvsi3)
39NOT_HERE_BEFORE_10_6(__addvti3)
40NOT_HERE_BEFORE_10_6(__ashldi3)
41NOT_HERE_BEFORE_10_6(__ashlti3)
42NOT_HERE_BEFORE_10_6(__ashrdi3)
43NOT_HERE_BEFORE_10_6(__ashrti3)
44NOT_HERE_BEFORE_10_6(__clear_cache)
45NOT_HERE_BEFORE_10_6(__clzdi2)
46NOT_HERE_BEFORE_10_6(__clzsi2)
47NOT_HERE_BEFORE_10_6(__clzti2)
48NOT_HERE_BEFORE_10_6(__cmpdi2)
49NOT_HERE_BEFORE_10_6(__cmpti2)
50NOT_HERE_BEFORE_10_6(__ctzdi2)
51NOT_HERE_BEFORE_10_6(__ctzsi2)
52NOT_HERE_BEFORE_10_6(__ctzti2)
53NOT_HERE_BEFORE_10_6(__divdc3)
54NOT_HERE_BEFORE_10_6(__divdi3)
55NOT_HERE_BEFORE_10_6(__divsc3)
56NOT_HERE_BEFORE_10_6(__divtc3)
57NOT_HERE_BEFORE_10_6(__divti3)
58NOT_HERE_BEFORE_10_6(__divxc3)
59NOT_HERE_BEFORE_10_6(__enable_execute_stack)
60NOT_HERE_BEFORE_10_6(__ffsdi2)
61NOT_HERE_BEFORE_10_6(__ffsti2)
62NOT_HERE_BEFORE_10_6(__fixdfdi)
63NOT_HERE_BEFORE_10_6(__fixdfti)
64NOT_HERE_BEFORE_10_6(__fixsfdi)
65NOT_HERE_BEFORE_10_6(__fixsfti)
66NOT_HERE_BEFORE_10_6(__fixtfdi)
67NOT_HERE_BEFORE_10_6(__fixunsdfdi)
68NOT_HERE_BEFORE_10_6(__fixunsdfsi)
69NOT_HERE_BEFORE_10_6(__fixunsdfti)
70NOT_HERE_BEFORE_10_6(__fixunssfdi)
71NOT_HERE_BEFORE_10_6(__fixunssfsi)
72NOT_HERE_BEFORE_10_6(__fixunssfti)
73NOT_HERE_BEFORE_10_6(__fixunstfdi)
74NOT_HERE_BEFORE_10_6(__fixunsxfdi)
75NOT_HERE_BEFORE_10_6(__fixunsxfsi)
76NOT_HERE_BEFORE_10_6(__fixunsxfti)
77NOT_HERE_BEFORE_10_6(__fixxfdi)
78NOT_HERE_BEFORE_10_6(__fixxfti)
79NOT_HERE_BEFORE_10_6(__floatdidf)
80NOT_HERE_BEFORE_10_6(__floatdisf)
81NOT_HERE_BEFORE_10_6(__floatditf)
82NOT_HERE_BEFORE_10_6(__floatdixf)
83NOT_HERE_BEFORE_10_6(__floattidf)
84NOT_HERE_BEFORE_10_6(__floattisf)
85NOT_HERE_BEFORE_10_6(__floattixf)
86NOT_HERE_BEFORE_10_6(__floatundidf)
87NOT_HERE_BEFORE_10_6(__floatundisf)
88NOT_HERE_BEFORE_10_6(__floatunditf)
89NOT_HERE_BEFORE_10_6(__floatundixf)
90NOT_HERE_BEFORE_10_6(__floatuntidf)
91NOT_HERE_BEFORE_10_6(__floatuntisf)
92NOT_HERE_BEFORE_10_6(__floatuntixf)
93NOT_HERE_BEFORE_10_6(__gcc_personality_v0)
94NOT_HERE_BEFORE_10_6(__lshrdi3)
95NOT_HERE_BEFORE_10_6(__lshrti3)
96NOT_HERE_BEFORE_10_6(__moddi3)
97NOT_HERE_BEFORE_10_6(__modti3)
98NOT_HERE_BEFORE_10_6(__muldc3)
99NOT_HERE_BEFORE_10_6(__muldi3)
100NOT_HERE_BEFORE_10_6(__mulsc3)
101NOT_HERE_BEFORE_10_6(__multc3)
102NOT_HERE_BEFORE_10_6(__multi3)
103NOT_HERE_BEFORE_10_6(__mulvdi3)
104NOT_HERE_BEFORE_10_6(__mulvsi3)
105NOT_HERE_BEFORE_10_6(__mulvti3)
106NOT_HERE_BEFORE_10_6(__mulxc3)
107NOT_HERE_BEFORE_10_6(__negdi2)
108NOT_HERE_BEFORE_10_6(__negti2)
109NOT_HERE_BEFORE_10_6(__negvdi2)
110NOT_HERE_BEFORE_10_6(__negvsi2)
111NOT_HERE_BEFORE_10_6(__negvti2)
112NOT_HERE_BEFORE_10_6(__paritydi2)
113NOT_HERE_BEFORE_10_6(__paritysi2)
114NOT_HERE_BEFORE_10_6(__parityti2)
115NOT_HERE_BEFORE_10_6(__popcountdi2)
116NOT_HERE_BEFORE_10_6(__popcountsi2)
117NOT_HERE_BEFORE_10_6(__popcountti2)
118NOT_HERE_BEFORE_10_6(__powidf2)
119NOT_HERE_BEFORE_10_6(__powisf2)
120NOT_HERE_BEFORE_10_6(__powitf2)
121NOT_HERE_BEFORE_10_6(__powixf2)
122NOT_HERE_BEFORE_10_6(__subvdi3)
123NOT_HERE_BEFORE_10_6(__subvsi3)
124NOT_HERE_BEFORE_10_6(__subvti3)
125NOT_HERE_BEFORE_10_6(__ucmpdi2)
126NOT_HERE_BEFORE_10_6(__ucmpti2)
127NOT_HERE_BEFORE_10_6(__udivdi3)
128NOT_HERE_BEFORE_10_6(__udivmoddi4)
129NOT_HERE_BEFORE_10_6(__udivmodti4)
130NOT_HERE_BEFORE_10_6(__udivti3)
131NOT_HERE_BEFORE_10_6(__umoddi3)
132NOT_HERE_BEFORE_10_6(__umodti3)
133
134
135#if __ppc__
136NOT_HERE_BEFORE_10_6(__gcc_qadd)
137NOT_HERE_BEFORE_10_6(__gcc_qdiv)
138NOT_HERE_BEFORE_10_6(__gcc_qmul)
139NOT_HERE_BEFORE_10_6(__gcc_qsub)
140NOT_HERE_BEFORE_10_6(__trampoline_setup)
141#endif
142
143
Edward O'Callaghan37a6a452009-08-07 20:30:09 +0000144#endif /* __APPLE__*/
Daniel Dunbarb3a69012009-06-26 16:47:03 +0000145