On Thu, 2020-01-02 at 19:48 +0000, devel- request@lists.fedoraproject.org wrote:
Date: Thu, 2 Jan 2020 12:52:03 -0500 From: Kaleb Keithley kkeithle@redhat.com Subject: Re: Fedora 32 System-Wide Change proposal: GCC10 To: Development discussions related to Fedora devel@lists.fedoraproject.org Message-ID: CAC+Jd5DXL67daFJqkQ8omqx_FwWVPkzrKueeXsExhhp16xHSyw@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