diff options
author | Nick Kledzik <kledzik@apple.com> | 2010-04-21 22:46:53 +0000 |
---|---|---|
committer | Nick Kledzik <kledzik@apple.com> | 2010-04-21 22:46:53 +0000 |
commit | afb7b6e421785106a7e13e13c2a5320e3f1d9bd3 (patch) | |
tree | 919a72712b239958904602d99f7f69327b7882c6 /make | |
parent | d016b38b065fbe3e22584728c3b8bc55fc8a5f9c (diff) |
improve arm build support on darwin
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@102032 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'make')
-rw-r--r-- | make/AppleBI.mk | 36 | ||||
-rw-r--r-- | make/platform/darwin_bni.mk | 24 |
2 files changed, 53 insertions, 7 deletions
diff --git a/make/AppleBI.mk b/make/AppleBI.mk index 66a9036e0..7d2ad9e5e 100644 --- a/make/AppleBI.mk +++ b/make/AppleBI.mk @@ -12,6 +12,13 @@ else ProjObjRoot := $(ProjSrcRoot) endif +ifeq (,$(SDKROOT)) + INSTALL_TARGET = install-MacOSX +else + INSTALL_TARGET = install-iPhoneOS +endif + + # Log full compile lines in B&I logs and omit summary lines. Verb := Summary := @true @@ -27,8 +34,10 @@ installsrc: cp -r . $(SRCROOT) +install: $(INSTALL_TARGET) + # Copy results to DSTROOT. -install: $(SYMROOT)/libcompiler_rt.dylib +install-MacOSX : $(SYMROOT)/libcompiler_rt.dylib mkdir -p $(DSTROOT)/usr/lib/system strip -S $(SYMROOT)/libcompiler_rt.dylib \ -o $(DSTROOT)/usr/lib/system/libcompiler_rt.dylib @@ -47,6 +56,29 @@ $(OBJROOT)/libcompiler_rt-%.dylib : $(OBJROOT)/darwin_bni/Release/%/libcompiler_ # Rule to make fat dylib $(SYMROOT)/libcompiler_rt.dylib: $(foreach arch,$(RC_ARCHS), \ - $(OBJROOT)/libcompiler_rt-$(arch).dylib) + $(OBJROOT)/libcompiler_rt-$(arch).dylib) + lipo -create $^ -o $@ + + + + +# Copy results to DSTROOT. +install-iPhoneOS: $(SYMROOT)/libcompiler_rt.a $(SYMROOT)/libcompiler_rt-static.a + mkdir -p $(DSTROOT)/$(SDKROOT)/usr/local/lib/libgcc + cp $(SYMROOT)/libcompiler_rt.a \ + $(DSTROOT)/$(SDKROOT)/usr/local/lib/libgcc/libcompiler_rt.a + mkdir -p $(DSTROOT)/$(SDKROOT)/usr/local/ + cp $(SYMROOT)/libcompiler_rt-static.a \ + $(DSTROOT)/$(SDKROOT)/usr/local/lib/libcompiler_rt-static.a + + +# Rule to make fat archive +$(SYMROOT)/libcompiler_rt.a : $(foreach arch,$(RC_ARCHS), \ + $(OBJROOT)/darwin_bni/Release/$(arch)/libcompiler_rt.a) + lipo -create $^ -o $@ + +# Rule to make fat archive +$(SYMROOT)/libcompiler_rt-static.a : $(foreach arch,$(RC_ARCHS), \ + $(OBJROOT)/darwin_bni/Static/$(arch)/libcompiler_rt.a) lipo -create $^ -o $@ diff --git a/make/platform/darwin_bni.mk b/make/platform/darwin_bni.mk index 74698a194..202ab7e43 100644 --- a/make/platform/darwin_bni.mk +++ b/make/platform/darwin_bni.mk @@ -1,7 +1,7 @@ Description := Target for Darwin using an Apple-style build. -Configs := Debug Release Profile +Configs := Debug Release Profile Static # We override this with RC_ARCHS because B&I may want to build on an ARCH we # haven't explicitly defined support for. If all goes well, this will just work @@ -10,6 +10,10 @@ UniversalArchs := $(RC_ARCHS) CFLAGS := -Wall -Os -fomit-frame-pointer -g +CFLAGS.Static := $(CFLAGS) -static + +VISIBILITY_HIDDEN := 0 +VISIBILITY_HIDDEN.Static := 1 FUNCTIONS := absvdi2 absvsi2 addvdi3 addvsi3 ashldi3 ashrdi3 \ @@ -53,8 +57,18 @@ FUNCTIONS.armv6 := $(FUNCTIONS) \ nedf2vfp negdf2vfp negsf2vfp nesf2vfp \ subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \ modsi3 umodsi3 udivsi3 divsi3 \ - switch8 switchu8 switch16 switch32 \ - restore_vfp_d8_d15_regs save_vfp_d8_d15_regs \ - sync_synchronize + switch8 switchu8 switch16 switch32 \ + restore_vfp_d8_d15_regs save_vfp_d8_d15_regs \ + sync_synchronize +FUNCTIONS.armv7 := $(FUNCTIONS) \ + adddf3vfp addsf3vfp bswapdi2 bswapsi2 divdf3vfp \ + divsf3vfp eqdf2vfp eqsf2vfp extendsfdf2vfp \ + fixdfsivfp fixsfsivfp fixunsdfsivfp fixunssfsivfp \ + floatsidfvfp floatsisfvfp floatunssidfvfp floatunssisfvfp \ + gedf2vfp gesf2vfp gtdf2vfp gtsf2vfp \ + ledf2vfp lesf2vfp ltdf2vfp ltsf2vfp \ + muldf3vfp mulsf3vfp \ + nedf2vfp negdf2vfp negsf2vfp nesf2vfp \ + subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \ + modsi3 umodsi3 udivsi3 divsi3 -VISIBILITY_HIDDEN := 0 |