From f2d14f41cfaba8b7f13b549c183c6c939670cfad Mon Sep 17 00:00:00 2001 From: rpaulo Date: Thu, 22 Jul 2010 19:09:34 +0000 Subject: 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 --- lib/clang/clang.build.mk | 11 +++++++++++ lib/clang/libllvmcore/Makefile | 1 + lib/clang/libllvmsupport/Makefile | 1 + lib/clang/libllvmsystem/Makefile | 1 + 4 files changed, 14 insertions(+) (limited to 'lib/clang') 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" -- cgit v1.1