1 # These are the functions which clang needs when it is targetting a previous 2 # version of the OS. The issue is that the backend may use functions which were 3 # not present in the libgcc that shipped on the platform. In such cases, we link 4 # with a version of the library which contains private_extern definitions of all 5 # the extra functions which might be referenced. 6 7 Description := Static runtime libraries for clang/Darwin. 8 9 Configs := 10 UniversalArchs := 11 12 # Configuration for targetting 10.4. We need a few functions missing from 13 # libgcc_s.10.4.dylib. We only build x86 slices since clang doesn't really 14 # support targetting PowerPC. 15 Configs += 10.4 16 UniversalArchs.10.4 := i386 x86_64 17 18 # Configuration for targetting armv6. We need a few additional functions which 19 # must be in the same linkage unit. 20 Configs += armv6 21 UniversalArchs.armv6 := armv6 22 23 CC := gcc 24 25 # Forcibly strip off any -arch, as that totally breaks our universal support. 26 override CC := $(subst -arch ,-arch_,$(CC)) 27 override CC := $(patsubst -arch_%,,$(CC)) 28 29 CFLAGS := -Wall -Werror -O3 -fomit-frame-pointer 30 31 FUNCTIONS.10.4 := eprintf floatundidf floatundisf floatundixf 32 FUNCTIONS.armv6 := switch16 switch32 switch8 switchu8 \ 33 save_vfp_d8_d15_regs restore_vfp_d8_d15_regs 34 35 VISIBILITY_HIDDEN := 1 36