Author: rpaulo
Date: Thu Jul 22 19:09:34 2010
New Revision: 210388
URL: http://svn.freebsd.org/changeset/base/210388

Log:
  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>

Modified:
  head/lib/clang/clang.build.mk
  head/lib/clang/libllvmcore/Makefile
  head/lib/clang/libllvmsupport/Makefile
  head/lib/clang/libllvmsystem/Makefile
  head/usr.bin/clang/tblgen/Makefile

Modified: head/lib/clang/clang.build.mk
==============================================================================
--- head/lib/clang/clang.build.mk       Thu Jul 22 18:57:47 2010        
(r210387)
+++ head/lib/clang/clang.build.mk       Thu Jul 22 19:09:34 2010        
(r210388)
@@ -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*}

Modified: head/lib/clang/libllvmcore/Makefile
==============================================================================
--- head/lib/clang/libllvmcore/Makefile Thu Jul 22 18:57:47 2010        
(r210387)
+++ head/lib/clang/libllvmcore/Makefile Thu Jul 22 19:09:34 2010        
(r210388)
@@ -35,6 +35,7 @@ SRCS= AsmWriter.cpp \
        ValueSymbolTable.cpp \
        ValueTypes.cpp \
        Verifier.cpp
+LLVM_REQUIRES_RTTI=
 
 TGHDRS=        Intrinsics
 

Modified: head/lib/clang/libllvmsupport/Makefile
==============================================================================
--- head/lib/clang/libllvmsupport/Makefile      Thu Jul 22 18:57:47 2010        
(r210387)
+++ head/lib/clang/libllvmsupport/Makefile      Thu Jul 22 19:09:34 2010        
(r210388)
@@ -48,5 +48,6 @@ SRCS= APFloat.cpp \
        regexec.c \
        regfree.c \
        regstrlcpy.c
+LLVM_REQUIRES_RTTI=
 
 .include "../clang.lib.mk"

Modified: head/lib/clang/libllvmsystem/Makefile
==============================================================================
--- head/lib/clang/libllvmsystem/Makefile       Thu Jul 22 18:57:47 2010        
(r210387)
+++ head/lib/clang/libllvmsystem/Makefile       Thu Jul 22 19:09:34 2010        
(r210388)
@@ -22,5 +22,6 @@ SRCS= Alarm.cpp \
        Threading.cpp \
        TimeValue.cpp \
        Valgrind.cpp
+LLVM_REQUIRES_RTTI=
 
 .include "../clang.lib.mk"

Modified: head/usr.bin/clang/tblgen/Makefile
==============================================================================
--- head/usr.bin/clang/tblgen/Makefile  Thu Jul 22 18:57:47 2010        
(r210387)
+++ head/usr.bin/clang/tblgen/Makefile  Thu Jul 22 19:09:34 2010        
(r210388)
@@ -40,6 +40,7 @@ SRCS= ARMDecoderEmitter.cpp \
        X86DisassemblerTables.cpp \
        X86RecognizableInstr.cpp
 MAN=
+LLVM_REQUIRES_EH=
 
 LIBDEPS=llvmsupport llvmsystem
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to