$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [predef] Using predef-check on 'develop' problem
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-05-26 14:18:53
On 5/26/2015 1:02 PM, Rene Rivera wrote:
> On Tue, May 26, 2015 at 9:48 AM, Edward Diener <eldiener_at_[hidden]>
> wrote:
>
>> On 5/25/2015 9:34 PM, Rene Rivera 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.
>>>
>>
>> I appreciate your efforts to fix this problem.
>>
>> As a side note on the Android tests using gcc, both predef and my own
>> test_variadic_macro test are finding that gcc is being detected but the
>> predef-check statement mentioned in my OP is also not adding '-std=c++0x'
>> to the command line there.
>
>
> FYI..
>
> a) I just don't see how the sunpro detection is not working. Logic looks
> correct. But I'll keep scratching head and looking at the code :-\
>
> b) I can't replicate your original problem either. I have a test that has
> the exact same condition and it works to add two compile options as needed.
> It's the predef/check_value test, for which you can compare the clang vs.
> gcc output here <https://travis-ci.org/boostorg/predef>. And I'm waiting on
> the full Boost test to cycle to check other platforms.
Is there any way you can add this test to the Boost regression tests ?
I don't run any tests personally under Android or QNX OSs, but I can't
help thinking that this may be a Boost Build problem or an OS problem
if it is not a predef problem.
In my VMD jamfile I have at the top:
import ../../predef/check/predef
: check require
: predef-check predef-require ;
Does that look right ?
The line in my VMD tests for, let's say, the test_doc_empty.cpp test is:
[ run test_doc_empty.cpp : : : [ predef-check "BOOST_COMP_GNUC >= 4.3"
"BOOST_OS_QNX == 0" : : <cxxflags>-std=c++0x ] ]
Does that look right ?
Yet on the Android regression test for this at
http://www.boost.org/development/tests/develop/developer/CrystaX-NET-apilevel-21-armeabi-vmd-gcc-4-9-test_doc_empty-variants_.html
I see this command line:
"/home/cislave/.crystax/ci-boost/regression/android-21-armeabi-develop/test/develop/regression/armeabi/gcc-4.9/g++-4.9"
-ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall
-pedantic -fPIC -pedantic-errors -DBOOST_ALL_NO_LIB=1 -DNDEBUG -I".."
-c -o
"/home/cislave/.crystax/ci-boost/regression/android-21-armeabi-develop/test/develop/regression/armeabi/test/results/boost/bin.v2/libs/vmd/test/test_doc_empty.test/gcc-4.9/release/target-os-android/threading-multi/test_doc_empty.o"
"../libs/vmd/test/test_doc_empty.cpp"
and there is obviously no '-std=c++0x' being added there.
So I am as baffled as you are.
I can ask the Android testers to manually add the '-std=c++0x' to the
test if there is a way for them to do it just for the VMD tests as part
of there regression tests.