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