Skip site navigation (1)Skip section navigation (2)
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 &quot;compiler:c++11-lang&quot; on lang/gcc14-devel</div></div><br><=
div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">Nuno Teixei=
ra &lt;<a href=3D"mailto:eduardo@freebsd.org">eduardo@freebsd.org</a>&gt; 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&#39;s try other =
way:</div><div><br></div><div>Suppose that port compiles with c++17. Do you=
 need to set &quot;compiler:c++17-lang&#39; capability?</div><div>No, base =
clang supports it. Same for the other capabilities listed in porter&#39;s h=
andbook.</div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">Dimitry Andric &lt;<a href=3D"mailto:dim@freebsd.org" targe=
t=3D"_blank">dim@freebsd.org</a>&gt; 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&#39;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&#39;t set USES=3Dcompile=
r, at the least, COMPILER_TYPE and _VERSION aren&#39;t even defined...<br>
<br>
-Dimitry<br>
<br>
&gt; On 8 Feb 2024, at 08:40, Nuno Teixeira &lt;<a href=3D"mailto:eduardo@f=
reebsd.org" target=3D"_blank">eduardo@freebsd.org</a>&gt; wrote:<br>
&gt; <br>
&gt; USES compiler is somehow deprecated as clang and gcc on base and ports=
 supports capable compiler described in handbook:<br>
&gt; <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>
&gt; <br>
&gt; Mark Millard &lt;<a href=3D"mailto:marklmi@yahoo.com" target=3D"_blank=
">marklmi@yahoo.com</a>&gt; escreveu (quinta, 8/02/2024 =C3=A0(s) 05:52):<b=
r>
&gt; The error on the FreeBSD build servers:<br>
&gt; <br>
&gt; QUOTE<br>
&gt; /wrkdirs/usr/ports/lang/gcc14-devel/work/gcc-14-20240114/gcc/config/aa=
rch64/aarch64.cc:13095:50: error: constexpr variable &#39;tiles&#39; must b=
e initialized by a constant expression<br>
&gt; 13095 | static constexpr std::pair&lt;unsigned int, char&gt; tiles[] =
=3D {<br>
&gt; | ^ ~<br>
&gt; 13096 | { 0xff, &#39;b&#39; },<br>
&gt; | ~~~~~~~~~~~~~~<br>
&gt; 13097 | { 0x55, &#39;h&#39; },<br>
&gt; | ~~~~~~~~~~~~~~<br>
&gt; 13098 | { 0x11, &#39;s&#39; },<br>
&gt; | ~~~~~~~~~~~~~~<br>
&gt; 13099 | { 0x01, &#39;d&#39; }<br>
&gt; | ~~~~~~~~~~~~~<br>
&gt; 13100 | };<br>
&gt; | ~<br>
&gt; /wrkdirs/usr/ports/lang/gcc14-devel/work/gcc-14-20240114/gcc/config/aa=
rch64/aarch64.cc:13096:5: note: non-constexpr constructor &#39;pair&lt;int,=
 char, nullptr&gt;&#39; cannot be used in a constant expression<br>
&gt; 13096 | { 0xff, &#39;b&#39; },<br>
&gt; | ^<br>
&gt; /usr/include/c++/v1/__utility/pair.h:225:5: note: declared here<br>
&gt; 225 | pair(_U1&amp;&amp; __u1, _U2&amp;&amp; __u2)<br>
&gt; END QUOTE<br>
&gt; <br>
&gt; is because C++11 did not have pair constructors being constexpr.<br>
&gt; C++14 (and later) does. Yet lang/gcc14-devel &#39;s Makefile says:<br>
&gt; <br>
&gt; 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>
&gt; <br>
&gt; <br>
&gt; =3D=3D=3D<br>
&gt; Mark Millard<br>
&gt; marklmi at <a href=3D"http://yahoo.com" rel=3D"noreferrer" target=3D"_=
blank">yahoo.com</a><br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; -- <br>
&gt; Nuno Teixeira<br>
&gt; 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>