On Thu, 2020-01-02 at 19:48 +0000, devel-
request(a)lists.fedoraproject.org wrote:
Date: Thu, 2 Jan 2020 12:52:03 -0500
From: Kaleb Keithley <kkeithle(a)redhat.com>
Subject: Re: Fedora 32 System-Wide Change proposal: GCC10
To: Development discussions related to Fedora
<devel(a)lists.fedoraproject.org>
Message-ID:
<CAC+Jd5DXL67daFJqkQ8omqx_FwWVPkzrKueeXsExhhp16xHSyw(a)mail.gmail.com>
Content-Type: multipart/alternative;
boundary="0000000000006bf9f6059b2bdac6"
--0000000000006bf9f6059b2bdac6
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
One (the only) thing I've noticed so far about gcc-10 is that (sloppily)
defined variables in header files that lack an extern qualifier and that
don't have an explicit defn in a .c file are no longer 'common' or .comm
but are now .global .bss and cause link errors due to duplicate definitions=
.
This very well might be because I made a mistake in the way I built gcc-10.
I'm not sure I have any way to know.
If it's not a mistake on my part then this change has revealed a few bugs
in the other applications that I work on.
These bugs should be fixed of course, but it's something to be aware of
when considering a major change like this, this late in the f32/rawhide
development cycle. Almost certainly a lot of other things will have similar
bugs.
This is a known and desirable change in the compiler.
GCC-10 defaults to -fno-common for C which is a change relative to gcc-
9 (C++ has been -fno-common for eons, possibly forever). You really
should get your sources fixed to adhere to modern C standards.
This affects ~450 packages in Fedora, openSUSE and other distributions.
I have already reached out to ffesti (without a response :( to get an
opt-out mechanism for redhat-rpm-config that would broken packages to
opt-out of this behavior.
jeff