summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compiler-rt/make/platform/clang_darwin.mk30
1 files changed, 30 insertions, 0 deletions
diff --git a/compiler-rt/make/platform/clang_darwin.mk b/compiler-rt/make/platform/clang_darwin.mk
new file mode 100644
index 00000000000..953ef91645d
--- /dev/null
+++ b/compiler-rt/make/platform/clang_darwin.mk
@@ -0,0 +1,30 @@
+# These are the functions which clang needs when it is targetting a previous
+# version of the OS. The issue is that the backend may use functions which were
+# not present in the libgcc that shipped on the platform. In such cases, we link
+# with a version of the library which contains private_extern definitions of all
+# the extra functions which might be referenced.
+
+Description := Static runtime libraries for clang/Darwin.
+
+Configs :=
+UniversalArchs :=
+
+# Configuration for targetting 10.4 on x86. We need a few functions missing from
+# libgcc_s.10.4.dylib.
+Configs += x86_10.4
+UniversalArchs.x86_10.4 := i386 x86_64
+
+# Configuration for targetting armv6. We need a few additional functions which
+# must be in the same linkage unit.
+Configs += armv6
+UniversalArchs.armv6 := armv6
+
+CC := gcc
+
+CFLAGS := -Wall -Werror -O3 -fomit-frame-pointer
+
+FUNCTIONS.x86_10.4 := floatundidf floatundisf floatundixf
+FUNCTIONS.armv6 := switch16 switch32 switch8 switchu8 \
+ save_vfp_d8_d15_regs restore_vfp_d8_d15_regs
+
+VISIBILITY_HIDDEN := 1
OpenPOWER on IntegriCloud