From ce8eadb6e8adc24f675b364e0620dbf1c9e079a8 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Sat, 12 Oct 2013 17:12:31 +0000 Subject: [PATCH] build: remove forced -fno-rtti * As discussed on the mailing list, forced no-rtti breaks C++ public API's such as the Haiku C++ libGL.so * -fno-rtti *can* be still set however instead of blindly forcing -fno-rtti, we can rely on the llvm-config --cppflags output. If the system llvm is built without rtti (default), the no-rtti flag will be present in llvm-config --cppflags (which we pick up on) If llvm is built with rtti (REQUIRES_RTTI=1), then -fno-rtti is removed from llvm-config --cppflags. * We could selectively add / remove rtti from various components, however mixing rtti and non-rtti code is tricky and could introduce missing symbols. * This needs impact tested. Reviewed-by: Francisco Jerez --- configure.ac | 1 - scons/llvm.py | 3 --- src/gallium/auxiliary/Makefile.am | 6 ------ 3 files changed, 10 deletions(-) diff --git a/configure.ac b/configure.ac index c68e14b44c0..309b49385ba 100644 --- a/configure.ac +++ b/configure.ac @@ -1931,7 +1931,6 @@ AM_CONDITIONAL(HAVE_LOADER_GALLIUM, test x$enable_gallium_loader = xyes) AM_CONDITIONAL(HAVE_DRM_LOADER_GALLIUM, test x$enable_gallium_drm_loader = xyes) AM_CONDITIONAL(HAVE_GALLIUM_COMPUTE, test x$enable_opencl = xyes) AM_CONDITIONAL(HAVE_MESA_LLVM, test x$MESA_LLVM = x1) -AM_CONDITIONAL(LLVM_NEEDS_FNORTTI, test $LLVM_VERSION_INT -ge 302) AC_SUBST([ELF_LIB]) diff --git a/scons/llvm.py b/scons/llvm.py index 7cd609c2095..c1c37362d3c 100644 --- a/scons/llvm.py +++ b/scons/llvm.py @@ -195,9 +195,6 @@ def generate(env): if llvm_version >= distutils.version.LooseVersion('3.1'): components.append('mcjit') - if llvm_version >= distutils.version.LooseVersion('3.2'): - env.Append(CXXFLAGS = ('-fno-rtti',)) - env.ParseConfig('llvm-config --libs ' + ' '.join(components)) env.ParseConfig('llvm-config --ldflags') except OSError: diff --git a/src/gallium/auxiliary/Makefile.am b/src/gallium/auxiliary/Makefile.am index 670e1248de9..2d2d8d4846e 100644 --- a/src/gallium/auxiliary/Makefile.am +++ b/src/gallium/auxiliary/Makefile.am @@ -25,12 +25,6 @@ AM_CXXFLAGS += \ $(GALLIUM_CFLAGS) \ $(LLVM_CXXFLAGS) -if LLVM_NEEDS_FNORTTI - -AM_CXXFLAGS += -fno-rtti - -endif - libgallium_la_SOURCES += \ $(GALLIVM_SOURCES) \ $(GALLIVM_CPP_SOURCES) -- 2.11.0