Summary: | [clover] Build failure with clang 3.4 and libc++ | ||
---|---|---|---|
Product: | Mesa | Reporter: | Jean-Sébastien Pédron <dumbbell> |
Component: | Other | Assignee: | mesa-dev |
Status: | RESOLVED NOTOURBUG | QA Contact: | |
Severity: | normal | ||
Priority: | medium | ||
Version: | 10.1 | ||
Hardware: | x86-64 (AMD64) | ||
OS: | FreeBSD | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: | Build failure with clang 3.4 |
I found out a difference between GCC's "functional" header and libc++'s one: - in GCC, all "operator()" methods are const: operator()(...) const - in libc++, they aren't: operator() (_ArgTypes&&... __args) Changing the above line to: operator() (_ArgTypes&&... __args) const fixes the build. I have zero knowledge of C++, so I'm not sure that's a valid fix. (In reply to comment #1) > I found out a difference between GCC's "functional" header and libc++'s one: > > - in GCC, all "operator()" methods are const: > operator()(...) const > > - in libc++, they aren't: > operator() (_ArgTypes&&... __args) > > Changing the above line to: > operator() (_ArgTypes&&... __args) const > fixes the build. > > I have zero knowledge of C++, so I'm not sure that's a valid fix. Right, this is a bug in libc++'s implementation of mem_fn(). It seems to have been fixed already in r199848. You should try a more recent version of libc++. Thanks. |
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.
Created attachment 94726 [details] Build failure with clang 3.4 Clover from Mesa 10.1-rc2 fails to build when using clang 3.4 and libc++, instead of GCC 4.7+ and libstdc++. I first apply the patch available in #74098, 3rd comment to fix a previous build failure. The output is attached.