Re: gcc 10: Default to -fno-common, multiple definitions of ...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 21. 01. 20 13:35, Miro Hrončok wrote:
Hello,

we try to rebuild all Python packages against Python 3.9 and report the failures. I've seen several similar failures in a row now that can be reproduced in Fedora rawhide with the new gcc version.

ld errors on multiple definitions of ..., for example:

ld: tests/bp_account.o:/builddir/build/BUILD/kernel-5.4.fc32/linux-5.4/tools/perf/tests/bp_account.c:22: multiple definition of `the_var'; tests/bp_signal.o:/builddir/build/BUILD/kernel-5.4.fc32/linux-5.4/tools/perf/tests/bp_signal.c:38: first defined here

This is a known thing in gcc 10:

https://gcc.gnu.org/gcc-10/porting_to.html#common

"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"


Those of you who need a temporary workaround, follow:

https://src.fedoraproject.org/rpms/redhat-rpm-config/blob/master/f/buildflags.md#legacy-fcommon

(The section is called "Legacy -fcommon" in case the anchor link doesn't work for you (it doesn't work for me).)

--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux