Re: Why lang/gcc14-devel builds are failing on the build servers: needs USES= compiler:c++14-lang (or higher) instead of compiler:c++11-lang

From: Lorenzo Salvadore <developer_at_lorenzosalvadore.it>
Date: Fri, 09 Feb 2024 09:26:51 UTC
On Thursday, February 8th, 2024 at 18:11, Mark Millard <marklmi@yahoo.com> wrote:

> 
> 
> 
> 
> On Feb 7, 2024, at 23:40, Nuno Teixeira eduardo@freebsd.org wrote:
> 
> > USES compiler is somehow deprecated as clang and gcc on base and ports supports capable compiler described in handbook:
> > https://docs.freebsd.org/en/books/porters-handbook/book/#uses-compiler
> 
> 
> Use of the likes of
> 
> USES= compiler:c++11-lang . . .
> 
> also causes the compile commands to start with:
> 
> c++ -std=c++11 . . .
> 
> ( as shows up in the log file for building lang/gcc14-devel ).
> 
> It is not just about which compiler execuable that is selected
> by the notation, it is also about telling that executable
> which langauge version it is to apply. libc++ in turn does
> different things for its definitions based on which standard
> is used by the compiler.
> 
> Using the likes of, say:
> 
> USES= compiler:c++14-lang . . .
> 
> would also cause the compile commands to have:
> 
> c++ -std=c++14 . . .
> 
> that would be provide the constexpr definitions
> needed. Later C++ standards also would provide
> those.
> 
> It is true that the default for -std=c++?? may be
> -std=c++14 or later. But some things fail for use
> of too recent of a standard because of changes in
> the standards as they progress --so the defaults
> need not work. (I've no clue of the specifics for
> building lang/gcc14-devel .)
> 
> I expect that slavadore will pick a notation that
> is sufficient for the builds to work.

Thanks for the suggestion. lang/gcc14-devel is having multiple
issues at the moment (and I still need to finish the GCC_DEFAULT
update to GCC 13 exp-run), so I might need a bit of time to fix
this one, but I will definitely have a look into this as soon as
possible.

Thanks,

Lorenzo Salvadore