xref: /freebsd/contrib/llvm-project/compiler-rt/lib/builtins/apple_versioning.c (revision bdd1243df58e60e85101c09001d9812a789b6bc4)
10b57cec5SDimitry Andric //===-- apple_versioning.c - Adds versioning symbols for ld ---------------===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric 
90b57cec5SDimitry Andric #if __APPLE__
100b57cec5SDimitry Andric #include <Availability.h>
110b57cec5SDimitry Andric 
120b57cec5SDimitry Andric #if __IPHONE_OS_VERSION_MIN_REQUIRED
130b57cec5SDimitry Andric #define NOT_HERE_BEFORE_10_6(sym)
140b57cec5SDimitry Andric #define NOT_HERE_IN_10_8_AND_EARLIER(sym)                                      \
150b57cec5SDimitry Andric   extern const char sym##_tmp61 __asm("$ld$hide$os6.1$_" #sym);                \
160b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp61 = 0;           \
170b57cec5SDimitry Andric   extern const char sym##_tmp60 __asm("$ld$hide$os6.0$_" #sym);                \
180b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp60 = 0;           \
190b57cec5SDimitry Andric   extern const char sym##_tmp51 __asm("$ld$hide$os5.1$_" #sym);                \
200b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp51 = 0;           \
210b57cec5SDimitry Andric   extern const char sym##_tmp50 __asm("$ld$hide$os5.0$_" #sym);                \
220b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp50 = 0;
230b57cec5SDimitry Andric #else
240b57cec5SDimitry Andric #define NOT_HERE_BEFORE_10_6(sym)                                              \
250b57cec5SDimitry Andric   extern const char sym##_tmp4 __asm("$ld$hide$os10.4$_" #sym);                \
260b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp4 = 0;            \
270b57cec5SDimitry Andric   extern const char sym##_tmp5 __asm("$ld$hide$os10.5$_" #sym);                \
280b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp5 = 0;
290b57cec5SDimitry Andric #define NOT_HERE_IN_10_8_AND_EARLIER(sym)                                      \
300b57cec5SDimitry Andric   extern const char sym##_tmp8 __asm("$ld$hide$os10.8$_" #sym);                \
310b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp8 = 0;            \
320b57cec5SDimitry Andric   extern const char sym##_tmp7 __asm("$ld$hide$os10.7$_" #sym);                \
330b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp7 = 0;            \
340b57cec5SDimitry Andric   extern const char sym##_tmp6 __asm("$ld$hide$os10.6$_" #sym);                \
350b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp6 = 0;
360b57cec5SDimitry Andric #endif
370b57cec5SDimitry Andric 
380b57cec5SDimitry Andric // Symbols in libSystem.dylib in 10.6 and later,
390b57cec5SDimitry Andric //  but are in libgcc_s.dylib in earlier versions
400b57cec5SDimitry Andric 
410b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__absvdi2)
420b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__absvsi2)
430b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__absvti2)
440b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__addvdi3)
450b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__addvsi3)
460b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__addvti3)
470b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ashldi3)
480b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ashlti3)
490b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ashrdi3)
500b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ashrti3)
510b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__clear_cache)
520b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__clzdi2)
530b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__clzsi2)
540b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__clzti2)
550b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__cmpdi2)
560b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__cmpti2)
570b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ctzdi2)
580b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ctzsi2)
590b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ctzti2)
600b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__divdc3)
610b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__divdi3)
620b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__divsc3)
630b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__divtc3)
640b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__divti3)
650b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__divxc3)
660b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__enable_execute_stack)
670b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ffsdi2)
680b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ffsti2)
690b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixdfdi)
700b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixdfti)
710b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixsfdi)
720b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixsfti)
730b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixtfdi)
740b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunsdfdi)
750b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunsdfsi)
760b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunsdfti)
770b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunssfdi)
780b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunssfsi)
790b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunssfti)
800b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunstfdi)
810b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunsxfdi)
820b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunsxfsi)
830b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixunsxfti)
840b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixxfdi)
850b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__fixxfti)
860b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatdidf)
870b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatdisf)
880b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatditf)
890b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatdixf)
900b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floattidf)
910b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floattisf)
920b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floattixf)
930b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatundidf)
940b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatundisf)
950b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatunditf)
960b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatundixf)
970b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatuntidf)
980b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatuntisf)
990b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__floatuntixf)
1000b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__gcc_personality_v0)
1010b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__lshrdi3)
1020b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__lshrti3)
1030b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__moddi3)
1040b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__modti3)
1050b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__muldc3)
1060b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__muldi3)
1070b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__mulsc3)
1080b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__multc3)
1090b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__multi3)
1100b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__mulvdi3)
1110b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__mulvsi3)
1120b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__mulvti3)
1130b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__mulxc3)
1140b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__negdi2)
1150b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__negti2)
1160b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__negvdi2)
1170b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__negvsi2)
1180b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__negvti2)
1190b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__paritydi2)
1200b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__paritysi2)
1210b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__parityti2)
1220b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__popcountdi2)
1230b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__popcountsi2)
1240b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__popcountti2)
1250b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__powidf2)
1260b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__powisf2)
1270b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__powitf2)
1280b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__powixf2)
1290b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__subvdi3)
1300b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__subvsi3)
1310b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__subvti3)
1320b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ucmpdi2)
1330b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__ucmpti2)
1340b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__udivdi3)
1350b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__udivmoddi4)
1360b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__udivmodti4)
1370b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__udivti3)
1380b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__umoddi3)
1390b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__umodti3)
1400b57cec5SDimitry Andric 
141*bdd1243dSDimitry Andric #if __powerpc__
1420b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__gcc_qadd)
1430b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__gcc_qdiv)
1440b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__gcc_qmul)
1450b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__gcc_qsub)
1460b57cec5SDimitry Andric NOT_HERE_BEFORE_10_6(__trampoline_setup)
147*bdd1243dSDimitry Andric #endif // __powerpc__
1480b57cec5SDimitry Andric 
1490b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange)
1500b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange_1)
1510b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange_2)
1520b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange_4)
1530b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_compare_exchange_8)
1540b57cec5SDimitry Andric 
1550b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange)
1560b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange_1)
1570b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange_2)
1580b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange_4)
1590b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_exchange_8)
1600b57cec5SDimitry Andric 
1610b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_add_1)
1620b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_add_2)
1630b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_add_4)
1640b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_add_8)
1650b57cec5SDimitry Andric 
1660b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_and_1)
1670b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_and_2)
1680b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_and_4)
1690b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_and_8)
1700b57cec5SDimitry Andric 
1710b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_or_1)
1720b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_or_2)
1730b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_or_4)
1740b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_or_8)
1750b57cec5SDimitry Andric 
1760b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_sub_1)
1770b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_sub_2)
1780b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_sub_4)
1790b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_sub_8)
1800b57cec5SDimitry Andric 
1810b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_xor_1)
1820b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_xor_2)
1830b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_xor_4)
1840b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_fetch_xor_8)
1850b57cec5SDimitry Andric 
1860b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load)
1870b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load_1)
1880b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load_2)
1890b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load_4)
1900b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_load_8)
1910b57cec5SDimitry Andric 
1920b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store)
1930b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store_1)
1940b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store_2)
1950b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store_4)
1960b57cec5SDimitry Andric NOT_HERE_IN_10_8_AND_EARLIER(__atomic_store_8)
1970b57cec5SDimitry Andric 
1980b57cec5SDimitry Andric #if __arm__ && __DYNAMIC__
1990b57cec5SDimitry Andric #define NOT_HERE_UNTIL_AFTER_4_3(sym)                                          \
2000b57cec5SDimitry Andric   extern const char sym##_tmp1 __asm("$ld$hide$os3.0$_" #sym);                 \
2010b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp1 = 0;            \
2020b57cec5SDimitry Andric   extern const char sym##_tmp2 __asm("$ld$hide$os3.1$_" #sym);                 \
2030b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp2 = 0;            \
2040b57cec5SDimitry Andric   extern const char sym##_tmp3 __asm("$ld$hide$os3.2$_" #sym);                 \
2050b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp3 = 0;            \
2060b57cec5SDimitry Andric   extern const char sym##_tmp4 __asm("$ld$hide$os4.0$_" #sym);                 \
2070b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp4 = 0;            \
2080b57cec5SDimitry Andric   extern const char sym##_tmp5 __asm("$ld$hide$os4.1$_" #sym);                 \
2090b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp5 = 0;            \
2100b57cec5SDimitry Andric   extern const char sym##_tmp6 __asm("$ld$hide$os4.2$_" #sym);                 \
2110b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp6 = 0;            \
2120b57cec5SDimitry Andric   extern const char sym##_tmp7 __asm("$ld$hide$os4.3$_" #sym);                 \
2130b57cec5SDimitry Andric   __attribute__((visibility("default"))) const char sym##_tmp7 = 0;
2140b57cec5SDimitry Andric 
2150b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__absvdi2)
2160b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__absvsi2)
2170b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__adddf3)
2180b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__adddf3vfp)
2190b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__addsf3)
2200b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__addsf3vfp)
2210b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__addvdi3)
2220b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__addvsi3)
2230b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ashldi3)
2240b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ashrdi3)
2250b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__bswapdi2)
2260b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__bswapsi2)
2270b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__clzdi2)
2280b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__clzsi2)
2290b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__cmpdi2)
2300b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ctzdi2)
2310b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ctzsi2)
2320b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divdc3)
2330b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divdf3)
2340b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divdf3vfp)
2350b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divdi3)
2360b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divsc3)
2370b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divsf3)
2380b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divsf3vfp)
2390b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divsi3)
2400b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__eqdf2)
2410b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__eqdf2vfp)
2420b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__eqsf2)
2430b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__eqsf2vfp)
2440b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__extendsfdf2)
2450b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__extendsfdf2vfp)
2460b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ffsdi2)
2470b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixdfdi)
2480b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixdfsi)
2490b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixdfsivfp)
2500b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixsfdi)
2510b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixsfsi)
2520b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixsfsivfp)
2530b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixunsdfdi)
2540b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixunsdfsi)
2550b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixunsdfsivfp)
2560b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixunssfdi)
2570b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixunssfsi)
2580b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__fixunssfsivfp)
2590b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatdidf)
2600b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatdisf)
2610b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatsidf)
2620b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatsidfvfp)
2630b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatsisf)
2640b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatsisfvfp)
2650b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatundidf)
2660b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatundisf)
2670b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatunsidf)
2680b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatunsisf)
2690b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatunssidfvfp)
2700b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__floatunssisfvfp)
2710b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gedf2)
2720b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gedf2vfp)
2730b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gesf2)
2740b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gesf2vfp)
2750b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gtdf2)
2760b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gtdf2vfp)
2770b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gtsf2)
2780b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__gtsf2vfp)
2790b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ledf2)
2800b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ledf2vfp)
2810b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__lesf2)
2820b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__lesf2vfp)
2830b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__lshrdi3)
2840b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ltdf2)
2850b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ltdf2vfp)
2860b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ltsf2)
2870b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ltsf2vfp)
2880b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__moddi3)
2890b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__modsi3)
2900b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__muldc3)
2910b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__muldf3)
2920b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__muldf3vfp)
2930b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__muldi3)
2940b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__mulsc3)
2950b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__mulsf3)
2960b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__mulsf3vfp)
2970b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__mulvdi3)
2980b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__mulvsi3)
2990b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__nedf2)
3000b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__nedf2vfp)
3010b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__negdi2)
3020b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__negvdi2)
3030b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__negvsi2)
3040b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__nesf2)
3050b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__nesf2vfp)
3060b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__paritydi2)
3070b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__paritysi2)
3080b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__popcountdi2)
3090b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__popcountsi2)
3100b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__powidf2)
3110b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__powisf2)
3120b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__subdf3)
3130b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__subdf3vfp)
3140b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__subsf3)
3150b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__subsf3vfp)
3160b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__subvdi3)
3170b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__subvsi3)
3180b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__truncdfsf2)
3190b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__truncdfsf2vfp)
3200b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__ucmpdi2)
3210b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__udivdi3)
3220b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__udivmoddi4)
3230b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__udivsi3)
3240b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__umoddi3)
3250b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__umodsi3)
3260b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__unorddf2)
3270b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__unorddf2vfp)
3280b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__unordsf2)
3290b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__unordsf2vfp)
3300b57cec5SDimitry Andric 
3310b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__divmodsi4)
3320b57cec5SDimitry Andric NOT_HERE_UNTIL_AFTER_4_3(__udivmodsi4)
3330b57cec5SDimitry Andric #endif // __arm__ && __DYNAMIC__
3340b57cec5SDimitry Andric 
3350b57cec5SDimitry Andric #else // !__APPLE__
3360b57cec5SDimitry Andric 
3370b57cec5SDimitry Andric extern int avoid_empty_file;
3380b57cec5SDimitry Andric 
3390b57cec5SDimitry Andric #endif // !__APPLE__
340