18b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar# These are the functions which clang needs when it is targetting a previous 28b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar# version of the OS. The issue is that the backend may use functions which were 38b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar# not present in the libgcc that shipped on the platform. In such cases, we link 48b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar# with a version of the library which contains private_extern definitions of all 58b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar# the extra functions which might be referenced. 68b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 78b790353436e0815e6b94a018c6e6b314cba9042Daniel DunbarDescription := Static runtime libraries for clang/Darwin. 88b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 92f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher# A function that ensures we don't try to build for architectures that we 102f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher# don't have working toolchains for. 112f5efb0238df99509fb8dd53d218065abd8dff8bEric ChristopherCheckArches = \ 122f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher $(shell \ 132f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher result=""; \ 142f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher for arch in $(1); do \ 15279a22ab3a2a5c838b7e80d67cbc970b7c12bbd8Daniel Dunbar if $(CC) -arch $$arch -c \ 160e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel Dunbar -integrated-as \ 17279a22ab3a2a5c838b7e80d67cbc970b7c12bbd8Daniel Dunbar $(ProjSrcRoot)/make/platform/clang_darwin_test_input.c \ 180e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel Dunbar -isysroot $(ProjSrcRoot)/SDKs/darwin \ 1990467a679a4e45c035b126701a0450857f3c4483Daniel Dunbar -o /dev/null > /dev/null 2> /dev/null; then \ 2096051e1bd0e4c60a65e8c059a719a4a72b229247Daniel Dunbar result="$$result$$arch "; \ 210e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel Dunbar else \ 220e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel Dunbar printf 1>&2 \ 230e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel Dunbar "warning: clang_darwin.mk: dropping arch '$$arch' from lib '$(2)'\n"; \ 2496051e1bd0e4c60a65e8c059a719a4a72b229247Daniel Dunbar fi; \ 252f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher done; \ 262f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher echo $$result) 272f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher 282f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher### 292f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher 30d69211491f42082d7cb2c294007c05704a98a163Daniel DunbarCC := clang 31d69211491f42082d7cb2c294007c05704a98a163Daniel Dunbar 324a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel DunbarConfigs := 338b790353436e0815e6b94a018c6e6b314cba9042Daniel DunbarUniversalArchs := 348b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 35ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel Dunbar# Configuration solely for providing access to an eprintf symbol, which may 36ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel Dunbar# still be referenced from Darwin system headers. This symbol is only ever 37ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel Dunbar# needed on i386. 38ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel DunbarConfigs += eprintf 390e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel DunbarUniversalArchs.eprintf := $(call CheckArches,i386,eprintf) 40ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel Dunbar 414a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel Dunbar# Configuration for targetting 10.4. We need a few functions missing from 424a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel Dunbar# libgcc_s.10.4.dylib. We only build x86 slices since clang doesn't really 434a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel Dunbar# support targetting PowerPC. 444a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel DunbarConfigs += 10.4 450e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel DunbarUniversalArchs.10.4 := $(call CheckArches,i386 x86_64,10.4) 468b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 471ace4055f79f304750839d73c46bbcaeb994f1b5Eric Christopher# Configuration for targetting OSX. These functions may not be in libSystem 481ace4055f79f304750839d73c46bbcaeb994f1b5Eric Christopher# so we should provide our own. 491ace4055f79f304750839d73c46bbcaeb994f1b5Eric ChristopherConfigs += osx 500e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel DunbarUniversalArchs.osx := $(call CheckArches,i386 x86_64,osx) 511ace4055f79f304750839d73c46bbcaeb994f1b5Eric Christopher 52b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar# Configuration for use with kernel/kexts. 53b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarConfigs += cc_kext 54d6ccdaca29e0cc3e39b5ccd8bd33c827eeda1cb4Daniel DunbarUniversalArchs.cc_kext := $(call CheckArches,i386 x86_64,cc_kext) 55b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 5691d9c15ef503507fc5badd4900a5049936be65c1Daniel Dunbar# Configurations which define the profiling support functions. 5791d9c15ef503507fc5badd4900a5049936be65c1Daniel DunbarConfigs += profile_osx 580e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel DunbarUniversalArchs.profile_osx := $(call CheckArches,i386 x86_64,profile_osx) 5991d9c15ef503507fc5badd4900a5049936be65c1Daniel Dunbar 60f8328c56b93ccbb11ce2e77e066c25536204d31bDaniel Dunbar# Configurations which define the ASAN support functions. 61f8328c56b93ccbb11ce2e77e066c25536204d31bDaniel DunbarConfigs += asan_osx 620e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel DunbarUniversalArchs.asan_osx := $(call CheckArches,i386 x86_64,asan_osx) 63f8328c56b93ccbb11ce2e77e066c25536204d31bDaniel Dunbar 6478aedd464282595ba2c7bf83ddc4978117925217Daniel DunbarConfigs += asan_osx_dynamic 6578aedd464282595ba2c7bf83ddc4978117925217Daniel DunbarUniversalArchs.asan_osx_dynamic := $(call CheckArches,i386 x86_64,asan_osx_dynamic) 6678aedd464282595ba2c7bf83ddc4978117925217Daniel Dunbar 678ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar# If RC_SUPPORTED_ARCHS is defined, treat it as a list of the architectures we 688ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar# are intended to support and limit what we try to build to that. 698ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar# 708ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar# We make sure to remove empty configs if we end up dropping all the requested 718ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar# archs for a particular config. 728ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbarifneq ($(RC_SUPPORTED_ARCHS),) 738ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar$(foreach config,$(Configs),\ 748ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar $(call Set,UniversalArchs.$(config),\ 758ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar $(filter $(RC_SUPPORTED_ARCHS),$(UniversalArchs.$(config))))\ 768ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar $(if $(UniversalArchs.$(config)),,\ 778ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar $(call Set,Configs,$(filter-out $(config),$(Configs))))) 788ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbarendif 798ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar 80b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar### 81b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 82d5feee3db8cf84a5789b728e223988f207b5ecbbDaniel Dunbar# Forcibly strip off any -arch, as that totally breaks our universal support. 83d5feee3db8cf84a5789b728e223988f207b5ecbbDaniel Dunbaroverride CC := $(subst -arch ,-arch_,$(CC)) 84d5feee3db8cf84a5789b728e223988f207b5ecbbDaniel Dunbaroverride CC := $(patsubst -arch_%,,$(CC)) 85d5feee3db8cf84a5789b728e223988f207b5ecbbDaniel Dunbar 86e512f7ffd8b7e6636b4a5cb66b2968b2c3608ff5Daniel DunbarCFLAGS := -Wall -Werror -O3 -fomit-frame-pointer 878b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 8856026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# Always set deployment target arguments for every build, these libraries should 8956026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# never depend on the environmental overrides. We simply set them to minimum 9056026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# supported deployment target -- nothing in the compiler-rt libraries should 9156026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# actually depend on the deployment target. 92469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarOSX_DEPLOYMENT_ARGS := -mmacosx-version-min=10.4 9356026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar 9491354d7be8b43a5008f8bc5bb53b8e396afb3d20Daniel Dunbar# Use our stub SDK as the sysroot to support more portable building. 9591354d7be8b43a5008f8bc5bb53b8e396afb3d20Daniel DunbarOSX_DEPLOYMENT_ARGS += -isysroot $(ProjSrcRoot)/SDKs/darwin 9656026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar 97469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarCFLAGS.eprintf := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 98469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarCFLAGS.10.4 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 99f8328c56b93ccbb11ce2e77e066c25536204d31bDaniel Dunbar# FIXME: We can't build ASAN with our stub SDK yet. 1009003eae323f92d68b834f649de17774a21866f0dKostya SerebryanyCFLAGS.asan_osx := $(CFLAGS) -mmacosx-version-min=10.5 -fno-builtin 10178aedd464282595ba2c7bf83ddc4978117925217Daniel DunbarCFLAGS.asan_osx_dynamic := \ 10278aedd464282595ba2c7bf83ddc4978117925217Daniel Dunbar $(CFLAGS) -mmacosx-version-min=10.5 -fno-builtin \ 10378aedd464282595ba2c7bf83ddc4978117925217Daniel Dunbar -DMAC_INTERPOSE_FUNCTIONS=1 104f8328c56b93ccbb11ce2e77e066c25536204d31bDaniel Dunbar 105469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarCFLAGS.osx.i386 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 106469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarCFLAGS.osx.x86_64 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 107469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarCFLAGS.cc_kext.i386 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 108469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarCFLAGS.cc_kext.x86_64 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 10991d9c15ef503507fc5badd4900a5049936be65c1Daniel DunbarCFLAGS.profile_osx.i386 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 11091d9c15ef503507fc5badd4900a5049936be65c1Daniel DunbarCFLAGS.profile_osx.x86_64 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 11156026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar 11278aedd464282595ba2c7bf83ddc4978117925217Daniel Dunbar# Configure the asan_osx_dynamic library to be built shared. 11378aedd464282595ba2c7bf83ddc4978117925217Daniel DunbarSHARED_LIBRARY.asan_osx_dynamic := 1 11478aedd464282595ba2c7bf83ddc4978117925217Daniel DunbarLDFLAGS.asan_osx_dynamic := -framework Foundation -lstdc++ 11578aedd464282595ba2c7bf83ddc4978117925217Daniel Dunbar 116ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel DunbarFUNCTIONS.eprintf := eprintf 1174a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel DunbarFUNCTIONS.10.4 := eprintf floatundidf floatundisf floatundixf 118d0dbbc4c9ac73e7a7de8a90408a4982819e1811bDaniel Dunbar 1191ace4055f79f304750839d73c46bbcaeb994f1b5Eric ChristopherFUNCTIONS.osx := mulosi4 mulodi4 muloti4 1201ace4055f79f304750839d73c46bbcaeb994f1b5Eric Christopher 12191d9c15ef503507fc5badd4900a5049936be65c1Daniel DunbarFUNCTIONS.profile_osx := GCDAProfiling 12291d9c15ef503507fc5badd4900a5049936be65c1Daniel Dunbar 123b3cedf98a3c8545da2234c2d35cb5d687984035fKostya SerebryanyFUNCTIONS.asan_osx := $(AsanFunctions) $(InterceptionFunctions) \ 124b3cedf98a3c8545da2234c2d35cb5d687984035fKostya Serebryany $(SanitizerCommonFunctions) 12578aedd464282595ba2c7bf83ddc4978117925217Daniel DunbarFUNCTIONS.asan_osx_dynamic := $(AsanFunctions) $(InterceptionFunctions) \ 12678aedd464282595ba2c7bf83ddc4978117925217Daniel Dunbar $(SanitizerCommonFunctions) \ 12778aedd464282595ba2c7bf83ddc4978117925217Daniel Dunbar $(AsanDynamicFunctions) 128f8328c56b93ccbb11ce2e77e066c25536204d31bDaniel Dunbar 129b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarCCKEXT_COMMON_FUNCTIONS := \ 130b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar absvdi2 \ 131b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar absvsi2 \ 132b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar addvdi3 \ 133b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar addvsi3 \ 134b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ashldi3 \ 135b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ashrdi3 \ 136b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar bswapdi2 \ 137b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar bswapsi2 \ 138b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar clzdi2 \ 139b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar clzsi2 \ 140b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar cmpdi2 \ 141b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ctzdi2 \ 142b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ctzsi2 \ 143b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divdc3 \ 144b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divdi3 \ 145b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divsc3 \ 1464c45b931fde3005c8b253ebf7e18035b88e05f52Daniel Dunbar divmodsi4 \ 1474c45b931fde3005c8b253ebf7e18035b88e05f52Daniel Dunbar udivmodsi4 \ 148b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar do_global_dtors \ 149b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar eprintf \ 150b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ffsdi2 \ 151b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixdfdi \ 152b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixsfdi \ 153b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsdfdi \ 154b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsdfsi \ 155b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunssfdi \ 156b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunssfsi \ 157b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatdidf \ 158b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatdisf \ 159b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatundidf \ 160b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatundisf \ 161b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar gcc_bcmp \ 162b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar lshrdi3 \ 163b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar moddi3 \ 164b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar muldc3 \ 165b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar muldi3 \ 166b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulsc3 \ 167b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulvdi3 \ 168b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulvsi3 \ 169b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negdi2 \ 170b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negvdi2 \ 171b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negvsi2 \ 172b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar paritydi2 \ 173b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar paritysi2 \ 174b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar popcountdi2 \ 175b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar popcountsi2 \ 176b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar powidf2 \ 177b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar powisf2 \ 178b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subvdi3 \ 179b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subvsi3 \ 180b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ucmpdi2 \ 181b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udiv_w_sdiv \ 182b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivdi3 \ 183b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivmoddi4 \ 184b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar umoddi3 185b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 186ed9b014382e7af5d62358dd7cddc58598b050fd5Daniel DunbarCCKEXT_ARM_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \ 187b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar adddf3 \ 188b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar addsf3 \ 189b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cdcmpeq \ 190b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cdrcmple \ 191b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cfcmpeq \ 192b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cfrcmple \ 193b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmpeq \ 194b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmpge \ 195b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmpgt \ 196b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmple \ 197b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmplt \ 198b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_drsub \ 199b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmpeq \ 200b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmpge \ 201b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmpgt \ 202b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmple \ 203b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmplt \ 204b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_frsub \ 205b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_idivmod \ 206b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_uidivmod \ 207b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar cmpdf2 \ 208b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar cmpsf2 \ 209b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar div0 \ 210b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divdf3 \ 211b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divsf3 \ 212b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divsi3 \ 213b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar extendsfdf2 \ 214b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ffssi2 \ 215b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixdfsi \ 216b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixsfsi \ 217b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatsidf \ 218b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatsisf \ 219b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatunsidf \ 220b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatunsisf \ 221358b3fd9c3fbdba1e0b8f5ed2aa4a4bfe62375ebDaniel Dunbar comparedf2 \ 222358b3fd9c3fbdba1e0b8f5ed2aa4a4bfe62375ebDaniel Dunbar comparesf2 \ 223b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar modsi3 \ 224b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar muldf3 \ 225b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulsf3 \ 226b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negdf2 \ 227b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negsf2 \ 228b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subdf3 \ 229b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subsf3 \ 230b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar switch16 \ 231b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar switch32 \ 232b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar switch8 \ 233b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar switchu8 \ 234b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar truncdfsf2 \ 235b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivsi3 \ 236b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar umodsi3 \ 237b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar unorddf2 \ 238b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar unordsf2 239b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 240b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarCCKEXT_X86_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \ 241b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divxc3 \ 242b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsxfdi \ 243b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsxfsi \ 244b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixxfdi \ 245b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatdixf \ 246b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatundixf \ 247b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulxc3 \ 248b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar powixf2 249b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 250b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.i386 := $(CCKEXT_X86_FUNCTIONS) \ 251b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ffssi2 \ 252b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.eax \ 253b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.ebp \ 254b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.ebx \ 255b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.ecx \ 256b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.edi \ 257b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.edx \ 258b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.esi 259b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 260b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.x86_64 := $(CCKEXT_X86_FUNCTIONS) \ 261b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar absvti2 \ 262b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar addvti3 \ 263b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ashlti3 \ 264b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ashrti3 \ 265b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar clzti2 \ 266b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar cmpti2 \ 267b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ctzti2 \ 268b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divti3 \ 269b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ffsti2 \ 270b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixdfti \ 271b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixsfti \ 272b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsdfti \ 273b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunssfti \ 274b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsxfti \ 275b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixxfti \ 276b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floattidf \ 277b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floattisf \ 278b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floattixf \ 279b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatuntidf \ 280b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatuntisf \ 281b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatuntixf \ 282b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar lshrti3 \ 283b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar modti3 \ 284b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar multi3 \ 285b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulvti3 \ 286b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negti2 \ 287b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negvti2 \ 288b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar parityti2 \ 289b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar popcountti2 \ 290b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subvti3 \ 291b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ucmpti2 \ 292b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivmodti4 \ 293b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivti3 \ 294b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar umodti3 295b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 296b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar# FIXME: Currently, compiler-rt is missing implementations for a number of the 297b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar# functions that need to go into libcc_kext.a. Filter them out for now. 298b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarCCKEXT_MISSING_FUNCTIONS := \ 299f442f2622541ce54aea208fbe2ea5b79a104a481Daniel Dunbar cmpdf2 cmpsf2 div0 \ 300f442f2622541ce54aea208fbe2ea5b79a104a481Daniel Dunbar ffssi2 \ 301ce750fdaab5c9c1d013817ad949c9109eb3f2af2Daniel Dunbar udiv_w_sdiv unorddf2 unordsf2 bswapdi2 \ 302b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar bswapsi2 \ 303b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar gcc_bcmp \ 304b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar do_global_dtors \ 305b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.eax i686.get_pc_thunk.ebp i686.get_pc_thunk.ebx \ 306b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.ecx i686.get_pc_thunk.edi i686.get_pc_thunk.edx \ 307b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.esi \ 308b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cdcmpeq aeabi_cdrcmple aeabi_cfcmpeq aeabi_cfrcmple aeabi_dcmpeq \ 309b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmpge aeabi_dcmpgt aeabi_dcmple aeabi_dcmplt aeabi_drsub aeabi_fcmpeq \ 310b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmpge aeabi_fcmpgt aeabi_fcmple aeabi_fcmplt aeabi_frsub aeabi_idivmod \ 311b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_uidivmod 312b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 313b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.i386 := \ 314b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.i386)) 315b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.x86_64 := \ 316b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.x86_64)) 317b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 318d3d22631ca0b314f0564a9bcfe96dd2d6ca85fa6Daniel DunbarKERNEL_USE.cc_kext := 1 319d3d22631ca0b314f0564a9bcfe96dd2d6ca85fa6Daniel Dunbar 3208b790353436e0815e6b94a018c6e6b314cba9042Daniel DunbarVISIBILITY_HIDDEN := 1 321