summaryrefslogtreecommitdiff
path: root/make/AppleBI.mk
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2013-11-03 07:06:29 +0000
committerBob Wilson <bob.wilson@apple.com>2013-11-03 07:06:29 +0000
commitf7e6f383d9c661ccbcd986fc1478336f57f4ce7c (patch)
treebd4c752eb8b566a8cfbcf819651befd7896f6dc9 /make/AppleBI.mk
parente4f9f8a1296768a7a6b6646a3b241a379f4a5e15 (diff)
Push back various changes for building Apple's compiler-rt dylib.
These changes had accumulated internally at Apple for no good reason. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@193944 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'make/AppleBI.mk')
-rw-r--r--make/AppleBI.mk46
1 files changed, 42 insertions, 4 deletions
diff --git a/make/AppleBI.mk b/make/AppleBI.mk
index d3d477130..b23615215 100644
--- a/make/AppleBI.mk
+++ b/make/AppleBI.mk
@@ -12,10 +12,14 @@ else
ProjObjRoot := $(ProjSrcRoot)
endif
-ifeq (,$(SDKROOT))
+ifeq (,$(RC_PURPLE))
INSTALL_TARGET = install-MacOSX
else
- INSTALL_TARGET = install-iOS
+ ifeq (,$(RC_INDIGO))
+ INSTALL_TARGET = install-iOS
+ else
+ INSTALL_TARGET = install-iOS-Simulator
+ endif
endif
@@ -61,9 +65,9 @@ $(OBJROOT)/libcompiler_rt-%.dylib : $(OBJROOT)/darwin_bni/Release/%/libcompiler_
-Wl,-upward-lunwind \
-Wl,-upward-lsystem_m \
-Wl,-upward-lsystem_c \
+ -Wl,-upward-lsystem_kernel \
-Wl,-upward-lsystem_platform \
-Wl,-ldyld \
- -Wl,-lsystem_kernel \
-L$(SDKROOT)/usr/lib/system \
$(DYLIB_FLAGS) -Wl,-force_load,$^ -o $@
@@ -88,7 +92,6 @@ install-iOS: $(SYMROOT)/libcompiler_rt-static.a \
$(call GetCNAVar,STRIP,Platform.darwin_bni,Release,) -S $(SYMROOT)/libcompiler_rt.dylib \
-o $(DSTROOT)/usr/lib/system/libcompiler_rt.dylib
-
# Rule to make fat archive
$(SYMROOT)/libcompiler_rt-static.a : $(foreach arch,$(RC_ARCHS), \
$(OBJROOT)/darwin_bni/Static/$(arch)/libcompiler_rt.a)
@@ -109,3 +112,38 @@ $(SYMROOT)/libcompiler_rt-dyld.a : $(foreach arch,$(RC_ARCHS), \
$(OBJROOT)/libcompiler_rt-dyld-$(arch).a)
$(call GetCNAVar,LIPO,Platform.darwin_bni,Release,) -create $^ -o $@
+
+
+# Copy results to DSTROOT.
+install-iOS-Simulator: $(SYMROOT)/libcompiler_rt_sim.dylib \
+ $(SYMROOT)/libcompiler_rt-dyld.a
+ mkdir -p $(DSTROOT)/$(SDKROOT)/usr/lib/system
+ $(call GetCNAVar,STRIP,Platform.darwin_bni,Release,) -S $(SYMROOT)/libcompiler_rt_sim.dylib \
+ -o $(DSTROOT)/$(SDKROOT)/usr/lib/system/libcompiler_rt_sim.dylib
+ mkdir -p $(DSTROOT)/$(SDKROOT)/usr/local/lib/dyld
+ cp $(SYMROOT)/libcompiler_rt-dyld.a \
+ $(DSTROOT)/$(SDKROOT)/usr/local/lib/dyld/libcompiler_rt.a
+
+# Rule to make fat dylib
+$(SYMROOT)/libcompiler_rt_sim.dylib: $(foreach arch,$(RC_ARCHS), \
+ $(OBJROOT)/libcompiler_rt_sim-$(arch).dylib)
+ $(call GetCNAVar,LIPO,Platform.darwin_bni,Release,) -create $^ -o $@
+ $(call GetCNAVar,DSYMUTIL,Platform.darwin_bni,Release,) $@
+
+# Rule to make each dylib slice
+$(OBJROOT)/libcompiler_rt_sim-%.dylib : $(OBJROOT)/darwin_bni/Release/%/libcompiler_rt.a
+ echo "const char vers[] = \"@(#) $(RC_ProjectName)-$(RC_ProjectSourceVersion)\"; " > $(OBJROOT)/version.c
+ $(call GetCNAVar,CC,Platform.darwin_bni,Release,$*) \
+ $(OBJROOT)/version.c -arch $* -dynamiclib \
+ -install_name /usr/lib/system/libcompiler_rt_sim.dylib \
+ -compatibility_version 1 -current_version $(RC_ProjectSourceVersion) \
+ -Wl,-unexported_symbol,___enable_execute_stack \
+ -nostdlib \
+ -Wl,-upward-lunwind_sim \
+ -Wl,-upward-lsystem_sim_m \
+ -Wl,-upward-lsystem_sim_c \
+ -ldyld_sim \
+ -Wl,-upward-lSystem \
+ -umbrella System -Wl,-no_implicit_dylibs -L$(SDKROOT)/usr/lib/system -dead_strip \
+ $(DYLIB_FLAGS) -Wl,-force_load,$^ -o $@
+