Summary: | test_glsl_to_tgsi_lifetime.cpp:53:67: error: ‘>>’ should be ‘> >’ within a nested template argument list | ||
---|---|---|---|
Product: | Mesa | Reporter: | Vinson Lee <vlee> |
Component: | Mesa core | Assignee: | mesa-dev |
Status: | RESOLVED FIXED | QA Contact: | mesa-dev |
Severity: | normal | ||
Priority: | medium | CC: | gw.fossdev, prefect_ |
Version: | 17.3 | Keywords: | bisected, regression |
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Vinson Lee
2017-09-11 22:18:30 UTC
Strange, this file should be compiled with c++11, the construct is legal c++11, this and according to [1] g++4.8 should support it (right angle brackets N1757[2]). Could you confirm that -std=s++11 or std=c++0x is actually set? - it is pulled in from the CLANG_CXXFKAGS and it might be that this is actually not done with older versions of clang. [1] https://gcc.gnu.org/gcc-4.8/cxx0x_status.html [2] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html One option is to add space between the two >> - it's compatible with older C++ standards and part of Mesa already uses it. Alternatively, move '&' one character to the right (again we have some instances in Mesa) MockCodelineWithSwizzle(unsigned _op, const vector<pair<int,int>> &_dst, @Vinson: on Travis with the exact same version of g++ you reported (gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4 [1] the build runs through without modifying the source (I had to enable "make check" for this), so I'm a bit puzzles why it doesn't compile for you. Could you check whether it build with the modification Emil suggested? [1] https://travis-ci.org/gerddie/mesa/jobs/274604922 In the travis build, the -std=c++11 option comes from LLVM_CXXFLAGS with llvm-3.9. Older llvm versions or builds without llvm will not have -std=c++11. Should be fixed with commit c75d78161046f34350467b53054ff4e9da7a5cdd Author: Gert Wollny <gw.fossdev@gmail.com> Date: Wed Sep 13 15:03:34 2017 +0200 mesa/st/tests: Correct build flags and force -std=c++11 Still fails with g++-4.4. CXX test_glsl_to_tgsi_lifetime.o cc1plus: error: unrecognized command line option "-std=c++11" Isn't g++4.4 a bit old? It is not maintained since 2012[1]. Well, I can see whether I can disable compiling the tests for these older compilers where c++11 was not available or still experimental. [1] https://gcc.gnu.org/gcc-4.4/ This patch should fix the bug by disabling building the tests when c++11 is not supported by the compiler: https://patchwork.freedesktop.org/patch/183475/ It is part of this series: https://patchwork.freedesktop.org/series/32220/ Should be addressed with commit 09ad2576ece2f813e5be9dda60fdb0b9598d0d23 Author: Gert Wollny <gw.fossdev@gmail.com> Date: Wed Oct 18 17:05:25 2017 +0200 configure: check for -std=c++11 support and enable st/mesa test accordingly |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.