FS#35442 - [boost] Configure to support clang/libstdc++/C++11 features

Attached to Project: Arch Linux
Opened by Zulan (Zulan) - Thursday, 23 May 2013, 15:07 GMT
Last edited by Evangelos Foutras (foutrelis) - Sunday, 09 November 2014, 03:02 GMT
Task Type Feature Request
Category Packages: Extra
Status Closed
Assigned To Ionut Biru (wonder)
Evangelos Foutras (foutrelis)
Stéphane Gaudreault (stephane)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:

Boost is unable to determine libstdc++ features when clang as a compiler is used.
Clang on arch uses libstdc++ as default stdlib. This results in a lack of enabled
boost-C++11-features.

The following boost ticket describes the issue:
https://svn.boost.org/trac/boost/ticket/7473
It has been stated that using clang / libstdc++ is an "unsupported configuration"
and that the configure script should be used to fix this.
http://www.boost.org/doc/libs/1_53_0/libs/config/doc/html/index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script

AFAIK the versions of gcc and clang shipped by arch support all the
nice libstdc++ features, so it seems reasonable to enable them via the
configure.

It is frustrating for me as a user to see that I have all the nice
latest versions and yet they don't work with each other. It's clearly
not arch's fault, but it would be great if distribution, library and
compiler developers could communicate to solve this.

Additional info:
* boost-1.53.0-2


Steps to reproduce:

compile the following code:

#include <array>
#include <boost/functional/hash.hpp>

size_t foo(std::array<int, 2> bar) {
return boost::hash_value(bar);
}

g++ -c -std=c++11 (works)
clang++ -c -std=c++11 (fails)
clang++ -c -std=c++11 -D__GNUC_MINOR__=8 (evil workaround)
This task depends upon

Closed by  Evangelos Foutras (foutrelis)
Sunday, 09 November 2014, 03:02 GMT
Reason for closing:  Fixed
Additional comments about closing:  boost 1.57.0-2
Comment by Ruben Van Boxem (rubenvb) - Friday, 10 October 2014, 08:29 GMT
If you're not using libstdc++ extensions, why not just use libc++?
Comment by Evangelos Foutras (foutrelis) - Tuesday, 04 November 2014, 13:50 GMT
Looks like this is fixed in boost 1.57: https://svn.boost.org/trac/boost/ticket/7473#comment:14

Please test and confirm once boost 1.57 moves to [testing].

Loading...