Thanks for the patch to gprolog 1.4.5 that you sent me in November 2018
<https://lists.gnu.org/archive/html/bug-prolog/2018-11/msg00000.html>; it worked
for me then and still works on RHEL 7.7 x86-64. However, I am having problems
building gprolog 1.4.5 for x86-64 on Fedora 31, which is a preview of an
upcoming Red Hat release. I can reproduce the problem as follows:
wget https://ftp.gnu.org/gnu/gprolog/gprolog-1.4.5.tar.gz
wget https://lists.gnu.org/r/bug-prolog/2018-11/txtTqsnlDbpEZ.txt
tar xf gprolog-1.4.5.tar.gz
cp txtTqsnlDbpEZ.txt gprolog-1.4.5/src/Ma2Asm/x86_64_any.c
cd gprolog-1.4.5/src
./configure --prefix=/tmp/prefix
make
This fails, with the output ending like this:
...
gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' callinf_supp.c
gplc -c -C '-O3 -fomit-frame-pointer -funsigned-char' bc_supp.c
gplc -c foreign.wam
/tmp/gplc2wKVBd.s: Assembler messages:
/tmp/gplc2wKVBd.s:18: Error: junk `@hidden' after expression
/tmp/gplc2wKVBd.s:27: Error: junk `@hidden' after expression
/tmp/gplc2wKVBd.s:27: Error: too many memory references for `movq'
/tmp/gplc2wKVBd.s:28: Error: junk `@hidden' after expression
/tmp/gplc2wKVBd.s:28: Error: too many memory references for `movq'
...
and several more diagnostics like that.
I suspect that the problem has to do with the updated development tools in
Fedora 31, which has GCC 9.2.1 20190827 (Red Hat 9.2.1-1) and binutils
2.31-31.fc31, in contrast to RHEL 7.7 which has GCC 4.8.5 20150623 (Red Hat
4.8.5-39) and binutils 2.27-41.base.el7_7.1. My suspicion is increased because
when I build and install GCC 9.2.0 myself on RHEL 7.7, and use that to build
gprolog, I run into the same problem that I observe with Fedora 31.