Build failures on GCC 10 due to -fno-common default
Till Hofmann <[email protected]> Fri, 7 Feb 2020 09:31:20 +0100
| Newsgroups | gmane.comp.gnu.prolog.bugs |
|---|---|
| Message-ID | <[email protected]> |
Hi all, gprolog currently fails to build on Fedora Rawhide due to a change in GCC 10. With GCC 10, it is no longer allowed to have multiple definitions of the same variable, which may happen if the variable is declared in a header without extern. This causes errors such as this: /usr/bin/ld: /builddir/build/BUILD/gprolog-1.4.5/src/Linedit/liblinedit.a(terminal.o):= /builddir/build/BUILD/gprolog-1.4.5/src/Linedit/linedit.h:92: multiple definition of `pl_le_hook_set_line_buffering'; /builddir/build/BUILD/gprolog-1.4.5/src/BipsPl/libbips_pl.a(stream_c.o):/= builddir/build/BUILD/gprolog-1.4.5/src/Linedit/linedit.h:92: first defined here GCC has an explanation and porting instructions: https://gcc.gnu.org/gcc-10/porting_to.html#common I can re-enable -fcommon for Fedora builds. However, the recommended way to fix this is to actually fix the code. Kind regards, Till