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