summaryrefslogtreecommitdiff
path: root/make
diff options
context:
space:
mode:
Diffstat (limited to 'make')
-rw-r--r--make/AppleBI.mk26
-rw-r--r--make/platform/clang_darwin.mk12
-rw-r--r--make/platform/darwin_bni.mk9
3 files changed, 24 insertions, 23 deletions
diff --git a/make/AppleBI.mk b/make/AppleBI.mk
index 8cbce5fbaf56d..184c16ad84e90 100644
--- a/make/AppleBI.mk
+++ b/make/AppleBI.mk
@@ -14,8 +14,14 @@ endif
ifeq (,$(SDKROOT))
INSTALL_TARGET = install-MacOSX
+ LD_OTHER_FLAGS =
else
INSTALL_TARGET = install-iOS
+ CFLAGS.Release.armv6 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT)
+ CFLAGS.Release.armv7 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT)
+ CFLAGS.Static.armv6 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT)
+ CFLAGS.Static.armv7 := $(CFLAGS) -Wall -Os -fomit-frame-pointer -g -isysroot $(SDKROOT)
+ LD_OTHER_FLAGS = -Wl,-alias_list,$(SRCROOT)/lib/arm/softfloat-alias.list -isysroot $(SDKROOT)
endif
@@ -48,11 +54,11 @@ install-MacOSX : $(SYMROOT)/libcompiler_rt.dylib
# Rule to make each dylib slice
$(OBJROOT)/libcompiler_rt-%.dylib : $(OBJROOT)/darwin_bni/Release/%/libcompiler_rt.a
echo "const char vers[] = \"@(#) $(RC_ProjectName)-$(RC_ProjectSourceVersion)\"; " > $(OBJROOT)/version.c
- cc $(OBJROOT)/version.c -arch $* -dynamiclib \
+ $(CC.Release) $(OBJROOT)/version.c -arch $* -dynamiclib \
-install_name /usr/lib/system/libcompiler_rt.dylib \
-compatibility_version 1 -current_version $(RC_ProjectSourceVersion) \
-nodefaultlibs -lSystem -umbrella System -dead_strip \
- -Wl,-force_load,$^ -o $@
+ $(LD_OTHER_FLAGS) -Wl,-force_load,$^ -o $@
# Rule to make fat dylib
$(SYMROOT)/libcompiler_rt.dylib: $(foreach arch,$(RC_ARCHS), \
@@ -63,19 +69,15 @@ $(SYMROOT)/libcompiler_rt.dylib: $(foreach arch,$(RC_ARCHS), \
# Copy results to DSTROOT.
-install-iOS: $(SYMROOT)/libcompiler_rt.a $(SYMROOT)/libcompiler_rt-static.a
- mkdir -p $(DSTROOT)/usr/local/lib/libgcc
- cp $(SYMROOT)/libcompiler_rt.a \
- $(DSTROOT)/usr/local/lib/libgcc/libcompiler_rt.a
- mkdir -p $(DSTROOT)/usr/local/
+install-iOS: $(SYMROOT)/libcompiler_rt-static.a \
+ $(SYMROOT)/libcompiler_rt.dylib
+ mkdir -p $(DSTROOT)/usr/local/lib
cp $(SYMROOT)/libcompiler_rt-static.a \
$(DSTROOT)/usr/local/lib/libcompiler_rt-static.a
+ mkdir -p $(DSTROOT)/usr/lib/system
+ strip -S $(SYMROOT)/libcompiler_rt.dylib \
+ -o $(DSTROOT)/usr/lib/system/libcompiler_rt.dylib
-
-# 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), \
diff --git a/make/platform/clang_darwin.mk b/make/platform/clang_darwin.mk
index 23cd3a42f86aa..a29793991ebb2 100644
--- a/make/platform/clang_darwin.mk
+++ b/make/platform/clang_darwin.mk
@@ -28,11 +28,7 @@ UniversalArchs.armv6 := armv6
# Configuration for use with kernel/kexts.
Configs += cc_kext
-UniversalArchs.cc_kext := armv6 i386 x86_64
-
-# FIXME: Don't build an armv7 slice currently, they have the same functions.
-#
-#UniversalArchs.cc_kext := armv6 armv7 i386 x86_64
+UniversalArchs.cc_kext := armv6 armv7 i386 x86_64
###
@@ -58,7 +54,6 @@ CCKEXT_COMMON_FUNCTIONS := \
ashrdi3 \
bswapdi2 \
bswapsi2 \
- clear_cache \
clzdi2 \
clzsi2 \
cmpdi2 \
@@ -105,7 +100,7 @@ CCKEXT_COMMON_FUNCTIONS := \
udivmoddi4 \
umoddi3
-CCKEXT_ARM_FUNCTIONS := $(CCKEXT_COMMON_FUNCTONS) \
+CCKEXT_ARM_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \
adddf3 \
addsf3 \
aeabi_cdcmpeq \
@@ -164,6 +159,9 @@ CCKEXT_ARM_FUNCTIONS := $(CCKEXT_COMMON_FUNCTONS) \
FUNCTIONS.cc_kext.armv6 := $(CCKEXT_ARM_FUNCTIONS)
FUNCTIONS.cc_kext.armv7 := $(CCKEXT_ARM_FUNCTIONS)
+CFLAGS.cc_kext.armv6 := $(CFLAGS) -mthumb
+CFLAGS.cc_kext.armv7 := $(CFLAGS) -mthumb
+
CCKEXT_X86_FUNCTIONS := $(CCKEXT_COMMON_FUNCTIONS) \
divxc3 \
fixunsxfdi \
diff --git a/make/platform/darwin_bni.mk b/make/platform/darwin_bni.mk
index ec859f3b5d6e0..f15334f31943d 100644
--- a/make/platform/darwin_bni.mk
+++ b/make/platform/darwin_bni.mk
@@ -61,10 +61,10 @@ FUNCTIONS.armv5 := $(FUNCTIONS) \
muldf3 mulsf3 \
negdf2 negsf2 \
truncdfsf2 \
- modsi3 umodsi3 udivsi3 divsi3 \
+ modsi3 umodsi3 udivsi3 divsi3 udivmodsi4 divmodsi4 \
switch8 switchu8 switch16 switch32 \
sync_synchronize
-
+
FUNCTIONS.armv6 := $(FUNCTIONS) \
comparedf2 comparesf2 \
adddf3vfp addsf3vfp bswapdi2 bswapsi2 divdf3vfp \
@@ -76,10 +76,11 @@ FUNCTIONS.armv6 := $(FUNCTIONS) \
muldf3vfp mulsf3vfp \
nedf2vfp nesf2vfp \
subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \
- modsi3 umodsi3 udivsi3 divsi3 \
+ modsi3 umodsi3 udivsi3 divsi3 udivmodsi4 divmodsi4 \
switch8 switchu8 switch16 switch32 \
restore_vfp_d8_d15_regs save_vfp_d8_d15_regs \
sync_synchronize
+
FUNCTIONS.armv7 := $(FUNCTIONS) \
comparedf2 comparesf2 \
adddf3vfp addsf3vfp bswapdi2 bswapsi2 divdf3vfp \
@@ -91,5 +92,5 @@ FUNCTIONS.armv7 := $(FUNCTIONS) \
muldf3vfp mulsf3vfp \
nedf2vfp nesf2vfp \
subdf3vfp subsf3vfp truncdfsf2vfp unorddf2vfp unordsf2vfp \
- modsi3 umodsi3 udivsi3 divsi3
+ modsi3 umodsi3 udivsi3 divsi3 udivmodsi4 divmodsi4