Date: Thu, 8 Feb 2024 10:03:11 +0000 From: Nuno Teixeira <eduardo@freebsd.org> To: Dimitry Andric <dim@freebsd.org> Cc: Mark Millard <marklmi@yahoo.com>, FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, FreeBSD Mailing List <freebsd-ports@freebsd.org>, "salvadore@freebsd.org" <salvadore@freebsd.org> Subject: 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 Message-ID: <CAFDf7UJAmQk9D9GAzvEu-8uen7BuKxgELyWj3a1m4PaTkdoYpQ@mail.gmail.com> In-Reply-To: <CAFDf7UL_4A2d%2B-PxbJ6ciDcME2j5oq4obkkOvK8iRfxDthdA3w@mail.gmail.com> References: <62C8F08E-8D73-4918-A91F-4FC01E94FD8A.ref@yahoo.com> <62C8F08E-8D73-4918-A91F-4FC01E94FD8A@yahoo.com> <CAFDf7UKhVxXH-SmW%2BS1k0a1kOoGtyZmEQvN0zX4Etucy3pAsjA@mail.gmail.com> <2B9415F3-80C7-4B48-9CF0-7F1FD0BE3FEA@FreeBSD.org> <CAFDf7UL_4A2d%2B-PxbJ6ciDcME2j5oq4obkkOvK8iRfxDthdA3w@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--000000000000f9e0850610dbeb95 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable (...) This conversation related to "compiler:c++11-lang" on lang/gcc14-devel Nuno Teixeira <eduardo@freebsd.org> escreveu (quinta, 8/02/2024 =C3=A0(s) 1= 0:00): > 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 =C3=A0(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=3Dcompiler= , >> 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 =C3=A0(s) >> 05:52): >> > The error on the FreeBSD build servers: >> > >> > QUOTE >> > >> /wrkdirs/usr/ports/lang/gcc14-devel/work/gcc-14-20240114/gcc/config/aarc= h64/aarch64.cc:13095:50: >> error: constexpr variable 'tiles' must be initialized by a constant >> expression >> > 13095 | static constexpr std::pair<unsigned int, char> tiles[] =3D { >> > | ^ ~ >> > 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/aarc= h64/aarch64.cc:13096:5: >> note: non-constexpr constructor 'pair<int, char, nullptr>' cannot be use= d >> 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=3D compiler:c++11-lang cpe gmake iconv libtool makeinfo >> perl5 tar:xz >> > >> > >> > =3D=3D=3D >> > Mark Millard >> > marklmi at yahoo.com >> > >> > >> > >> > >> > -- >> > Nuno Teixeira >> > FreeBSD Committer (ports) >> >> > > -- > Nuno Teixeira > FreeBSD Committer (ports) > --=20 Nuno Teixeira FreeBSD Committer (ports) --000000000000f9e0850610dbeb95 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>(...)</div><div><br></div><div>This conversation rela= ted to "compiler:c++11-lang" on lang/gcc14-devel</div></div><br><= div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">Nuno Teixei= ra <<a href=3D"mailto:eduardo@freebsd.org">eduardo@freebsd.org</a>> e= screveu (quinta, 8/02/2024 =C3=A0(s) 10:00):<br></div><blockquote class=3D"= gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(20= 4,204,204);padding-left:1ex"><div dir=3D"ltr"><div>Ok, let's try other = way:</div><div><br></div><div>Suppose that port compiles with c++17. Do you= need to set "compiler:c++17-lang' capability?</div><div>No, base = clang supports it. Same for the other capabilities listed in porter's h= andbook.</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class= =3D"gmail_attr">Dimitry Andric <<a href=3D"mailto:dim@freebsd.org" targe= t=3D"_blank">dim@freebsd.org</a>> escreveu (quinta, 8/02/2024 =C3=A0(s) = 08:39):<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px = 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Deprecat= ed? It's essential to figure out the compiler type and version, if you = need that in a port Makefile!<br> <br> How are you going to do that otherwise? If you don't set USES=3Dcompile= r, at the least, COMPILER_TYPE and _VERSION aren't even defined...<br> <br> -Dimitry<br> <br> > On 8 Feb 2024, at 08:40, Nuno Teixeira <<a href=3D"mailto:eduardo@f= reebsd.org" target=3D"_blank">eduardo@freebsd.org</a>> wrote:<br> > <br> > USES compiler is somehow deprecated as clang and gcc on base and ports= supports capable compiler described in handbook:<br> > <a href=3D"https://docs.freebsd.org/en/books/porters-handbook/book/#us= es-compiler" rel=3D"noreferrer" target=3D"_blank">https://docs.freebsd.org/= en/books/porters-handbook/book/#uses-compiler</a><br> > <br> > Mark Millard <<a href=3D"mailto:marklmi@yahoo.com" target=3D"_blank= ">marklmi@yahoo.com</a>> escreveu (quinta, 8/02/2024 =C3=A0(s) 05:52):<b= r> > The error on the FreeBSD build servers:<br> > <br> > QUOTE<br> > /wrkdirs/usr/ports/lang/gcc14-devel/work/gcc-14-20240114/gcc/config/aa= rch64/aarch64.cc:13095:50: error: constexpr variable 'tiles' must b= e initialized by a constant expression<br> > 13095 | static constexpr std::pair<unsigned int, char> tiles[] = =3D {<br> > | ^ ~<br> > 13096 | { 0xff, 'b' },<br> > | ~~~~~~~~~~~~~~<br> > 13097 | { 0x55, 'h' },<br> > | ~~~~~~~~~~~~~~<br> > 13098 | { 0x11, 's' },<br> > | ~~~~~~~~~~~~~~<br> > 13099 | { 0x01, 'd' }<br> > | ~~~~~~~~~~~~~<br> > 13100 | };<br> > | ~<br> > /wrkdirs/usr/ports/lang/gcc14-devel/work/gcc-14-20240114/gcc/config/aa= rch64/aarch64.cc:13096:5: note: non-constexpr constructor 'pair<int,= char, nullptr>' cannot be used in a constant expression<br> > 13096 | { 0xff, 'b' },<br> > | ^<br> > /usr/include/c++/v1/__utility/pair.h:225:5: note: declared here<br> > 225 | pair(_U1&& __u1, _U2&& __u2)<br> > END QUOTE<br> > <br> > is because C++11 did not have pair constructors being constexpr.<br> > C++14 (and later) does. Yet lang/gcc14-devel 's Makefile says:<br> > <br> > USES=3D=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0compiler:c++11-lang cp= e gmake iconv libtool makeinfo perl5 tar:xz<br> > <br> > <br> > =3D=3D=3D<br> > Mark Millard<br> > marklmi at <a href=3D"http://yahoo.com" rel=3D"noreferrer" target=3D"_= blank">yahoo.com</a><br> > <br> > <br> > <br> > <br> > -- <br> > Nuno Teixeira<br> > FreeBSD Committer (ports)<br> <br> </blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre= fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature"><div dir=3D"l= tr"><span style=3D"color:rgb(102,102,102)">Nuno Teixeira<br>FreeBSD Committ= er (ports)</span></div></div> </blockquote></div><br clear=3D"all"><br><span class=3D"gmail_signature_pre= fix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signature"><div dir=3D"l= tr"><span style=3D"color:rgb(102,102,102)">Nuno Teixeira<br>FreeBSD Committ= er (ports)</span></div></div> --000000000000f9e0850610dbeb95--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFDf7UJAmQk9D9GAzvEu-8uen7BuKxgELyWj3a1m4PaTkdoYpQ>