12d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# These are the functions which clang needs when it is targeting 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 \ 162d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines -integrated-as \ 172d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines $(ProjSrcRoot)/make/platform/clang_darwin_test_input.c \ 182d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines -isysroot $(ProjSrcRoot)/SDKs/darwin \ 192d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines -o /dev/null > /dev/null 2> /dev/null; then \ 202d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines if $(LD) -v 2>&1 | grep "configured to support" \ 212d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines | tr ' ' '\n' | grep "^$$arch$$" >/dev/null 2>/dev/null; then \ 222d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines result="$$result$$arch "; \ 232d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines else \ 242d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines printf 1>&2 \ 252d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines "warning: clang_darwin.mk: dropping arch '$$arch' from lib '$(2)'"; \ 262d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines printf 1>&2 " (ld does not support it)\n"; \ 272d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines fi; \ 280e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel Dunbar else \ 292d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines printf 1>&2 \ 302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines "warning: clang_darwin.mk: dropping arch '$$arch' from lib '$(2)'"; \ 312d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines printf 1>&2 " (clang does not support it)\n"; \ 3296051e1bd0e4c60a65e8c059a719a4a72b229247Daniel Dunbar fi; \ 332f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher done; \ 342f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher echo $$result) 352f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher 3621afede01089ae194f0f9658f444aff0496220ddBob WilsonXCRun = \ 3721afede01089ae194f0f9658f444aff0496220ddBob Wilson $(shell \ 3821afede01089ae194f0f9658f444aff0496220ddBob Wilson result=`xcrun -find $(1) 2> /dev/null`; \ 390d77f8cb7b8feeb10ea00f2ec64ed300fde260feBill Wendling if [ "$$?" != "0" ]; then result=$(1); fi; \ 4021afede01089ae194f0f9658f444aff0496220ddBob Wilson echo $$result) 418975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander PotapenkoXCRunSdkPath = \ 428975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko $(shell \ 438975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko result=`xcrun --sdk $(1) --show-sdk-path 2> /dev/null`; \ 448975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko if [ "$$?" != "0" ]; then result=""; fi; \ 458975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko echo $$result) 462f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher### 472f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher 4821afede01089ae194f0f9658f444aff0496220ddBob WilsonCC := $(call XCRun,clang) 492d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesLD := $(shell $(CC) -print-prog-name=ld) 5021afede01089ae194f0f9658f444aff0496220ddBob WilsonAR := $(call XCRun,ar) 5121afede01089ae194f0f9658f444aff0496220ddBob WilsonRANLIB := $(call XCRun,ranlib) 5221afede01089ae194f0f9658f444aff0496220ddBob WilsonSTRIP := $(call XCRun,strip) 5321afede01089ae194f0f9658f444aff0496220ddBob WilsonLIPO := $(call XCRun,lipo) 5421afede01089ae194f0f9658f444aff0496220ddBob WilsonDSYMUTIL := $(call XCRun,dsymutil) 55d69211491f42082d7cb2c294007c05704a98a163Daniel Dunbar 564a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel DunbarConfigs := 578b790353436e0815e6b94a018c6e6b314cba9042Daniel DunbarUniversalArchs := 588b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 59ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel Dunbar# Configuration solely for providing access to an eprintf symbol, which may 60ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel Dunbar# still be referenced from Darwin system headers. This symbol is only ever 61ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel Dunbar# needed on i386. 62ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel DunbarConfigs += eprintf 630e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel DunbarUniversalArchs.eprintf := $(call CheckArches,i386,eprintf) 64ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel Dunbar 652d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# Configuration for targeting 10.4. We need a few functions missing from 664a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel Dunbar# libgcc_s.10.4.dylib. We only build x86 slices since clang doesn't really 672d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# support targeting PowerPC. 684a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel DunbarConfigs += 10.4 690e1d0f2dd3349fda967bd5ae098332301d8b70c5Daniel DunbarUniversalArchs.10.4 := $(call CheckArches,i386 x86_64,10.4) 708b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 712d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# Configuration for targeting iOS for a couple of functions that didn't 727bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar# make it into libSystem. 737bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarConfigs += ios 742d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesUniversalArchs.ios := $(call CheckArches,i386 x86_64 x86_64h armv7,ios) 757bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar 762d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines# Configuration for targeting OSX. These functions may not be in libSystem 771ace4055f79f304750839d73c46bbcaeb994f1b5Eric Christopher# so we should provide our own. 781ace4055f79f304750839d73c46bbcaeb994f1b5Eric ChristopherConfigs += osx 792d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesUniversalArchs.osx := $(call CheckArches,i386 x86_64 x86_64h,osx) 801ace4055f79f304750839d73c46bbcaeb994f1b5Eric Christopher 81b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar# Configuration for use with kernel/kexts. 82b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarConfigs += cc_kext 832d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesUniversalArchs.cc_kext := $(call CheckArches,armv7 i386 x86_64 x86_64h,cc_kext) 847bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar 857bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar# Configuration for use with kernel/kexts for iOS 5.0 and earlier (which used 867bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar# a different code generation strategy). 877bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarConfigs += cc_kext_ios5 882d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesUniversalArchs.cc_kext_ios5 := $(call CheckArches,x86_64 x86_64h armv7,cc_kext_ios5) 89b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 9091d9c15ef503507fc5badd4900a5049936be65c1Daniel Dunbar# Configurations which define the profiling support functions. 9191d9c15ef503507fc5badd4900a5049936be65c1Daniel DunbarConfigs += profile_osx 922d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesUniversalArchs.profile_osx := $(call CheckArches,i386 x86_64 x86_64h,profile_osx) 937bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarConfigs += profile_ios 942d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesUniversalArchs.profile_ios := $(call CheckArches,i386 x86_64 x86_64h armv7,profile_ios) 9591d9c15ef503507fc5badd4900a5049936be65c1Daniel Dunbar 96f8328c56b93ccbb11ce2e77e066c25536204d31bDaniel Dunbar# Configurations which define the ASAN support functions. 9778aedd464282595ba2c7bf83ddc4978117925217Daniel DunbarConfigs += asan_osx_dynamic 982d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesUniversalArchs.asan_osx_dynamic := $(call CheckArches,i386 x86_64 x86_64h,asan_osx_dynamic) 9978aedd464282595ba2c7bf83ddc4978117925217Daniel Dunbar 100d5c29a8584d5284ae4cf7e7176efe0692ccde5c0Alexander PotapenkoIOSSIM_SDK_PATH := $(call XCRunSdkPath,iphonesimulator) 101d5c29a8584d5284ae4cf7e7176efe0692ccde5c0Alexander Potapenkoifneq ($(IOSSIM_SDK_PATH),) 1028975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander PotapenkoConfigs += asan_iossim_dynamic 1032d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesUniversalArchs.asan_iossim_dynamic := $(call CheckArches,i386 x86_64 x86_64h,asan_iossim_dynamic) 104d5c29a8584d5284ae4cf7e7176efe0692ccde5c0Alexander Potapenkoendif 1058975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko 1064a4ef702597471bff5e249b8ec9d94d265007895Richard SmithConfigs += ubsan_osx 1072d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesUniversalArchs.ubsan_osx := $(call CheckArches,i386 x86_64 x86_64h,ubsan_osx) 1084a4ef702597471bff5e249b8ec9d94d265007895Richard Smith 109079ed92654d44e30c620788a6acf70188f2272afDaniel Dunbar# Darwin 10.6 has a bug in cctools that makes it unable to use ranlib on our ARM 110087a68b7719e102c2e6c426120b5cb55d0313460Bob Wilson# object files. If we are on that platform, strip out all ARM archs. We still 111079ed92654d44e30c620788a6acf70188f2272afDaniel Dunbar# build the libraries themselves so that Clang can find them where it expects 112079ed92654d44e30c620788a6acf70188f2272afDaniel Dunbar# them, even though they might not have an expected slice. 1132b26c909424953af8fa443d075e27e68c1571be4Bob Wilsonifneq ($(shell test -x /usr/bin/sw_vers && sw_vers -productVersion | grep 10.6),) 114079ed92654d44e30c620788a6acf70188f2272afDaniel DunbarUniversalArchs.ios := $(filter-out armv7, $(UniversalArchs.ios)) 115079ed92654d44e30c620788a6acf70188f2272afDaniel DunbarUniversalArchs.cc_kext := $(filter-out armv7, $(UniversalArchs.cc_kext)) 116079ed92654d44e30c620788a6acf70188f2272afDaniel DunbarUniversalArchs.cc_kext_ios5 := $(filter-out armv7, $(UniversalArchs.cc_kext_ios5)) 117079ed92654d44e30c620788a6acf70188f2272afDaniel DunbarUniversalArchs.profile_ios := $(filter-out armv7, $(UniversalArchs.profile_ios)) 118079ed92654d44e30c620788a6acf70188f2272afDaniel Dunbarendif 119004c4340248841aefe5a23d1d20556ac801c871dBob Wilson 1208ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar# If RC_SUPPORTED_ARCHS is defined, treat it as a list of the architectures we 1218ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar# are intended to support and limit what we try to build to that. 1228ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar# 1238ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar# We make sure to remove empty configs if we end up dropping all the requested 1248ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar# archs for a particular config. 1258ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbarifneq ($(RC_SUPPORTED_ARCHS),) 1268ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar$(foreach config,$(Configs),\ 1278ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar $(call Set,UniversalArchs.$(config),\ 1288ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar $(filter $(RC_SUPPORTED_ARCHS),$(UniversalArchs.$(config))))\ 1298ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar $(if $(UniversalArchs.$(config)),,\ 1308ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar $(call Set,Configs,$(filter-out $(config),$(Configs))))) 1318ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbarendif 1328ef083003fe24fe2b3e8e35c03f4039c45bc46aaDaniel Dunbar 133b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar### 134b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 135d5feee3db8cf84a5789b728e223988f207b5ecbbDaniel Dunbar# Forcibly strip off any -arch, as that totally breaks our universal support. 136d5feee3db8cf84a5789b728e223988f207b5ecbbDaniel Dunbaroverride CC := $(subst -arch ,-arch_,$(CC)) 137d5feee3db8cf84a5789b728e223988f207b5ecbbDaniel Dunbaroverride CC := $(patsubst -arch_%,,$(CC)) 138d5feee3db8cf84a5789b728e223988f207b5ecbbDaniel Dunbar 139e512f7ffd8b7e6636b4a5cb66b2968b2c3608ff5Daniel DunbarCFLAGS := -Wall -Werror -O3 -fomit-frame-pointer 1408b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 14156026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# Always set deployment target arguments for every build, these libraries should 14256026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# never depend on the environmental overrides. We simply set them to minimum 14356026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# supported deployment target -- nothing in the compiler-rt libraries should 14456026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# actually depend on the deployment target. 145469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarOSX_DEPLOYMENT_ARGS := -mmacosx-version-min=10.4 1461d38069f4842973df02525c7bf77a5cbed3b03aaBob WilsonIOS_DEPLOYMENT_ARGS := -mios-version-min=1.0 1471d38069f4842973df02525c7bf77a5cbed3b03aaBob WilsonIOS6_DEPLOYMENT_ARGS := -mios-version-min=6.0 1481d38069f4842973df02525c7bf77a5cbed3b03aaBob WilsonIOSSIM_DEPLOYMENT_ARGS := -mios-simulator-version-min=1.0 14956026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar 15091354d7be8b43a5008f8bc5bb53b8e396afb3d20Daniel Dunbar# Use our stub SDK as the sysroot to support more portable building. 15191354d7be8b43a5008f8bc5bb53b8e396afb3d20Daniel DunbarOSX_DEPLOYMENT_ARGS += -isysroot $(ProjSrcRoot)/SDKs/darwin 1527bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarIOS_DEPLOYMENT_ARGS += -isysroot $(ProjSrcRoot)/SDKs/darwin 1537bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarIOS6_DEPLOYMENT_ARGS += -isysroot $(ProjSrcRoot)/SDKs/darwin 1547bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarIOSSIM_DEPLOYMENT_ARGS += -isysroot $(ProjSrcRoot)/SDKs/darwin 15556026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar 156469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarCFLAGS.eprintf := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 157469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarCFLAGS.10.4 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 158f8328c56b93ccbb11ce2e77e066c25536204d31bDaniel Dunbar# FIXME: We can't build ASAN with our stub SDK yet. 15978aedd464282595ba2c7bf83ddc4978117925217Daniel DunbarCFLAGS.asan_osx_dynamic := \ 160742c1135a0ae9c5c9c5b0751cd0766c7d9f38d57Alexey Samsonov $(CFLAGS) -mmacosx-version-min=10.6 -fno-builtin \ 161a225736903b1bef1a232067429368e536f610266Alexey Samsonov -gline-tables-only \ 1622d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines -DMAC_INTERPOSE_FUNCTIONS=1 163f8328c56b93ccbb11ce2e77e066c25536204d31bDaniel Dunbar 1648975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander PotapenkoCFLAGS.asan_iossim_dynamic := \ 1658975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko $(CFLAGS) -mios-simulator-version-min=7.0 \ 1668975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko -isysroot $(IOSSIM_SDK_PATH) \ 1678975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko -fno-builtin \ 1688975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko -gline-tables-only \ 1692d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines -DMAC_INTERPOSE_FUNCTIONS=1 1708975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko 1712d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesCFLAGS.ubsan_osx := $(CFLAGS) -mmacosx-version-min=10.6 -fno-builtin 1724a4ef702597471bff5e249b8ec9d94d265007895Richard Smith 1737bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarCFLAGS.ios.i386 := $(CFLAGS) $(IOSSIM_DEPLOYMENT_ARGS) 1747bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarCFLAGS.ios.x86_64 := $(CFLAGS) $(IOSSIM_DEPLOYMENT_ARGS) 1752d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesCFLAGS.ios.x86_64h := $(CFLAGS) $(IOSSIM_DEPLOYMENT_ARGS) 1767bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarCFLAGS.ios.armv7 := $(CFLAGS) $(IOS_DEPLOYMENT_ARGS) 1777bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarCFLAGS.ios.armv7k := $(CFLAGS) $(IOS_DEPLOYMENT_ARGS) 1787bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarCFLAGS.ios.armv7s := $(CFLAGS) $(IOS_DEPLOYMENT_ARGS) 179469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarCFLAGS.osx.i386 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 180469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarCFLAGS.osx.x86_64 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 1812d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesCFLAGS.osx.x86_64h := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 182469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarCFLAGS.cc_kext.i386 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 183469846b9252d2790bfc7d86927a780cf76c52c01Daniel DunbarCFLAGS.cc_kext.x86_64 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 1842d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesCFLAGS.cc_kext.x86_64h := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 1857bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarCFLAGS.cc_kext.armv7 := $(CFLAGS) $(IOS6_DEPLOYMENT_ARGS) 1867bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarCFLAGS.cc_kext.armv7k := $(CFLAGS) $(IOS6_DEPLOYMENT_ARGS) 1877bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarCFLAGS.cc_kext.armv7s := $(CFLAGS) $(IOS6_DEPLOYMENT_ARGS) 1887bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarCFLAGS.cc_kext_ios5.armv7 := $(CFLAGS) $(IOS_DEPLOYMENT_ARGS) 1897bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarCFLAGS.cc_kext_ios5.armv7k := $(CFLAGS) $(IOS_DEPLOYMENT_ARGS) 1907bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarCFLAGS.cc_kext_ios5.armv7s := $(CFLAGS) $(IOS_DEPLOYMENT_ARGS) 1912d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesCFLAGS.profile_osx.i386 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 1922d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesCFLAGS.profile_osx.x86_64 := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 1932d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesCFLAGS.profile_osx.x86_64h := $(CFLAGS) $(OSX_DEPLOYMENT_ARGS) 1942d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesCFLAGS.profile_ios.i386 := $(CFLAGS) $(IOSSIM_DEPLOYMENT_ARGS) 1952d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesCFLAGS.profile_ios.x86_64 := $(CFLAGS) $(IOSSIM_DEPLOYMENT_ARGS) 1962d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesCFLAGS.profile_ios.x86_64h := $(CFLAGS) $(IOSSIM_DEPLOYMENT_ARGS) 1975ab0e47ce6eaaaddd743d3fdaf255ef16f11a685Chandler CarruthCFLAGS.profile_ios.armv7 := $(CFLAGS) $(IOS_DEPLOYMENT_ARGS) 1985ab0e47ce6eaaaddd743d3fdaf255ef16f11a685Chandler CarruthCFLAGS.profile_ios.armv7k := $(CFLAGS) $(IOS_DEPLOYMENT_ARGS) 1995ab0e47ce6eaaaddd743d3fdaf255ef16f11a685Chandler CarruthCFLAGS.profile_ios.armv7s := $(CFLAGS) $(IOS_DEPLOYMENT_ARGS) 20056026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar 20178aedd464282595ba2c7bf83ddc4978117925217Daniel Dunbar# Configure the asan_osx_dynamic library to be built shared. 20278aedd464282595ba2c7bf83ddc4978117925217Daniel DunbarSHARED_LIBRARY.asan_osx_dynamic := 1 203d2e32e323cca83b666ecd124ebfd1720232d0928Alexander PotapenkoLDFLAGS.asan_osx_dynamic := -lstdc++ -undefined dynamic_lookup 20478aedd464282595ba2c7bf83ddc4978117925217Daniel Dunbar 2058975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko# Configure the asan_iossim_dynamic library to be built shared. 2068975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander PotapenkoSHARED_LIBRARY.asan_iossim_dynamic := 1 2078975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko# configure+make uses Clang, so we're using isysroot instead of --sysroot 2088975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko# or -Wl,-syslibroot. 2098975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander PotapenkoLDFLAGS.asan_iossim_dynamic := -undefined dynamic_lookup \ 2108975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko -Wl,-ios_simulator_version_min,7.0.0 \ 2118975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko -mios-simulator-version-min=7.0 -isysroot $(IOSSIM_SDK_PATH) 2128975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko 213ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel DunbarFUNCTIONS.eprintf := eprintf 2144a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel DunbarFUNCTIONS.10.4 := eprintf floatundidf floatundisf floatundixf 215d0dbbc4c9ac73e7a7de8a90408a4982819e1811bDaniel Dunbar 2167bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.ios := divmodsi4 udivmodsi4 mulosi4 mulodi4 muloti4 2177bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar# On x86, the divmod functions reference divsi. 2182d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesFUNCTIONS.ios.i386 := $(FUNCTIONS.ios) \ 2192d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines divsi3 udivsi3 2202d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesFUNCTIONS.ios.x86_64 := $(FUNCTIONS.ios.i386) 2212d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesFUNCTIONS.ios.x86_64h := $(FUNCTIONS.ios.x86_64) 2227bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar 2231ace4055f79f304750839d73c46bbcaeb994f1b5Eric ChristopherFUNCTIONS.osx := mulosi4 mulodi4 muloti4 2241ace4055f79f304750839d73c46bbcaeb994f1b5Eric Christopher 2252d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesFUNCTIONS.profile_osx := GCDAProfiling InstrProfiling InstrProfilingBuffer \ 2262d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines InstrProfilingFile InstrProfilingPlatformDarwin \ 2272d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines InstrProfilingRuntime 2282d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesFUNCTIONS.profile_ios := $(FUNCTIONS.profile_osx) 22991d9c15ef503507fc5badd4900a5049936be65c1Daniel Dunbar 2302d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesFUNCTIONS.asan_osx_dynamic := $(AsanFunctions) $(AsanCXXFunctions) \ 2312d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines $(InterceptionFunctions) \ 23278aedd464282595ba2c7bf83ddc4978117925217Daniel Dunbar $(SanitizerCommonFunctions) \ 23378aedd464282595ba2c7bf83ddc4978117925217Daniel Dunbar $(AsanDynamicFunctions) 234f8328c56b93ccbb11ce2e77e066c25536204d31bDaniel Dunbar 2352d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesFUNCTIONS.asan_iossim_dynamic := $(AsanFunctions) $(AsanCXXFunctions) \ 2362d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines $(InterceptionFunctions) \ 2378975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko $(SanitizerCommonFunctions) \ 2388975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko $(AsanDynamicFunctions) 2398975fa7ba8b508ba2d56c75e4f910da78ad3eee4Alexander Potapenko 2403f814987cee8310083cb4a5cfb1a3850f9a067a1Richard SmithFUNCTIONS.ubsan_osx := $(UbsanFunctions) $(UbsanCXXFunctions) \ 2413f814987cee8310083cb4a5cfb1a3850f9a067a1Richard Smith $(SanitizerCommonFunctions) 2424a4ef702597471bff5e249b8ec9d94d265007895Richard Smith 243b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarCCKEXT_COMMON_FUNCTIONS := \ 244b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar absvdi2 \ 245b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar absvsi2 \ 246b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar addvdi3 \ 247b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar addvsi3 \ 248b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ashldi3 \ 249b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ashrdi3 \ 250b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar bswapdi2 \ 251b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar bswapsi2 \ 252b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar clzdi2 \ 253b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar clzsi2 \ 254b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar cmpdi2 \ 255b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ctzdi2 \ 256b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ctzsi2 \ 257b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divdc3 \ 258b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divdi3 \ 259b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divsc3 \ 2604c45b931fde3005c8b253ebf7e18035b88e05f52Daniel Dunbar divmodsi4 \ 2614c45b931fde3005c8b253ebf7e18035b88e05f52Daniel Dunbar udivmodsi4 \ 262b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar do_global_dtors \ 263b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar eprintf \ 264b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ffsdi2 \ 265b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixdfdi \ 266b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixsfdi \ 267b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsdfdi \ 268b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsdfsi \ 269b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunssfdi \ 270b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunssfsi \ 271b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatdidf \ 272b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatdisf \ 273b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatundidf \ 274b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatundisf \ 275b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar gcc_bcmp \ 276b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar lshrdi3 \ 277b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar moddi3 \ 278b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar muldc3 \ 279b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar muldi3 \ 280b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulsc3 \ 281b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulvdi3 \ 282b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulvsi3 \ 283b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negdi2 \ 284b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negvdi2 \ 285b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negvsi2 \ 286b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar paritydi2 \ 287b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar paritysi2 \ 288b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar popcountdi2 \ 289b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar popcountsi2 \ 290b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar powidf2 \ 291b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar powisf2 \ 292b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subvdi3 \ 293b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subvsi3 \ 294b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ucmpdi2 \ 295b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udiv_w_sdiv \ 296b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivdi3 \ 297b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivmoddi4 \ 298b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar umoddi3 299b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 300ed9b014382e7af5d62358dd7cddc58598b050fd5Daniel DunbarCCKEXT_ARM_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \ 301b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar adddf3 \ 302b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar addsf3 \ 303b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cdcmpeq \ 304b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cdrcmple \ 305b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cfcmpeq \ 306b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cfrcmple \ 307b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmpeq \ 308b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmpge \ 309b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmpgt \ 310b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmple \ 311b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmplt \ 312b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_drsub \ 313b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmpeq \ 314b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmpge \ 315b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmpgt \ 316b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmple \ 317b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmplt \ 318b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_frsub \ 319b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_idivmod \ 320b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_uidivmod \ 321b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar cmpdf2 \ 322b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar cmpsf2 \ 323b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar div0 \ 324b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divdf3 \ 325b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divsf3 \ 326b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divsi3 \ 327b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar extendsfdf2 \ 328b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ffssi2 \ 329b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixdfsi \ 330b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixsfsi \ 331b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatsidf \ 332b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatsisf \ 333b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatunsidf \ 334b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatunsisf \ 335358b3fd9c3fbdba1e0b8f5ed2aa4a4bfe62375ebDaniel Dunbar comparedf2 \ 336358b3fd9c3fbdba1e0b8f5ed2aa4a4bfe62375ebDaniel Dunbar comparesf2 \ 337b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar modsi3 \ 338b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar muldf3 \ 339b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulsf3 \ 340b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negdf2 \ 341b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negsf2 \ 342b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subdf3 \ 343b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subsf3 \ 344b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar switch16 \ 345b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar switch32 \ 346b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar switch8 \ 347b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar switchu8 \ 348b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar truncdfsf2 \ 349b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivsi3 \ 350b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar umodsi3 \ 351b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar unorddf2 \ 352b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar unordsf2 353b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 3547bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarCCKEXT_ARMVFP_FUNCTIONS := $(CCKEXT_ARM_FUNCTIONS) \ 3557bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar adddf3vfp \ 3567bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar addsf3vfp \ 3577bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar divdf3vfp \ 3587bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar divsf3vfp \ 3597bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar eqdf2vfp \ 3607bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar eqsf2vfp \ 3617bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar extendsfdf2vfp \ 3627bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar fixdfsivfp \ 3637bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar fixsfsivfp \ 3647bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar fixunsdfsivfp \ 3657bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar fixunssfsivfp \ 3667bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar floatsidfvfp \ 3677bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar floatsisfvfp \ 3687bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar floatunssidfvfp \ 3697bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar floatunssisfvfp \ 3707bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar gedf2vfp \ 3717bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar gesf2vfp \ 3727bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar gtdf2vfp \ 3737bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar gtsf2vfp \ 3747bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar ledf2vfp \ 3757bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar lesf2vfp \ 3767bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar ltdf2vfp \ 3777bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar ltsf2vfp \ 3787bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar muldf3vfp \ 3797bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar mulsf3vfp \ 3807bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar nedf2vfp \ 3817bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar nesf2vfp \ 3827bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar subdf3vfp \ 3837bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar subsf3vfp \ 3847bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar truncdfsf2vfp \ 3857bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar unorddf2vfp \ 3867bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar unordsf2vfp 3877bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar 3887bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.cc_kext.armv7 := $(CCKEXT_ARMVFP_FUNCTIONS) 3897bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.cc_kext.armv7k := $(CCKEXT_ARMVFP_FUNCTIONS) 3907bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.cc_kext.armv7s := $(CCKEXT_ARMVFP_FUNCTIONS) 3917bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.cc_kext_ios5.armv7 := $(CCKEXT_ARMVFP_FUNCTIONS) 3927bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.cc_kext_ios5.armv7k := $(CCKEXT_ARMVFP_FUNCTIONS) 3937bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.cc_kext_ios5.armv7s := $(CCKEXT_ARMVFP_FUNCTIONS) 3947bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar 395b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarCCKEXT_X86_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \ 396b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divxc3 \ 397b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsxfdi \ 398b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsxfsi \ 399b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixxfdi \ 400b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatdixf \ 401b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatundixf \ 402b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulxc3 \ 403b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar powixf2 404b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 405b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.i386 := $(CCKEXT_X86_FUNCTIONS) \ 406b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ffssi2 \ 407b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.eax \ 408b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.ebp \ 409b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.ebx \ 410b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.ecx \ 411b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.edi \ 412b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.edx \ 413b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.esi 414b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 415b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.x86_64 := $(CCKEXT_X86_FUNCTIONS) \ 416b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar absvti2 \ 417b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar addvti3 \ 418b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ashlti3 \ 419b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ashrti3 \ 420b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar clzti2 \ 421b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar cmpti2 \ 422b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ctzti2 \ 423b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divti3 \ 424b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ffsti2 \ 425b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixdfti \ 426b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixsfti \ 427b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsdfti \ 428b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunssfti \ 429b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsxfti \ 430b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixxfti \ 431b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floattidf \ 432b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floattisf \ 433b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floattixf \ 434b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatuntidf \ 435b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatuntisf \ 436b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatuntixf \ 437b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar lshrti3 \ 438b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar modti3 \ 439b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar multi3 \ 440b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulvti3 \ 441b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negti2 \ 442b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negvti2 \ 443b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar parityti2 \ 444b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar popcountti2 \ 445b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subvti3 \ 446b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ucmpti2 \ 447b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivmodti4 \ 448b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivti3 \ 449b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar umodti3 450b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 4512d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesFUNCTIONS.cc_kext.x86_64h := $(FUNCTIONS.cc_kext.x86_64) 4522d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines 453b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar# FIXME: Currently, compiler-rt is missing implementations for a number of the 454b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar# functions that need to go into libcc_kext.a. Filter them out for now. 455b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarCCKEXT_MISSING_FUNCTIONS := \ 456f442f2622541ce54aea208fbe2ea5b79a104a481Daniel Dunbar cmpdf2 cmpsf2 div0 \ 457f442f2622541ce54aea208fbe2ea5b79a104a481Daniel Dunbar ffssi2 \ 458ce750fdaab5c9c1d013817ad949c9109eb3f2af2Daniel Dunbar udiv_w_sdiv unorddf2 unordsf2 bswapdi2 \ 459b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar bswapsi2 \ 460b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar gcc_bcmp \ 461b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar do_global_dtors \ 462b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.eax i686.get_pc_thunk.ebp i686.get_pc_thunk.ebx \ 463b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.ecx i686.get_pc_thunk.edi i686.get_pc_thunk.edx \ 464b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.esi \ 465b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cdcmpeq aeabi_cdrcmple aeabi_cfcmpeq aeabi_cfrcmple aeabi_dcmpeq \ 466b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmpge aeabi_dcmpgt aeabi_dcmple aeabi_dcmplt aeabi_drsub aeabi_fcmpeq \ 467b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmpge aeabi_fcmpgt aeabi_fcmple aeabi_fcmplt aeabi_frsub aeabi_idivmod \ 468b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_uidivmod 469b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 4707bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.cc_kext.armv7 := \ 4717bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.armv7)) 4727bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.cc_kext.armv7k := \ 4737bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.armv7k)) 4747bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.cc_kext.armv7s := \ 4757bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.armv7s)) 4767bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.cc_kext_ios5.armv7 := \ 4777bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext_ios5.armv7)) 4787bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.cc_kext_ios5.armv7k := \ 4797bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext_ios5.armv7k)) 4807bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarFUNCTIONS.cc_kext_ios5.armv7s := \ 4817bba84ad33054a703634b090a846f6b35861e30dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext_ios5.armv7s)) 482b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.i386 := \ 483b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.i386)) 484b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.x86_64 := \ 485b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.x86_64)) 4862d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen HinesFUNCTIONS.cc_kext.x86_64h := \ 4872d1fdb26e458c4ddc04155c1d421bced3ba90cd0Stephen Hines $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.x86_64h)) 488b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 489d3d22631ca0b314f0564a9bcfe96dd2d6ca85fa6Daniel DunbarKERNEL_USE.cc_kext := 1 4907bba84ad33054a703634b090a846f6b35861e30dDaniel DunbarKERNEL_USE.cc_kext_ios5 := 1 491d3d22631ca0b314f0564a9bcfe96dd2d6ca85fa6Daniel Dunbar 4928b790353436e0815e6b94a018c6e6b314cba9042Daniel DunbarVISIBILITY_HIDDEN := 1 493a69eb9a1a0b111a4776a9bd727f4d551ec308261Evgeniy Stepanov 494a69eb9a1a0b111a4776a9bd727f4d551ec308261Evgeniy StepanovSHARED_LIBRARY_SUFFIX := dylib 495