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