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.



On Thu, Jan 2, 2020 at 10:12 AM Ben Cotton <bcotton@redhat.com> wrote:
https://fedoraproject.org/wiki/Changes/GCC10

== Summary ==
Switch GCC in Fedora 32 to 10.x.y, rebuild all packages with it, or
optionally rebuild just some packages with it and rebuild all packages
only in Fedora 33.

== Owner ==
* Name: [[User:Jakub|Jakub Jelínek]]
* Email: jakub@redhat.com

== Detailed Description ==

GCC 10 is currently in stage3, switching to stage4 in January, at
which point it will be in a prerelease state with only regression
bugfixes and documentation fixes allowed. The release will happen
probably in the middle of April. rpms will be built in early January,
but Jeff Law has been testing x86_64 Fedora test mass rebuilds with
GCC 10 snapshots for a while.


== Benefit to Fedora ==

See http://gcc.gnu.org/gcc-10/changes.html for the list of changes.

== Scope ==
* Proposal owners:
Prepare rpms for the new compiler, push them into rawhide, watch
voluntary rebuilds, fix bugs as they are reported, watch fallout from
mass rebuild.

* Other developers: N/A (not a System Wide Change)
Adjust for what will be written in
https://gcc.gnu.org/gcc-10/porting_to.html , fix bugs in packages that
will show up after rebuild or report if there are bugs on the compiler
side.

* Release engineering: Perform a mass rebuild, which will be needed
for the LTO System Wide change too.

* Policies and guidelines: N/A (not a System Wide Change)
I don't think so, this is a usual system compiler update that is being
done every year.  I think we have skipped GCC 4.2, so in Fedora this
is likely the 15th such System Wide change.
* Trademark approval: N/A (not needed for this Change)


== Upgrade/compatibility impact ==
No impact

== How To Test ==
GCC has its own testsuite, which is run during the package build, plus
many other packages with automated tests also help to test the new
gcc.

== User Experience ==
Users will be able to see compiled code improvements and use the newly
added features.
Developers will notice a newer compiler, and might need to adjust
their codebases acording to http://gcc.gnu.org/gcc-10/porting_to.html,
or, if they detect a GCC bug, report it.

== Dependencies ==
libtool, annobin, gcc-python-plugin depend on exact gcc version, those
need to be rebuilt.

== Contingency Plan ==
If bugs are discovered, I'd appreciate help from the package owners in
preparing self-contained testcases to speed up analysis and fixing the
bugs.  Don't have time to debug issues in 12000+ packages, especially
when in many cases it could be caused by undefined code in the
packages etc.  I don't expect we'll have to fall back to the older
gcc, we've never had to do it in the past,
but worst case we can mass rebuild everything with older gcc again.
Jeff Law has performed test mass rebuild on x86_64.

* Contingency mechanism: (What to do?  Who will do it?) Revert to
older gcc, mass rebuild everything again
* Contingency deadline: Before release
* Blocks release? Yes
* Blocks product? No

== Documentation ==
http://gcc.gnu.org/gcc-10/

== Release Notes ==
Fedora 32 comes with GCC 10.1 as primary compiler, see
http://gcc.gnu.org/gcc-10/changes.html for user visible changes in it.

--
Ben Cotton
He / Him / His
Fedora Program Manager
Red Hat
TZ=America/Indiana/Indianapolis
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org