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
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