[Mesa-dev] [PATCH] build: remove forced -fno-rtti
Francisco Jerez
currojerez at riseup.net
Tue Oct 15 01:57:20 CEST 2013
Alexander von Gluck IV <kallisti5 at unixzen.com> writes:
> * 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 bugs.
> * This needs impact tested.
This looks like the right thing to do to me,
Reviewed-by: Francisco Jerez <currojerez at riseup.net>
Thanks.
> ---
> 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 0d082d2..3335575 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1943,7 +1943,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 7cd609c..c1c3736 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 670e124..2d2d8d4 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)
> --
> 1.8.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 229 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20131014/5dd57dc9/attachment-0001.pgp>
More information about the mesa-dev
mailing list