Boost logo

Boost-Build :

Subject: Re: [Boost-build] question regarding "requires cxx11_hdr_array" clause in Jamfile
From: Robert Ramey (ramey_at_[hidden])
Date: 2016-12-09 12:22:50


On 12/6/16 1:10 PM, Edward Diener wrote:
> On 12/6/2016 3:31 PM, Robert Ramey wrote:
>> On 12/6/16 11:22 AM, Edward Diener wrote:
>>
>>>> To this end, boost/serialization/array.hpp contains the following:
>>>>
>>>> #ifndef BOOST_NO_CXX11_HDR_ARRAY
>>>>
>>>> #include <array>
>>>> #include <boost/serialization/nvp.hpp>
>>>>
>>
>>> What do you mean by "the code in <array> is not included" ? Are you
>>> referring to your own serialization array header or are you referring to
>>> the C++ standard array header ?
>>
>> I mean that the above #ifndef inhibits the inclusion of <array>
>>
>> This shouldn't be a problem as the test itself shouldn't be run since
>> the jamfile includes:
>>
>> [ test-bsl-run_files test_array : A : : [ requires cxx11_hdr_array
>> ] ] # BOOST_NO_CXX11_HDR_ARRAY
>
> As John Maddock mentioned it seems as if the config test done when
> 'requires cxx11_hdr_array' is encountered is returning an opposite
> result from whether the macro BOOST_NO_CXX11_HDR_ARRAY
> is defined or not when including config.hpp, for your particular
> compilation environment. This has nothing to do with Boost Build versus
> Boost config but rather has to do with Boost config entirely.
>
> I think if you can run the Boost config config_info.cpp test it will
> tell you if Boost config is defining BOOST_NO_CXX11_HDR_ARRAY normally
> for the environment you are testing. If this is then different from what
> 'requires cxx11_hdr_array' is generating then it is a Boost config
> problem in testing for BOOST_NO_CXX11_HDR_ARRAY for your compiler
> environment.

Turns out that this problem is showing up in the test matrix of the
current develop branch.

First the test_array tests fail in the serialization library test matrix
for the platforms clang-darwin-4.2.1 and darwin-4.2.1 .
http://www.boost.org/development/tests/develop/developer/serialization.html

OK no surprise there.

Moving to the tests for config.hpp.
http://www.boost.org/development/tests/develop/developer/config.html for
the same platforms.

config-info shows BOOST_NO_CXX11_HDR_ARRAY as being defined. Again this
is what I'm seeing with test_array. BUT - it seems that the test
config_build_check is not run in this configuration. This doesn't seem
right. Perhaps this is helpful in finding the issue.

I did look though config.hpp tests but couldn't figure out where the
problem might be.

Robert Ramey


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk