[Lldb-commits] [lldb] r169767 - in /lldb/trunk: lib/Makefile source/Core/Makefile source/Utility/Makefile

Daniel Malea daniel.malea at intel.com
Mon Dec 10 13:05:57 PST 2012


Author: dmalea
Date: Mon Dec 10 15:05:57 2012
New Revision: 169767

URL: http://llvm.org/viewvc/llvm-project?rev=169767&view=rev
Log:
Enable RTTI for liblldbCore.a when GCC is the compiler
- gcc does not like -fno-rtti mixed with dynamic_cast<> (in cxa_demangle.cpp)


Modified:
    lldb/trunk/lib/Makefile
    lldb/trunk/source/Core/Makefile
    lldb/trunk/source/Utility/Makefile

Modified: lldb/trunk/lib/Makefile
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/lib/Makefile?rev=169767&r1=169766&r2=169767&view=diff
==============================================================================
--- lldb/trunk/lib/Makefile (original)
+++ lldb/trunk/lib/Makefile Mon Dec 10 15:05:57 2012
@@ -67,6 +67,14 @@
 	lldbPluginPlatformLinux.a \
 	lldbPluginPlatformFreeBSD.a
 
+# Because GCC requires RTTI enabled for lldbCore (see source/Core/Makefile) it is
+# necessary to also link the clang rewriter libraries so vtable references can
+# be resolved correctly, if we are building with GCC.
+ifeq (g++,$(shell basename $(CXX)))
+  USEDLIBS += clangRewriteCore.a \
+              clangRewriteFrontend.a
+endif
+
 include $(LLDB_LEVEL)/../../Makefile.config
 
 LINK_COMPONENTS := $(TARGETS_TO_BUILD) asmparser bitreader bitwriter codegen \

Modified: lldb/trunk/source/Core/Makefile
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Makefile?rev=169767&r1=169766&r2=169767&view=diff
==============================================================================
--- lldb/trunk/source/Core/Makefile (original)
+++ lldb/trunk/source/Core/Makefile Mon Dec 10 15:05:57 2012
@@ -11,4 +11,15 @@
 LIBRARYNAME := lldbCore
 BUILD_ARCHIVE = 1
 
+# Enable RTTI on GCC builds because one source file in this directory
+# (cxa_demangle.cpp) uses dynamic_cast<> and GCC (at least 4.6 and 4.7)
+# complain if we try to compile it with -fno-rtti. This is somewhat of a
+# kludge because it forces us to enable RTTI in liblldbUtility.a and also
+# link in additional clang static libraries to resolve vtable references,
+# but actually has negligible impact on (shard object) file size.
+$(info shell basename CXX is $(shell basename $(CXX)))
+ifeq (g++,$(shell basename $(CXX)))
+  REQUIRES_RTTI = 1
+endif
+
 include $(LLDB_LEVEL)/Makefile

Modified: lldb/trunk/source/Utility/Makefile
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/Makefile?rev=169767&r1=169766&r2=169767&view=diff
==============================================================================
--- lldb/trunk/source/Utility/Makefile (original)
+++ lldb/trunk/source/Utility/Makefile Mon Dec 10 15:05:57 2012
@@ -12,4 +12,11 @@
 BUILD_ARCHIVE = 1
 NO_PEDANTIC = 1
 
+# Enable RTTI on GCC builds because liblldbCore.a requires RTTI.
+# See source/Core/Makefile for details.
+ifeq (g++,$(shell basename $(CXX)))
+  REQUIRES_RTTI = 1
+endif
+
+
 include $(LLDB_LEVEL)/Makefile





More information about the lldb-commits mailing list