177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# These are the functions which clang needs when it is targetting a previous 277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# version of the OS. The issue is that the backend may use functions which were 377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# not present in the libgcc that shipped on the platform. In such cases, we link 477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# with a version of the library which contains private_extern definitions of all 577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# the extra functions which might be referenced. 677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoDescription := Static runtime libraries for clang/Darwin. 877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoConfigs := 1077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoUniversalArchs := 1177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 1277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# Configuration for targetting 10.4. We need a few functions missing from 1377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# libgcc_s.10.4.dylib. We only build x86 slices since clang doesn't really 1477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# support targetting PowerPC. 1577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoConfigs += 10.4 1677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoUniversalArchs.10.4 := i386 x86_64 1777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 1877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# Configuration for targetting armv6. We need a few additional functions which 1977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# must be in the same linkage unit. 2077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoConfigs += armv6 2177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoUniversalArchs.armv6 := armv6 2277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 2377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoCC := gcc 2477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 2577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao# Forcibly strip off any -arch, as that totally breaks our universal support. 2677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaooverride CC := $(subst -arch ,-arch_,$(CC)) 2777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaooverride CC := $(patsubst -arch_%,,$(CC)) 2877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 2977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoCFLAGS := -Wall -Werror -O3 -fomit-frame-pointer 3077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 3177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoFUNCTIONS.10.4 := eprintf floatundidf floatundisf floatundixf 3277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoFUNCTIONS.armv6 := switch16 switch32 switch8 switchu8 \ 3377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao save_vfp_d8_d15_regs restore_vfp_d8_d15_regs 3477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao 3577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei LiaoVISIBILITY_HIDDEN := 1 36