diff options
author | Alexander von Gluck IV <[email protected]> | 2013-10-12 17:12:31 +0000 |
---|---|---|
committer | Alexander von Gluck IV <[email protected]> | 2013-10-14 23:00:55 -0500 |
commit | ce8eadb6e8adc24f675b364e0620dbf1c9e079a8 (patch) | |
tree | db0054c851e503805e9e61f98ea5f69e67b3a4fc | |
parent | 7a2e9f9778473a812ce372a25cc4b6e791b355cf (diff) |
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 <[email protected]>
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | scons/llvm.py | 3 | ||||
-rw-r--r-- | src/gallium/auxiliary/Makefile.am | 6 |
3 files changed, 0 insertions, 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) |