From: Filipe Cabecinhas Date: Fri, 15 Feb 2013 02:36:40 +0000 (+0000) Subject: Only enable RTTI for cxa_demangle.cpp X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2f4ed2a8df1d4fb8c536c2f3b9de964ca9210866;p=platform%2Fupstream%2Fllvm.git Only enable RTTI for cxa_demangle.cpp If testing on Linux+clang proves it needs RTTI, wa can remove the conditionals. llvm-svn: 175242 --- diff --git a/lldb/source/Core/Makefile b/lldb/source/Core/Makefile index 5278dc5..78b7e3d 100644 --- a/lldb/source/Core/Makefile +++ b/lldb/source/Core/Makefile @@ -11,15 +11,16 @@ LLDB_LEVEL := ../.. LIBRARYNAME := lldbCore BUILD_ARCHIVE = 1 +include $(LLDB_LEVEL)/Makefile + # 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. +# complain if we try to compile it with -fno-rtti. $(info shell basename CXX is $(shell basename $(CXX))) ifeq (g++,$(shell basename $(CXX))) - REQUIRES_RTTI = 1 +$(ObjDir)/cxa_demangle.o: Compile.CXX := $(filter-out -fno-rtti,$(Compile.CXX)) -frtti endif -include $(LLDB_LEVEL)/Makefile +ifeq (Darwin,$(shell uname -s)) +$(ObjDir)/cxa_demangle.o: Compile.CXX := $(filter-out -fno-rtti,$(Compile.CXX)) -frtti +endif diff --git a/lldb/source/DataFormatters/Makefile b/lldb/source/DataFormatters/Makefile index 465f889..4eb3249 100644 --- a/lldb/source/DataFormatters/Makefile +++ b/lldb/source/DataFormatters/Makefile @@ -11,15 +11,4 @@ LLDB_LEVEL := ../.. LIBRARYNAME := lldbDataFormatters 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 diff --git a/lldb/source/Utility/Makefile b/lldb/source/Utility/Makefile index 3997da3..13bcd83 100644 --- a/lldb/source/Utility/Makefile +++ b/lldb/source/Utility/Makefile @@ -12,11 +12,4 @@ LIBRARYNAME := lldbUtility 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