clang_darwin.mk revision 96051e1bd0e4c60a65e8c059a719a4a72b229247
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 \ 1596051e1bd0e4c60a65e8c059a719a4a72b229247Daniel Dunbar if $(CC) -arch $$arch -dumpversion > /dev/null; then \ 1696051e1bd0e4c60a65e8c059a719a4a72b229247Daniel Dunbar result="$$result$$arch "; \ 1796051e1bd0e4c60a65e8c059a719a4a72b229247Daniel Dunbar fi; \ 182f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher done; \ 192f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher echo $$result) 202f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher 212f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher### 222f5efb0238df99509fb8dd53d218065abd8dff8bEric Christopher 234a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel DunbarConfigs := 248b790353436e0815e6b94a018c6e6b314cba9042Daniel DunbarUniversalArchs := 258b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 26ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel Dunbar# Configuration solely for providing access to an eprintf symbol, which may 27ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel Dunbar# still be referenced from Darwin system headers. This symbol is only ever 28ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel Dunbar# needed on i386. 29ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel DunbarConfigs += eprintf 302f5efb0238df99509fb8dd53d218065abd8dff8bEric ChristopherUniversalArchs.eprintf := $(call CheckArches,i386) 31ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel Dunbar 324a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel Dunbar# Configuration for targetting 10.4. We need a few functions missing from 334a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel Dunbar# libgcc_s.10.4.dylib. We only build x86 slices since clang doesn't really 344a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel Dunbar# support targetting PowerPC. 354a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel DunbarConfigs += 10.4 362f5efb0238df99509fb8dd53d218065abd8dff8bEric ChristopherUniversalArchs.10.4 := $(call CheckArches,i386 x86_64) 378b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 38d0dbbc4c9ac73e7a7de8a90408a4982819e1811bDaniel Dunbar# Configuration for targetting iOS, for some ARMv6 functions, which must be 39d0dbbc4c9ac73e7a7de8a90408a4982819e1811bDaniel Dunbar# in the same linkage unit, and for a couple of other functions that didn't 40d0dbbc4c9ac73e7a7de8a90408a4982819e1811bDaniel Dunbar# make it into libSystem. 41d0dbbc4c9ac73e7a7de8a90408a4982819e1811bDaniel DunbarConfigs += ios 422f5efb0238df99509fb8dd53d218065abd8dff8bEric ChristopherUniversalArchs.ios := $(call CheckArches,i386 x86_64 armv6 armv7) 438b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 44b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar# Configuration for use with kernel/kexts. 45b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarConfigs += cc_kext 462f5efb0238df99509fb8dd53d218065abd8dff8bEric ChristopherUniversalArchs.cc_kext := $(call CheckArches,armv6 armv7 i386 x86_64) 47b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 48b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar### 49b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 508b790353436e0815e6b94a018c6e6b314cba9042Daniel DunbarCC := gcc 518b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 52d5feee3db8cf84a5789b728e223988f207b5ecbbDaniel Dunbar# Forcibly strip off any -arch, as that totally breaks our universal support. 53d5feee3db8cf84a5789b728e223988f207b5ecbbDaniel Dunbaroverride CC := $(subst -arch ,-arch_,$(CC)) 54d5feee3db8cf84a5789b728e223988f207b5ecbbDaniel Dunbaroverride CC := $(patsubst -arch_%,,$(CC)) 55d5feee3db8cf84a5789b728e223988f207b5ecbbDaniel Dunbar 56e512f7ffd8b7e6636b4a5cb66b2968b2c3608ff5Daniel DunbarCFLAGS := -Wall -Werror -O3 -fomit-frame-pointer 578b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 5856026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# Always set deployment target arguments for every build, these libraries should 5956026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# never depend on the environmental overrides. We simply set them to minimum 6056026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# supported deployment target -- nothing in the compiler-rt libraries should 6156026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# actually depend on the deployment target. 6256026be8c0582ae073c46b47b81856fb425bf977Daniel DunbarX86_DEPLOYMENT_ARGS := -mmacosx-version-min=10.4 6356026be8c0582ae073c46b47b81856fb425bf977Daniel DunbarARM_DEPLOYMENT_ARGS := -miphoneos-version-min=1.0 6456026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar 6556026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar# If an explicit ARM_SDK build variable is set, use that as the isysroot. 6656026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbarifneq ($(ARM_SDK),) 6756026be8c0582ae073c46b47b81856fb425bf977Daniel DunbarARM_DEPLOYMENT_ARGS += -isysroot $(ARM_SDK) 6856026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbarendif 6956026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar 7056026be8c0582ae073c46b47b81856fb425bf977Daniel DunbarCFLAGS.eprintf := $(CFLAGS) $(X86_DEPLOYMENT_ARGS) 7156026be8c0582ae073c46b47b81856fb425bf977Daniel DunbarCFLAGS.10.4 := $(CFLAGS) $(X86_DEPLOYMENT_ARGS) 72a14b7219a3fbfa3ca0d699db0919f51a762689e2Daniel DunbarCFLAGS.ios.i386 := $(CFLAGS) $(X86_DEPLOYMENT_ARGS) 73a14b7219a3fbfa3ca0d699db0919f51a762689e2Daniel DunbarCFLAGS.ios.x86_64 := $(CFLAGS) $(X86_DEPLOYMENT_ARGS) 74a14b7219a3fbfa3ca0d699db0919f51a762689e2Daniel DunbarCFLAGS.ios.armv6 := $(CFLAGS) $(ARM_DEPLOYMENT_ARGS) 75a14b7219a3fbfa3ca0d699db0919f51a762689e2Daniel DunbarCFLAGS.ios.armv7 := $(CFLAGS) $(ARM_DEPLOYMENT_ARGS) 7656026be8c0582ae073c46b47b81856fb425bf977Daniel DunbarCFLAGS.cc_kext.i386 := $(CFLAGS) $(X86_DEPLOYMENT_ARGS) 7756026be8c0582ae073c46b47b81856fb425bf977Daniel DunbarCFLAGS.cc_kext.x86_64 := $(CFLAGS) $(X86_DEPLOYMENT_ARGS) 7856026be8c0582ae073c46b47b81856fb425bf977Daniel DunbarCFLAGS.cc_kext.armv6 := $(CFLAGS) $(ARM_DEPLOYMENT_ARGS) -mthumb 7956026be8c0582ae073c46b47b81856fb425bf977Daniel DunbarCFLAGS.cc_kext.armv7 := $(CFLAGS) $(ARM_DEPLOYMENT_ARGS) -mthumb 8056026be8c0582ae073c46b47b81856fb425bf977Daniel Dunbar 81ab94fd371211921be9ee3b3c7f9a817bddaff3e3Daniel DunbarFUNCTIONS.eprintf := eprintf 824a32c6e4fdcefa55602615c8fdb756af613a2a8eDaniel DunbarFUNCTIONS.10.4 := eprintf floatundidf floatundisf floatundixf 83d0dbbc4c9ac73e7a7de8a90408a4982819e1811bDaniel Dunbar 84a14b7219a3fbfa3ca0d699db0919f51a762689e2Daniel DunbarFUNCTIONS.ios := divmodsi4 udivmodsi4 85187b4b5773107cdc8bb5c1d122ecf9c603fd6cedDaniel Dunbar# On x86, the divmod functions reference divsi. 86187b4b5773107cdc8bb5c1d122ecf9c603fd6cedDaniel DunbarFUNCTIONS.ios.i386 := $(FUNCTIONS.ios) \ 87187b4b5773107cdc8bb5c1d122ecf9c603fd6cedDaniel Dunbar divsi3 udivsi3 88187b4b5773107cdc8bb5c1d122ecf9c603fd6cedDaniel DunbarFUNCTIONS.ios.x86_64 := $(FUNCTIONS.ios) \ 89187b4b5773107cdc8bb5c1d122ecf9c603fd6cedDaniel Dunbar divsi3 udivsi3 90a14b7219a3fbfa3ca0d699db0919f51a762689e2Daniel DunbarFUNCTIONS.ios.armv6 := $(FUNCTIONS.ios) \ 913d8090e3400bcedb99e7b5b2471d53d9c7d74e8aEric Christopher sync_synchronize \ 92d0dbbc4c9ac73e7a7de8a90408a4982819e1811bDaniel Dunbar switch16 switch32 switch8 switchu8 \ 93d0dbbc4c9ac73e7a7de8a90408a4982819e1811bDaniel Dunbar save_vfp_d8_d15_regs restore_vfp_d8_d15_regs 948b790353436e0815e6b94a018c6e6b314cba9042Daniel Dunbar 95b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarCCKEXT_COMMON_FUNCTIONS := \ 96b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar absvdi2 \ 97b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar absvsi2 \ 98b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar addvdi3 \ 99b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar addvsi3 \ 100b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ashldi3 \ 101b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ashrdi3 \ 102b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar bswapdi2 \ 103b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar bswapsi2 \ 104b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar clzdi2 \ 105b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar clzsi2 \ 106b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar cmpdi2 \ 107b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ctzdi2 \ 108b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ctzsi2 \ 109b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divdc3 \ 110b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divdi3 \ 111b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divsc3 \ 1124c45b931fde3005c8b253ebf7e18035b88e05f52Daniel Dunbar divmodsi4 \ 1134c45b931fde3005c8b253ebf7e18035b88e05f52Daniel Dunbar udivmodsi4 \ 114b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar do_global_dtors \ 115b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar eprintf \ 116b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ffsdi2 \ 117b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixdfdi \ 118b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixsfdi \ 119b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsdfdi \ 120b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsdfsi \ 121b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunssfdi \ 122b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunssfsi \ 123b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatdidf \ 124b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatdisf \ 125b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatundidf \ 126b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatundisf \ 127b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar gcc_bcmp \ 128b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar lshrdi3 \ 129b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar moddi3 \ 130b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar muldc3 \ 131b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar muldi3 \ 132b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulsc3 \ 133b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulvdi3 \ 134b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulvsi3 \ 135b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negdi2 \ 136b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negvdi2 \ 137b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negvsi2 \ 138b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar paritydi2 \ 139b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar paritysi2 \ 140b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar popcountdi2 \ 141b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar popcountsi2 \ 142b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar powidf2 \ 143b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar powisf2 \ 144b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subvdi3 \ 145b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subvsi3 \ 146b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ucmpdi2 \ 147b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udiv_w_sdiv \ 148b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivdi3 \ 149b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivmoddi4 \ 150b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar umoddi3 151b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 152ed9b014382e7af5d62358dd7cddc58598b050fd5Daniel DunbarCCKEXT_ARM_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \ 153b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar adddf3 \ 154b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar addsf3 \ 155b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cdcmpeq \ 156b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cdrcmple \ 157b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cfcmpeq \ 158b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cfrcmple \ 159b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmpeq \ 160b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmpge \ 161b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmpgt \ 162b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmple \ 163b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmplt \ 164b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_drsub \ 165b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmpeq \ 166b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmpge \ 167b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmpgt \ 168b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmple \ 169b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmplt \ 170b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_frsub \ 171b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_idivmod \ 172b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_uidivmod \ 173b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar cmpdf2 \ 174b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar cmpsf2 \ 175b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar div0 \ 176b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divdf3 \ 177b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divsf3 \ 178b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divsi3 \ 179b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar extendsfdf2 \ 180b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ffssi2 \ 181b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixdfsi \ 182b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixsfsi \ 183b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatsidf \ 184b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatsisf \ 185b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatunsidf \ 186b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatunsisf \ 187358b3fd9c3fbdba1e0b8f5ed2aa4a4bfe62375ebDaniel Dunbar comparedf2 \ 188358b3fd9c3fbdba1e0b8f5ed2aa4a4bfe62375ebDaniel Dunbar comparesf2 \ 189b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar modsi3 \ 190b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar muldf3 \ 191b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulsf3 \ 192b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negdf2 \ 193b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negsf2 \ 194b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subdf3 \ 195b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subsf3 \ 196b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar switch16 \ 197b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar switch32 \ 198b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar switch8 \ 199b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar switchu8 \ 200b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar truncdfsf2 \ 201b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivsi3 \ 202b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar umodsi3 \ 203b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar unorddf2 \ 204b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar unordsf2 205b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 206b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.armv6 := $(CCKEXT_ARM_FUNCTIONS) 207b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.armv7 := $(CCKEXT_ARM_FUNCTIONS) 208b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 209b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarCCKEXT_X86_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \ 210b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divxc3 \ 211b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsxfdi \ 212b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsxfsi \ 213b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixxfdi \ 214b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatdixf \ 215b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatundixf \ 216b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulxc3 \ 217b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar powixf2 218b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 219b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.i386 := $(CCKEXT_X86_FUNCTIONS) \ 220b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ffssi2 \ 221b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.eax \ 222b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.ebp \ 223b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.ebx \ 224b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.ecx \ 225b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.edi \ 226b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.edx \ 227b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.esi 228b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 229b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.x86_64 := $(CCKEXT_X86_FUNCTIONS) \ 230b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar absvti2 \ 231b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar addvti3 \ 232b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ashlti3 \ 233b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ashrti3 \ 234b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar clzti2 \ 235b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar cmpti2 \ 236b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ctzti2 \ 237b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar divti3 \ 238b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ffsti2 \ 239b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixdfti \ 240b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixsfti \ 241b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsdfti \ 242b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunssfti \ 243b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixunsxfti \ 244b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar fixxfti \ 245b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floattidf \ 246b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floattisf \ 247b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floattixf \ 248b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatuntidf \ 249b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatuntisf \ 250b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar floatuntixf \ 251b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar lshrti3 \ 252b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar modti3 \ 253b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar multi3 \ 254b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar mulvti3 \ 255b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negti2 \ 256b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar negvti2 \ 257b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar parityti2 \ 258b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar popcountti2 \ 259b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar subvti3 \ 260b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar ucmpti2 \ 261b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivmodti4 \ 262b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar udivti3 \ 263b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar umodti3 264b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 265b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar# FIXME: Currently, compiler-rt is missing implementations for a number of the 266b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar# functions that need to go into libcc_kext.a. Filter them out for now. 267b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarCCKEXT_MISSING_FUNCTIONS := \ 268f442f2622541ce54aea208fbe2ea5b79a104a481Daniel Dunbar cmpdf2 cmpsf2 div0 \ 269f442f2622541ce54aea208fbe2ea5b79a104a481Daniel Dunbar ffssi2 \ 270ce750fdaab5c9c1d013817ad949c9109eb3f2af2Daniel Dunbar udiv_w_sdiv unorddf2 unordsf2 bswapdi2 \ 271b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar bswapsi2 \ 272b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar gcc_bcmp \ 273b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar do_global_dtors \ 274b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.eax i686.get_pc_thunk.ebp i686.get_pc_thunk.ebx \ 275b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.ecx i686.get_pc_thunk.edi i686.get_pc_thunk.edx \ 276b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar i686.get_pc_thunk.esi \ 277b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_cdcmpeq aeabi_cdrcmple aeabi_cfcmpeq aeabi_cfrcmple aeabi_dcmpeq \ 278b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_dcmpge aeabi_dcmpgt aeabi_dcmple aeabi_dcmplt aeabi_drsub aeabi_fcmpeq \ 279b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_fcmpge aeabi_fcmpgt aeabi_fcmple aeabi_fcmplt aeabi_frsub aeabi_idivmod \ 280b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar aeabi_uidivmod 281b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 282b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.armv6 := \ 283b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.armv6)) 284b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.armv7 := \ 285b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.armv7)) 286b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.i386 := \ 287b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.i386)) 288b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel DunbarFUNCTIONS.cc_kext.x86_64 := \ 289b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar $(filter-out $(CCKEXT_MISSING_FUNCTIONS),$(FUNCTIONS.cc_kext.x86_64)) 290b0be8f126f939dc6c7fdcb2489926556e62ed86dDaniel Dunbar 291d3d22631ca0b314f0564a9bcfe96dd2d6ca85fa6Daniel DunbarKERNEL_USE.cc_kext := 1 292d3d22631ca0b314f0564a9bcfe96dd2d6ca85fa6Daniel Dunbar 2938b790353436e0815e6b94a018c6e6b314cba9042Daniel DunbarVISIBILITY_HIDDEN := 1 294