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 <currojerez@riseup.net>
This commit is contained in:
parent
7a2e9f9778
commit
ce8eadb6e8
|
@ -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])
|
||||
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue