Chí-Thanh Christopher Nguyễn <chith...@gentoo.org> writes: > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68504 > Bugzilla: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58241 > CC: mesa-sta...@lists.freedesktop.org > --- > configure.ac | 11 +++++++++++ > src/gallium/state_trackers/clover/Makefile.am | 2 +- > 2 files changed, 12 insertions(+), 1 deletion(-) > > diff --git a/configure.ac b/configure.ac > index 40e052c..15831fd 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -1390,6 +1390,17 @@ if test "x$enable_opencl" = xyes; then > AC_MSG_ERROR([pkg-config cannot use libclc.pc which is required to > build clover]) > fi > > +dnl > +dnl Workaround for altivec failure with GNU C++ and -std=c++0x, PR58241 > +dnl > + > + if test "x${ac_cv_cxx_compiler_gnu}" = xyes ; then > + CLOVER_CXX_STD="gnu++0x" > + else > + CLOVER_CXX_STD="c++0x" > + fi > + AC_SUBST([CLOVER_CXX_STD]) > + > GALLIUM_STATE_TRACKERS_DIRS="$GALLIUM_STATE_TRACKERS_DIRS clover" > GALLIUM_TARGET_DIRS="$GALLIUM_TARGET_DIRS opencl" > enable_gallium_loader=yes > diff --git a/src/gallium/state_trackers/clover/Makefile.am > b/src/gallium/state_trackers/clover/Makefile.am > index b4c197a..e339c1f 100644 > --- a/src/gallium/state_trackers/clover/Makefile.am > +++ b/src/gallium/state_trackers/clover/Makefile.am > @@ -30,7 +30,7 @@ libclllvm_la_SOURCES = \ > llvm/invocation.cpp > > libclover_la_CXXFLAGS = \ > - -std=c++0x > + -std=$(CLOVER_CXX_STD) > > libclover_la_LIBADD = \ > libcltgsi.la libclllvm.la
How about disabling AltiVec code generation by adding "-mno-altivec" to CXXFLAGS? AFAICT what's going on is that the "-maltivec" option (which is implied by your "-mcpu=7450") enables a number of language extensions as a side effect that collide with the C++ standard, which is exacerbated by GCC's seemingly broken implementation. I wonder if they could have any undesirable side effects on components other than clover: not including "altivec.h" doesn't seem to guarantee that the problematic preprocessor definitions ("bool" and "vector") aren't going to be present. Switching the dialect we're compiling with to GNU C++ isn't especially reassuring, clover doesn't need GNU's C++ extensions and we don't want to start using any of them by accident -- we don't use the AltiVec extensions either so disabling the latter seems like the most reasonable solution to me. Thank you.
pgpi8kq41txBW.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev