xref: /freebsd/contrib/llvm-project/compiler-rt/lib/builtins/apple_versioning.c (revision 0b57cec536236d46e3dba9bd041533462f33dbb7)
1*0b57cec5SDimitry Andric //===-- apple_versioning.c - Adds versioning symbols for ld ---------------===//
2*0b57cec5SDimitry Andric //
3*0b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*0b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*0b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*0b57cec5SDimitry Andric //
7*0b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
8*0b57cec5SDimitry Andric 
9*0b57cec5SDimitry Andric #if __APPLE__
10*0b57cec5SDimitry Andric #include <Availability.h>
11*0b57cec5SDimitry Andric 
12*0b57cec5SDimitry Andric #if __IPHONE_OS_VERSION_MIN_REQUIRED
13*0b57cec5SDimitry Andric #define NOT_HERE_BEFORE_10_6(sym)
14*0b57cec5SDimitry Andric #define NOT_HERE_IN_10_8_AND_EARLIER(sym)                                      \
15*0b57cec5SDimitry Andric   extern const char sym##_tmp61 __asm("$ld$hide$os6.1$_" #sym);                \
16*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp61 = 0;           \
17*0b57cec5SDimitry Andric   extern const char sym##_tmp60 __asm("$ld$hide$os6.0$_" #sym);                \
18*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp60 = 0;           \
19*0b57cec5SDimitry Andric   extern const char sym##_tmp51 __asm("$ld$hide$os5.1$_" #sym);                \
20*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp51 = 0;           \
21*0b57cec5SDimitry Andric   extern const char sym##_tmp50 __asm("$ld$hide$os5.0$_" #sym);                \
22*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp50 = 0;
23*0b57cec5SDimitry Andric #else
24*0b57cec5SDimitry Andric #define NOT_HERE_BEFORE_10_6(sym)                                              \
25*0b57cec5SDimitry Andric   extern const char sym##_tmp4 __asm("$ld$hide$os10.4$_" #sym);                \
26*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp4 = 0;            \
27*0b57cec5SDimitry Andric   extern const char sym##_tmp5 __asm("$ld$hide$os10.5$_" #sym);                \
28*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp5 = 0;
29*0b57cec5SDimitry Andric #define NOT_HERE_IN_10_8_AND_EARLIER(sym)                                      \
30*0b57cec5SDimitry Andric   extern const char sym##_tmp8 __asm("$ld$hide$os10.8$_" #sym);                \
31*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp8 = 0;            \
32*0b57cec5SDimitry Andric   extern const char sym##_tmp7 __asm("$ld$hide$os10.7$_" #sym);                \
33*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp7 = 0;            \
34*0b57cec5SDimitry Andric   extern const char sym##_tmp6 __asm("$ld$hide$os10.6$_" #sym);                \
35*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp6 = 0;
36*0b57cec5SDimitry Andric #endif
37*0b57cec5SDimitry Andric 
38*0b57cec5SDimitry Andric // Symbols in libSystem.dylib in 10.6 and later,
39*0b57cec5SDimitry Andric //  but are in libgcc_s.dylib in earlier versions
40*0b57cec5SDimitry Andric 
41*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__absvdi2)
42*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__absvsi2)
43*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__absvti2)
44*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__addvdi3)
45*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__addvsi3)
46*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__addvti3)
47*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ashldi3)
48*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ashlti3)
49*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ashrdi3)
50*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ashrti3)
51*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__clear_cache)
52*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__clzdi2)
53*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__clzsi2)
54*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__clzti2)
55*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__cmpdi2)
56*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__cmpti2)
57*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ctzdi2)
58*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ctzsi2)
59*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ctzti2)
60*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__divdc3)
61*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__divdi3)
62*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__divsc3)
63*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__divtc3)
64*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__divti3)
65*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__divxc3)
66*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__enable_execute_stack)
67*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ffsdi2)
68*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ffsti2)
69*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixdfdi)
70*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixdfti)
71*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixsfdi)
72*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixsfti)
73*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixtfdi)
74*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunsdfdi)
75*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunsdfsi)
76*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunsdfti)
77*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunssfdi)
78*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunssfsi)
79*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunssfti)
80*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunstfdi)
81*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunsxfdi)
82*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunsxfsi)
83*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunsxfti)
84*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixxfdi)
85*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixxfti)
86*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatdidf)
87*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatdisf)
88*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatditf)
89*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatdixf)
90*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floattidf)
91*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floattisf)
92*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floattixf)
93*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatundidf)
94*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatundisf)
95*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatunditf)
96*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatundixf)
97*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatuntidf)
98*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatuntisf)
99*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatuntixf)
100*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__gcc_personality_v0)
101*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__lshrdi3)
102*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__lshrti3)
103*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__moddi3)
104*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__modti3)
105*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__muldc3)
106*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__muldi3)
107*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__mulsc3)
108*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__multc3)
109*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__multi3)
110*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__mulvdi3)
111*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__mulvsi3)
112*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__mulvti3)
113*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__mulxc3)
114*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__negdi2)
115*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__negti2)
116*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__negvdi2)
117*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__negvsi2)
118*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__negvti2)
119*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__paritydi2)
120*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__paritysi2)
121*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__parityti2)
122*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__popcountdi2)
123*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__popcountsi2)
124*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__popcountti2)
125*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__powidf2)
126*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__powisf2)
127*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__powitf2)
128*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__powixf2)
129*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__subvdi3)
130*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__subvsi3)
131*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__subvti3)
132*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ucmpdi2)
133*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ucmpti2)
134*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__udivdi3)
135*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__udivmoddi4)
136*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__udivmodti4)
137*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__udivti3)
138*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__umoddi3)
139*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__umodti3)
140*0b57cec5SDimitry Andric 
141*0b57cec5SDimitry Andric #if __ppc__
142*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__gcc_qadd)
143*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__gcc_qdiv)
144*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__gcc_qmul)
145*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__gcc_qsub)
146*0b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__trampoline_setup)
147*0b57cec5SDimitry Andric #endif // __ppc__
148*0b57cec5SDimitry Andric 
149*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange)
150*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange_1)
151*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange_2)
152*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange_4)
153*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange_8)
154*0b57cec5SDimitry Andric 
155*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange)
156*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange_1)
157*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange_2)
158*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange_4)
159*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange_8)
160*0b57cec5SDimitry Andric 
161*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_add_1)
162*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_add_2)
163*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_add_4)
164*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_add_8)
165*0b57cec5SDimitry Andric 
166*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_and_1)
167*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_and_2)
168*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_and_4)
169*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_and_8)
170*0b57cec5SDimitry Andric 
171*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_or_1)
172*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_or_2)
173*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_or_4)
174*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_or_8)
175*0b57cec5SDimitry Andric 
176*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_sub_1)
177*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_sub_2)
178*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_sub_4)
179*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_sub_8)
180*0b57cec5SDimitry Andric 
181*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_xor_1)
182*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_xor_2)
183*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_xor_4)
184*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_xor_8)
185*0b57cec5SDimitry Andric 
186*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load)
187*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load_1)
188*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load_2)
189*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load_4)
190*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load_8)
191*0b57cec5SDimitry Andric 
192*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store)
193*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store_1)
194*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store_2)
195*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store_4)
196*0b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store_8)
197*0b57cec5SDimitry Andric 
198*0b57cec5SDimitry Andric #if __arm__ && __DYNAMIC__
199*0b57cec5SDimitry Andric #define NOT_HERE_UNTIL_AFTER_4_3(sym)                                          \
200*0b57cec5SDimitry Andric   extern const char sym##_tmp1 __asm("$ld$hide$os3.0$_" #sym);                 \
201*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp1 = 0;            \
202*0b57cec5SDimitry Andric   extern const char sym##_tmp2 __asm("$ld$hide$os3.1$_" #sym);                 \
203*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp2 = 0;            \
204*0b57cec5SDimitry Andric   extern const char sym##_tmp3 __asm("$ld$hide$os3.2$_" #sym);                 \
205*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp3 = 0;            \
206*0b57cec5SDimitry Andric   extern const char sym##_tmp4 __asm("$ld$hide$os4.0$_" #sym);                 \
207*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp4 = 0;            \
208*0b57cec5SDimitry Andric   extern const char sym##_tmp5 __asm("$ld$hide$os4.1$_" #sym);                 \
209*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp5 = 0;            \
210*0b57cec5SDimitry Andric   extern const char sym##_tmp6 __asm("$ld$hide$os4.2$_" #sym);                 \
211*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp6 = 0;            \
212*0b57cec5SDimitry Andric   extern const char sym##_tmp7 __asm("$ld$hide$os4.3$_" #sym);                 \
213*0b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp7 = 0;
214*0b57cec5SDimitry Andric 
215*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__absvdi2)
216*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__absvsi2)
217*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__adddf3)
218*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__adddf3vfp)
219*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__addsf3)
220*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__addsf3vfp)
221*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__addvdi3)
222*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__addvsi3)
223*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ashldi3)
224*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ashrdi3)
225*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__bswapdi2)
226*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__bswapsi2)
227*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__clzdi2)
228*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__clzsi2)
229*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__cmpdi2)
230*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ctzdi2)
231*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ctzsi2)
232*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divdc3)
233*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divdf3)
234*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divdf3vfp)
235*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divdi3)
236*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divsc3)
237*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divsf3)
238*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divsf3vfp)
239*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divsi3)
240*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__eqdf2)
241*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__eqdf2vfp)
242*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__eqsf2)
243*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__eqsf2vfp)
244*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__extendsfdf2)
245*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__extendsfdf2vfp)
246*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ffsdi2)
247*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixdfdi)
248*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixdfsi)
249*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixdfsivfp)
250*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixsfdi)
251*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixsfsi)
252*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixsfsivfp)
253*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixunsdfdi)
254*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixunsdfsi)
255*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixunsdfsivfp)
256*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixunssfdi)
257*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixunssfsi)
258*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixunssfsivfp)
259*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatdidf)
260*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatdisf)
261*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatsidf)
262*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatsidfvfp)
263*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatsisf)
264*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatsisfvfp)
265*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatundidf)
266*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatundisf)
267*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatunsidf)
268*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatunsisf)
269*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatunssidfvfp)
270*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatunssisfvfp)
271*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gedf2)
272*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gedf2vfp)
273*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gesf2)
274*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gesf2vfp)
275*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gtdf2)
276*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gtdf2vfp)
277*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gtsf2)
278*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gtsf2vfp)
279*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ledf2)
280*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ledf2vfp)
281*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__lesf2)
282*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__lesf2vfp)
283*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__lshrdi3)
284*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ltdf2)
285*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ltdf2vfp)
286*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ltsf2)
287*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ltsf2vfp)
288*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__moddi3)
289*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__modsi3)
290*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__muldc3)
291*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__muldf3)
292*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__muldf3vfp)
293*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__muldi3)
294*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__mulsc3)
295*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__mulsf3)
296*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__mulsf3vfp)
297*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__mulvdi3)
298*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__mulvsi3)
299*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__nedf2)
300*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__nedf2vfp)
301*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__negdi2)
302*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__negvdi2)
303*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__negvsi2)
304*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__nesf2)
305*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__nesf2vfp)
306*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__paritydi2)
307*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__paritysi2)
308*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__popcountdi2)
309*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__popcountsi2)
310*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__powidf2)
311*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__powisf2)
312*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__subdf3)
313*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__subdf3vfp)
314*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__subsf3)
315*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__subsf3vfp)
316*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__subvdi3)
317*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__subvsi3)
318*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__truncdfsf2)
319*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__truncdfsf2vfp)
320*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ucmpdi2)
321*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__udivdi3)
322*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__udivmoddi4)
323*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__udivsi3)
324*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__umoddi3)
325*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__umodsi3)
326*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__unorddf2)
327*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__unorddf2vfp)
328*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__unordsf2)
329*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__unordsf2vfp)
330*0b57cec5SDimitry Andric 
331*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divmodsi4)
332*0b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__udivmodsi4)
333*0b57cec5SDimitry Andric #endif // __arm__ && __DYNAMIC__
334*0b57cec5SDimitry Andric 
335*0b57cec5SDimitry Andric #else // !__APPLE__
336*0b57cec5SDimitry Andric 
337*0b57cec5SDimitry Andric extern int avoid_empty_file;
338*0b57cec5SDimitry Andric 
339*0b57cec5SDimitry Andric #endif // !__APPLE__
340