Subject: Re: [boost] boost.test regression or behavior change (was Re: Boost.lockfree)
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-10-03 17:10:56


On 10/3/2015 3:15 PM, Raffi Enficiaud wrote:
> Le 03/10/15 16:21, Tim Blechmann a écrit :
>>> All tests for lockfree in both master and develop branch seem to fail.
>>> Error message is
>>>
>>> "../boost/system/config.hpp", line 34: Error: #error Must not define
>>> both BOOST_SYSTEM_DYN_LINK and BOOST_SYSTEM_STATIC_LINK.
>>>
>>>
>>> See develop branch:
>>> http://www.boost.org/development/tests/develop/developer/lockfree.html
>>>
>>> See master branch:
>>> http://www.boost.org/development/tests/master/developer/lockfree.html
>>>
>>> I looked at lockfree/test/Jamfile.v2 but am not sure what change needs
>>> to be made.
>>>
>>> Any suggestions?
>>
>> boost lockfree's testsuite hasn't changed for a long time. i have no
>> idea why the tests are failing, so something must have changed in
>> boost.test.
>>
>> [snip]
>>
>> ---
>>
>> fwiw, maybe one of the boost.test developers has an understanding,
>> what's going on there? unfortunately i don't really have a lot of time
>> to look into this atm ...
>>
>> thanks a lot,
>> tim
>>
>
> Me again,
>
> So, if I change lockfree/test/Jamfile.v2
> - <library>../../test/build//boost_test_exec_monitor
> + <library>../../test/build//boost_unit_test_framework
>
> I can compile it with C++11 support without any issue:
>
> ../../../b2 -j8 toolset=clang cxxflags="-stdlib=libc++ -std=c++11"
> linkflags="-stdlib=libc++"
>
> I cannot compile it though without C++11 support for 2 reasons:
> - in lockfree commit 9f52c24 unconditionally uses <atomic>, but this one
> is available only with C++11 support
> - in boost.test, references to C++11 jargon.
>
> For boost.test, Gennadiy and me have to come up with a solution.

First, Boost Test can not require C++11 support. if you want to create a
Boost Test which does require C++11 support make a Boost Test2 or
whatever you want to call your new library that requires C++11 support.
Others have said the same thing. It is beyond me how you or Gennadiy
arbitrarily decided that libraries using Boost Test must run with C++11
support when you both know that there are many Boost libraries that do
not require or need C++11, and these libraries use Boost Test.

Second, if lockfree requires C++11 support and it tries to compile
without it, then that is lockfree's problem and not Boost Test's problem.