Boost logo

Boost :

Subject: Re: [boost] [predef] Using predef-check on 'develop' problem
From: Edward Diener (eldiener_at_[hidden])
Date: 2015-05-25 21:25:45

On 5/18/2015 10:57 PM, Rene Rivera wrote:
> On Mon, May 18, 2015 at 9:38 PM, Rene Rivera <grafikrobot_at_[hidden]> wrote:
>> On Mon, May 18, 2015 at 8:57 PM, Edward Diener <eldiener_at_[hidden]>
>> wrote:
>>> On 5/15/2015 4:38 PM, Rene Rivera wrote:
>>>> On Fri, May 15, 2015 at 3:31 PM, Edward Diener <eldiener_at_[hidden]>
>>>> wrote:
>>>> In a jam file I have for a run test a predef-check which looks like:
>>>>> run test_variadic_macro.cpp : : : [ predef-check "BOOST_COMP_GNUC >=
>>>>> 4.3"
>>>>> "BOOST_OS_QNX == 0" : : <cxxflags>-std=c++0x ] ;
>>>>> When running on QNX with the gcc version greater than 4.3 I would expect
>>>>> that -std=c++0x would not be added as a C++ compile parameter to the
>>>>> run.
>>>>> Yet it is being added to the run.
>>>>> Another test confirms that BOOST_OS_QNX is indeed being set to a
>>>>> non-zero
>>>>> value.
>>>>> Is there a bug in predef-check ? Am I using it incorrectly ?
>>>> It looks like a bug to me.. I'll investigate further tonight.
>>> What I am also seeing, besides the QNX problem, is that for the Android
>>> OS 'develop' tests, using the same predef-check as above, both conditions
>>> are true, yet the -std=c++0x is not on the command line of the tests.
>> FYI.. I haven't stopped working on fixing this. And I have an almost
>> working resolution.
> And it's done, and checked into the predef develop branch. I need to update
> and regenerate docs before I can merge to master though. So things will
> only start working on the develop super-project.

I have discovered a problem with predef in the 'develop' regression
tests at
for the SunOS operating system and Oracle ( aka Sun ) C++.

If you look at the predef info_as_cpp tests, such as at,
you will see that no compiler is being detected.

Yet if you look at my VMD test, called test_variadic_macro, at,
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.

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.

Boost list run by bdawes at, gregod at, cpdaniel at, john at