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