OSDN Git Service

build: remove forced -fno-rtti
authorAlexander von Gluck IV <kallisti5@unixzen.com>
Sat, 12 Oct 2013 17:12:31 +0000 (17:12 +0000)
committerAlexander von Gluck IV <kallisti5@unixzen.com>
Tue, 15 Oct 2013 04:00:55 +0000 (23:00 -0500)
* 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>
configure.ac
scons/llvm.py
src/gallium/auxiliary/Makefile.am

index c68e14b..309b493 100644 (file)
@@ -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])
 
index 7cd609c..c1c3736 100644 (file)
@@ -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:
index 670e124..2d2d8d4 100644 (file)
@@ -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)