Only enable RTTI for cxa_demangle.cpp

If testing on Linux+clang proves it needs RTTI, wa can remove the
conditionals.

llvm-svn: 175242
This commit is contained in:
Filipe Cabecinhas 2013-02-15 02:36:40 +00:00
parent 299c0c1c09
commit 2f4ed2a8df
3 changed files with 7 additions and 24 deletions

View File

@ -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

View File

@ -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

View File

@ -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