Boost logo

Boost :

Subject: Re: [boost] [predef] Using predef-check on 'develop' problem
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-06-01 19:37:17


On 6/1/2015 5:43 PM, Rene Rivera wrote:
> On Mon, Jun 1, 2015 at 4:35 PM, Edward Diener <eldiener_at_[hidden]>
> wrote:
>
>> On 6/1/2015 2:41 PM, Rene Rivera wrote:
>>
>>> On Mon, May 25, 2015 at 8:34 PM, Rene Rivera <grafikrobot_at_[hidden]>
>>> wrote:
>>>
>>>
>>>>
>>>> On Mon, May 25, 2015 at 8:25 PM, Edward Diener <eldiener_at_[hidden]>
>>>> wrote:
>>>>
>>>>
>>>>>
>>>>> If you look at the predef info_as_cpp tests, such as at
>>>>
>>>>>
>>>>>
>>>>> http://www.boost.org/development/tests/develop/developer/output/NA-QNX650-SP1-ARM-boost-bin-v2-libs-predef-test-info_as_cpp-test-qcc-4-4-2_arm-debug-debug-symbols-off.html
>>>>> ,
>>>>> you will see that no compiler is being detected.
>>>>>
>>>>>
>>>> Ah.. I see: BOOST_COMP_GNUC = 40400002 (4,4,2) | Gnu GCC C/C++
>>>>
>>>> Maybe you meant this link: <
>>>>
>>>> http://www.boost.org/development/tests/develop/developer/output/oracle-intel-S2-stlport4-boost-bin-v2-libs-predef-test-info_as_cpp-test-sun-stlport4-release-threading-multi.html
>>>>
>>>>>
>>>>> ??
>>>>
>>>>
>>>> Yet if you look at my VMD test, called test_variadic_macro, at
>>>>>
>>>>> http://www.boost.org/development/tests/develop/developer/output/oracle-intel-S2-stlport4-boost-bin-v2-libs-vmd-test-test_variadic_macro-test-sun-stlport4-release-threading-multi.html
>>>>> ,
>>>>> you can see that I am picking up that '__SUNPRO_CC' is defined.
>>>>>
>>>>> Yet if '__SUNPRO_CC' is defined then predef should be picking that up
>>>>> and
>>>>> setting BOOST_COMP_SUNPRO to the compiler being detected.
>>>>>
>>>>>
>>>> Right.
>>>>
>>>> Along with that problem is that in my VMD tests, aside from the
>>>>
>>>>> test_variadic_macro test, I have the predef-check as specified in my OP
>>>>> above. Yet this is being triggered for the SunOS operating system tests
>>>>> when clearly the compiler is not BOOST_COMP_GNUC, and '-std=c++0x' is
>>>>> erroneously being added for the VMD tests which causes them all to fail
>>>>> because the tests are being run with '-compat=5 -library=stlport4'. So
>>>>> here
>>>>> again, with SunOS and Oracle ( aka Sun ) C++, predef does not appear to
>>>>> be
>>>>> working correctly.
>>>>>
>>>>
>>>>
>>>> Well, let me fix the first problem. Perhaps it's a side effect of the Sun
>>>> compiler not being detected.
>>>>
>>>>
>>> OK, this seems to be fixed now. Took a while for the testers to get to
>>> testing it. Can you verify that the Predef check issues are also taken
>>> care
>>> of?
>>>
>>
>> Your June 1 predef changes have not been picked up by the latest VMD tests
>> for Android and Oracle C++ yet. Should previous changes have fixed the
>> problem I was seeing in those tests ? If not I still have to wait until the
>> Android and Oracle C++ tests with your June 1 changes cycle. The VMD tests
>> on QNX are now working correctly even though your June 1 changes were not
>> picked up there yet.
>
>
> It wasn't the June 1st changes that I refer to that makes this <
> http://www.boost.org/development/tests/develop/developer/output/oracle-intel-S2-stlport4-boost-bin-v2-libs-predef-test-info_as_cpp-test-sun-stlport4-release-threading-multi.html>
> work correctly for SUNPRO. It was actually this change <
> https://github.com/boostorg/predef/commit/58c23226b1ebed2579d0f3296faaff958f5c424d

Corrected reply:

Something is still wrong then. In my VMD jamfile a line like:

[ run test_after_array_elem.cpp : : : [ predef-check "BOOST_COMP_GNUC >=
4.3" "BOOST_OS_QNX == 0" : : <cxxflags>-std=c++0x ] ]

is still adding '-std=c++0x' to the command line for the SunOS
oracle-intel-S2-stlport4 test even though BOOST_COMP_GNUC is 0. You can
see that at
http://www.boost.org/development/tests/develop/developer/output/oracle-intel-S2-stlport4-boost-bin-v2-libs-vmd-test-test_after_array_elem-test-sun-stlport4-release-threading-multi.html.
And the reason I know that it is the VMD jamfile adding the '-std=c++0x'
and not the regression tester is that I have this line in the VMD jamfile:

[ run test_variadic_macro.cpp ]

and if you look at
http://www.boost.org/development/tests/develop/developer/output/oracle-intel-S2-stlport4-boost-bin-v2-libs-vmd-test-test_variadic_macro-test-sun-stlport4-release-threading-multi.html
you will see that '-std=c++0x' is not being added to the command line.

Yet in the QNX 'develop' VMD regression tests, where BOOST_COMP_GNUC >=
4.3 and BOOST_OS_QNX is not 0, the '-std=c++0x' is correctly not being
added to the command line for a line like:

[ compile-fail test_doc_empty_fail2.cpp : [ predef-check
"BOOST_COMP_GNUC >= 4.3" "BOOST_OS_QNX == 0" : : <cxxflags>-std=c++0x ] ]

You can see this for a test that fails at
http://www.boost.org/development/tests/develop/developer/output/NA-QNX650-SP1-x86-boost-bin-v2-libs-vmd-test-test_doc_empty_fail2-test-qcc-4-4-2_x86-debug-debug-symbols-off.html.

So in the QNX case the predef-check is working but for SunOS there is
still a problem.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk