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
- Reply: Nuno Teixeira : "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"
- In reply to: Dimitry Andric : "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"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 08 Feb 2024 10:00:56 UTC
Ok, let's try other way: Suppose that port compiles with c++17. Do you need to set "compiler:c++17-lang' capability? No, base clang supports it. Same for the other capabilities listed in porter's handbook. Dimitry Andric <dim@freebsd.org> escreveu (quinta, 8/02/2024 à(s) 08:39): > Deprecated? It's essential to figure out the compiler type and version, if > you need that in a port Makefile! > > How are you going to do that otherwise? If you don't set USES=compiler, at > the least, COMPILER_TYPE and _VERSION aren't even defined... > > -Dimitry > > > On 8 Feb 2024, at 08: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 > > > > Mark Millard <marklmi@yahoo.com> escreveu (quinta, 8/02/2024 à(s) > 05:52): > > The error on the FreeBSD build servers: > > > > QUOTE > > > /wrkdirs/usr/ports/lang/gcc14-devel/work/gcc-14-20240114/gcc/config/aarch64/aarch64.cc:13095:50: > error: constexpr variable 'tiles' must be initialized by a constant > expression > > 13095 | static constexpr std::pair<unsigned int, char> tiles[] = { > > | ^ ~ > > 13096 | { 0xff, 'b' }, > > | ~~~~~~~~~~~~~~ > > 13097 | { 0x55, 'h' }, > > | ~~~~~~~~~~~~~~ > > 13098 | { 0x11, 's' }, > > | ~~~~~~~~~~~~~~ > > 13099 | { 0x01, 'd' } > > | ~~~~~~~~~~~~~ > > 13100 | }; > > | ~ > > > /wrkdirs/usr/ports/lang/gcc14-devel/work/gcc-14-20240114/gcc/config/aarch64/aarch64.cc:13096:5: > note: non-constexpr constructor 'pair<int, char, nullptr>' cannot be used > in a constant expression > > 13096 | { 0xff, 'b' }, > > | ^ > > /usr/include/c++/v1/__utility/pair.h:225:5: note: declared here > > 225 | pair(_U1&& __u1, _U2&& __u2) > > END QUOTE > > > > is because C++11 did not have pair constructors being constexpr. > > C++14 (and later) does. Yet lang/gcc14-devel 's Makefile says: > > > > USES= compiler:c++11-lang cpe gmake iconv libtool makeinfo > perl5 tar:xz > > > > > > === > > Mark Millard > > marklmi at yahoo.com > > > > > > > > > > -- > > Nuno Teixeira > > FreeBSD Committer (ports) > > -- Nuno Teixeira FreeBSD Committer (ports)