Subject: planned mass bug file: -fno-common

From: "Ariadne Conill" <[email-masked]>
Date: Tue, 25 Feb 2020 22:09:51 +0000

Hello,

GCC 10 and Clang 11 will enable the -fno-common CFLAG by default.

Accordingly, I plan to run a mock rebuild of the distribution with
-fno-common in $CFLAGS.

Any package which fails to build with -fno-common will have a bug
filed against it, as we need to fix these before we update to GCC
10, which will likely happen shortly after 3.12 release.

-fno-common disallows situations where the same symbol is declared
with non-extern linkage in two or more source files. For example,
if a.c and b.c both have print_variable() as a local function not
explicitly marked static, then the -fno-common binary will fail to
link. This can also commonly happen where two source files
declare a variable, either failing to declare it with static linkage
or with extern linkage to resolve the ambiguity in dependent files.

Gentoo has a nice wiki page about this:
https://wiki.gentoo.org/wiki/Gcc_10_porting_notes/fno_common

The mass rebuild will likely run this weekend, and any failures will
be reported over the next week.

Ariadne