[compiler-rt] r193944 - Push back various changes for building Apple's compiler-rt dylib.

Bob Wilson bob.wilson at apple.com
Sun Nov 3 00:06:29 PDT 2013


Author: bwilson
Date: Sun Nov  3 01:06:29 2013
New Revision: 193944

URL: http://llvm.org/viewvc/llvm-project?rev=193944&view=rev
Log:
Push back various changes for building Apple's compiler-rt dylib.

These changes had accumulated internally at Apple for no good reason.

Modified:
    compiler-rt/trunk/lib/apple_versioning.c
    compiler-rt/trunk/make/AppleBI.mk
    compiler-rt/trunk/make/platform/darwin_bni.mk

Modified: compiler-rt/trunk/lib/apple_versioning.c
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/apple_versioning.c?rev=193944&r1=193943&r2=193944&view=diff
==============================================================================
--- compiler-rt/trunk/lib/apple_versioning.c (original)
+++ compiler-rt/trunk/lib/apple_versioning.c Sun Nov  3 01:06:29 2013
@@ -9,19 +9,20 @@
  */
 
 
-
 #if __APPLE__
-  #if __arm__
+  #include <Availability.h>
+  
+  #if __IPHONE_OS_VERSION_MIN_REQUIRED
     #define NOT_HERE_BEFORE_10_6(sym) 
-    #define NOT_HERE_IN_10_8_AND_EARLIER(sym) 
-  #elif __ppc__
-    #define NOT_HERE_BEFORE_10_6(sym) \
-        extern const char sym##_tmp3 __asm("$ld$hide$os10.3$_" #sym ); \
-            __attribute__((visibility("default"))) const char sym##_tmp3 = 0; \
-         extern const char sym##_tmp4 __asm("$ld$hide$os10.4$_" #sym ); \
-            __attribute__((visibility("default"))) const char sym##_tmp4 = 0; \
-        extern const char sym##_tmp5 __asm("$ld$hide$os10.5$_" #sym ); \
-            __attribute__((visibility("default"))) const char sym##_tmp5 = 0; 
+    #define NOT_HERE_IN_10_8_AND_EARLIER(sym) \
+        extern const char sym##_tmp61 __asm("$ld$hide$os6.1$_" #sym ); \
+            __attribute__((visibility("default"))) const char sym##_tmp61 = 0; \
+        extern const char sym##_tmp60 __asm("$ld$hide$os6.0$_" #sym ); \
+            __attribute__((visibility("default"))) const char sym##_tmp60 = 0; \
+        extern const char sym##_tmp51 __asm("$ld$hide$os5.1$_" #sym ); \
+            __attribute__((visibility("default"))) const char sym##_tmp51 = 0; \
+        extern const char sym##_tmp50 __asm("$ld$hide$os5.0$_" #sym ); \
+            __attribute__((visibility("default"))) const char sym##_tmp50 = 0; 
   #else
     #define NOT_HERE_BEFORE_10_6(sym) \
          extern const char sym##_tmp4 __asm("$ld$hide$os10.4$_" #sym ); \
@@ -35,7 +36,7 @@
             __attribute__((visibility("default"))) const char sym##_tmp7 = 0; \
         extern const char sym##_tmp6 __asm("$ld$hide$os10.6$_" #sym ); \
             __attribute__((visibility("default"))) const char sym##_tmp6 = 0; 
-  #endif /* __ppc__ */
+  #endif 
 
 
 /* Symbols in libSystem.dylib in 10.6 and later, 

Modified: compiler-rt/trunk/make/AppleBI.mk
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/make/AppleBI.mk?rev=193944&r1=193943&r2=193944&view=diff
==============================================================================
--- compiler-rt/trunk/make/AppleBI.mk (original)
+++ compiler-rt/trunk/make/AppleBI.mk Sun Nov  3 01:06:29 2013
@@ -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 : $(OB
 	   -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-s
 	$(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 : $(for
                          $(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 $@ 
+

Modified: compiler-rt/trunk/make/platform/darwin_bni.mk
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/make/platform/darwin_bni.mk?rev=193944&r1=193943&r2=193944&view=diff
==============================================================================
--- compiler-rt/trunk/make/platform/darwin_bni.mk (original)
+++ compiler-rt/trunk/make/platform/darwin_bni.mk Sun Nov  3 01:06:29 2013
@@ -9,12 +9,12 @@ Configs := Debug Release Profile Static
 UniversalArchs := $(RC_ARCHS)
 
 ifneq (,$(SDKROOT))
-	override CC := $(shell xcrun -sdk $(SDKROOT) -find clang) 
-	AR := $(shell xcrun -sdk $(SDKROOT) -find ar) 
-	RANLIB := $(shell xcrun -sdk $(SDKROOT) -find ranlib) 
-	STRIP := $(shell xcrun -sdk $(SDKROOT) -find strip) 
-	LIPO := $(shell xcrun -sdk $(SDKROOT) -find lipo)
-	DSYMUTIL := $(shell xcrun -sdk $(SDKROOT) -find dsymutil)
+	override CC := $(shell xcrun -sdk $(SDKROOT) -find clang || echo "false") 
+	AR := $(shell xcrun -sdk $(SDKROOT) -find ar || echo "false") 
+	RANLIB := $(shell xcrun -sdk $(SDKROOT) -find ranlib || echo "false") 
+	STRIP := $(shell xcrun -sdk $(SDKROOT) -find strip || echo "false") 
+	LIPO := $(shell xcrun -sdk $(SDKROOT) -find lipo || echo "false")
+	DSYMUTIL := $(shell xcrun -sdk $(SDKROOT) -find dsymutil || echo "false")
 endif
 
 ifneq ($(IPHONEOS_DEPLOYMENT_TARGET),)





More information about the llvm-commits mailing list