summaryrefslogtreecommitdiffstats
path: root/lib/clang
diff options
context:
space:
mode:
authorrpaulo <rpaulo@FreeBSD.org>2010-07-22 19:09:34 +0000
committerrpaulo <rpaulo@FreeBSD.org>2010-07-22 19:09:34 +0000
commitf2d14f41cfaba8b7f13b549c183c6c939670cfad (patch)
tree8f739694685ee950c59aaa294112a414c90d2028 /lib/clang
parent85cc5d9d3e19a527f230ceab8f6e2f965484aae8 (diff)
downloadFreeBSD-src-f2d14f41cfaba8b7f13b549c183c6c939670cfad.zip
FreeBSD-src-f2d14f41cfaba8b7f13b549c183c6c939670cfad.tar.gz
Build clang libraries by default with -fno-exceptions and with
-fno-rtti. The clang libaries that really use exceptions and virtual functions can enable LLVM_REQUIRES_EH and LLVM_REQUIRES_RTTI respectively. This saves space on the resulting binaries and follows what's being done upstream. Submitted by: Dimitry Andric <dimitry at andric.com>
Diffstat (limited to 'lib/clang')
-rw-r--r--lib/clang/clang.build.mk11
-rw-r--r--lib/clang/libllvmcore/Makefile1
-rw-r--r--lib/clang/libllvmsupport/Makefile1
-rw-r--r--lib/clang/libllvmsystem/Makefile1
4 files changed, 14 insertions, 0 deletions
diff --git a/lib/clang/clang.build.mk b/lib/clang/clang.build.mk
index fad4317..6351eda 100644
--- a/lib/clang/clang.build.mk
+++ b/lib/clang/clang.build.mk
@@ -17,6 +17,17 @@ TARGET_ARCH?= ${MACHINE_ARCH}
# XXX: 8.0, to keep __FreeBSD_cc_version happy
CFLAGS+=-DLLVM_HOSTTRIPLE=\"${TARGET_ARCH}-undermydesk-freebsd9.0\"
+.ifndef LLVM_REQUIRES_EH
+CFLAGS+=-fno-exceptions
+.else
+# If the library or program requires EH, it also requires RTTI.
+LLVM_REQUIRES_RTTI=
+.endif
+
+.ifndef LLVM_REQUIRES_RTTI
+CFLAGS+=-fno-rtti
+.endif
+
.PATH: ${LLVM_SRCS}/${SRCDIR}
TBLGEN=tblgen ${CFLAGS:M-I*}
diff --git a/lib/clang/libllvmcore/Makefile b/lib/clang/libllvmcore/Makefile
index 1215f4e..4fa5471 100644
--- a/lib/clang/libllvmcore/Makefile
+++ b/lib/clang/libllvmcore/Makefile
@@ -35,6 +35,7 @@ SRCS= AsmWriter.cpp \
ValueSymbolTable.cpp \
ValueTypes.cpp \
Verifier.cpp
+LLVM_REQUIRES_RTTI=
TGHDRS= Intrinsics
diff --git a/lib/clang/libllvmsupport/Makefile b/lib/clang/libllvmsupport/Makefile
index 3a96db2..1ed069e 100644
--- a/lib/clang/libllvmsupport/Makefile
+++ b/lib/clang/libllvmsupport/Makefile
@@ -48,5 +48,6 @@ SRCS= APFloat.cpp \
regexec.c \
regfree.c \
regstrlcpy.c
+LLVM_REQUIRES_RTTI=
.include "../clang.lib.mk"
diff --git a/lib/clang/libllvmsystem/Makefile b/lib/clang/libllvmsystem/Makefile
index ae8cdc9..0c08ec2 100644
--- a/lib/clang/libllvmsystem/Makefile
+++ b/lib/clang/libllvmsystem/Makefile
@@ -22,5 +22,6 @@ SRCS= Alarm.cpp \
Threading.cpp \
TimeValue.cpp \
Valgrind.cpp
+LLVM_REQUIRES_RTTI=
.include "../clang.lib.mk"
OpenPOWER on IntegriCloud