On 5/26/2015 1:02 PM, Rene Rivera wrote:
On Tue, May 26, 2015 at 9:48 AM, Edward Diener
wrote: On 5/25/2015 9:34 PM, Rene Rivera wrote:
On Mon, May 25, 2015 at 8:25 PM, Edward Diener
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-SP... , 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...
??
Yet if you look at my VMD test, called test_variadic_macro, at
http://www.boost.org/development/tests/develop/developer/output/oracle-intel... , 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-apileve... 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.