Boost logo

Boost :

Subject: Re: [boost] Boost.Build requirements to exclude GCC 5
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2019-01-14 20:46:46


AMDG

On 1/14/19 1:34 PM, Niall Douglas via Boost wrote:
> Outcome is now into Boost, and is being tested nightly:
>
> Docs in BoostDoc theme:
> https://www.boost.org/doc/libs/develop/libs/outcome/doc/html/index.html
>
> Regression matrix:
> https://www.boost.org/development/tests/develop/developer/outcome.html
>
>
> One problem is how to exclude from testing GCC 5 which Outcome cannot
> support due to GCC 5's incorrect parsing of variable templates in nested
> template classes [1], so I need some sort of Boost.Build project
> requirement which explicitly excludes GCC 5.
>
> Unfortunately, GCC 5 appears to Boost.Config as fully implementing C++
> 14, so this is not straightforward.
>

You can use predef for compiler version checks.
https://www.boost.org/doc/html/predef/check_utilities.html

> What might work is to specify a requirement for one of the library items
> at https://github.com/boostorg/config/blob/develop/checks/Jamfile.v2
> which we know for a fact libstdc++ 5 does not implement, but libstdc++ 6
> does. However, clang with libstdc++ 5 would then be excluded
> incorrectly, as clang does not have this parsing bug.
>

There's nothing stopping you from writing a check for this bug
yourself:

obj test_gcc_5_bug : test_gcc_5_bug.cpp ; # fails to compile on gcc 5
... [ check-target-builds test_gcc_5_bug : : <build>no ]

> I guess ideally speaking Boost.Config gains a new test testing for this
> specific compiler parsing bug. But it seems a bit much to ask for this
> just for Outcome.
>
> Guidance is sought!
>

In Christ,
Steven Watanabe


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