summaryrefslogtreecommitdiff
path: root/make
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2010-01-19 00:01:22 +0000
committerDaniel Dunbar <daniel@zuster.org>2010-01-19 00:01:22 +0000
commit8b790353436e0815e6b94a018c6e6b314cba9042 (patch)
tree90cf4594f01177d8e7fa71b9b377a591fa79c8c2 /make
parent06f38e5fc22bbeadabc1be11eb77f6d27cd3140c (diff)
Add .mk for use by clang/Darwin.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@93817 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'make')
-rw-r--r--make/platform/clang_darwin.mk30
1 files changed, 30 insertions, 0 deletions
diff --git a/make/platform/clang_darwin.mk b/make/platform/clang_darwin.mk
new file mode 100644
index 000000000..953ef9164
--- /dev/null
+++ b/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