| Summary: | Git master fails to build with clang++/libc++ on Linux | ||
|---|---|---|---|
| Product: | Mesa | Reporter: | Armin K <krejzi> |
| Component: | Mesa core | Assignee: | mesa-dev |
| Status: | RESOLVED DUPLICATE | QA Contact: | mesa-dev |
| Severity: | normal | ||
| Priority: | medium | ||
| Version: | git | ||
| Hardware: | Other | ||
| OS: | All | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
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.
When building on Linux using clang++ and its standard library, libc++, the build fails with: In file included from glsl/link_varyings.cpp:33: In file included from ../../src/compiler/glsl/glsl_symbol_table.h:34: In file included from ../../src/compiler/glsl/ir.h:33: In file included from ../../src/compiler/glsl_types.h:29: In file included from /usr/bin/../include/c++/v1/string.h:61: /usr/include/string.h:518:12: error: exception specification in declaration does not match previous declaration virtual void visit(class ir_dereference_variable *) {} ^ extern int ffs (int __i) __THROW __attribute__ ((__const__)); ^ ../../src/util/bitscan.h:51:13: note: expanded from macro 'ffs' #define ffs __builtin_ffs ^ ../../src/util/bitscan.h:96:18: note: previous declaration is here const int i = ffs(*mask) - 1; ^ ../../src/util/bitscan.h:51:13: note: expanded from macro 'ffs' #define ffs __builtin_ffs ^ ../../src/compiler/glsl/ir_visitor.h:82:17: note: hidden overloaded virtual function 'ir_control_flow_visitor::visit' declared here: type mismatch at 1st parameter ('class ir_dereference_array *' vs 'ir_loop *') In file included from glsl/link_varyings.cpp:33: In file included from ../../src/compiler/glsl/glsl_symbol_table.h:34: In file included from ../../src/compiler/glsl/ir.h:33: In file included from ../../src/compiler/glsl_types.h:29: In file included from /usr/bin/../include/c++/v1/string.h:61: /usr/include/string.h:524:26: error: exception specification in declaration does not match previous declaration __extension__ extern int ffsll (long long int __ll) ^ ../../src/util/bitscan.h:68:15: note: expanded from macro 'ffsll' #define ffsll __builtin_ffsll ^ ../../src/util/bitscan.h:104:18: note: previous declaration is here const int i = ffsll(*mask) - 1; ^ ../../src/util/bitscan.h:68:15: note: expanded from macro 'ffsll' #define ffsll __builtin_ffsll Build worked fine until recently. git bisect says the following: ecd6fce2611e88ff8468a354cff8eda39f260a31 is the first bad commit commit ecd6fce2611e88ff8468a354cff8eda39f260a31 Author: Rob Clark <robdclark@gmail.com> Date: Wed Aug 31 17:44:01 2016 -0400 mesa/st: support lowering multi-planar YUV Support multi-planar YUV for external EGLImage's (currently just in the dma-buf import path) by lowering to multiple texture fetch's for each plane and CSC in shader. There was some discussion of alternative approaches for tracking the additional UV or U/V planes: https://lists.freedesktop.org/archives/mesa-dev/2016-September/127832.html They all seemed worse than pipe_resource::next Signed-off-by: Rob Clark <robdclark@gmail.com> :040000 040000 80840dcad2d468df7741746515b03247c41a1084 88f03e54885c7b5b1090fb09709e7daf66972941 M src