On 21. 01. 20 17:05, Steve Grubb wrote:
On Tuesday, January 21, 2020 7:35:03 AM EST Miro Hrončok wrote:
> This is a known thing in gcc 10:
> "Default to -fno-common
> A common mistake in C is omitting extern when declaring a global variable
> in a header file. If the header is included by several files it results in
> multiple definitions of the same variable. In previous GCC versions this
> error is ignored. GCC 10 defaults to -fno-common, which means a linker
> error will now be reported. To fix this, use extern in header files when
> declaring global variables, and ensure each global is defined in exactly
> one C file. As a workaround, legacy C code can be compiled with -fcommon.
> int x; // tentative definition - avoid in header files
> extern int y; // correct declaration in a header file"
So, for those of us using F31 as the development / test environment, is there
a macro that we can add -fno-common to in ~/.rpmmacros without placing it in
the %__global_compiler_flags in /usr/lib/rpm/redhat/macros ?
Looking for an easy way to reproduce this without modifying root owned files.
You should be able to redefine %__global_compiler_flags in ~/.rpmmacros.
It still means you need to copy paste the current flags, but you won't need to
touch root owned files.