Re: Linking errors from gplc with ld 2.28
Keri Harris <[email protected]> Mon, 24 Jul 2017 09:37:52 +0200
| Newsgroups | gmane.comp.gnu.prolog.bugs |
|---|---|
| Message-ID | <[email protected]> |
On 21/07/2017 12:25, Jasper Taylor wrote: > I just upgraded my Debian box from Jessie to Stretch and I find I can no > longer use gplc to convert Prolog code into executables. I get a lot of > error messages starting as follows... > > /usr/bin/ld: /tmp/gplcMP1nIg.o: relocation R_X86_64_32S against `.text' > can not be used when making a shared object; recompile with -fPIC > /usr/bin/ld: /usr/local/gprolog-1.4.4/lib/all_pl_bips.o: relocation > R_X86_64_32S against `.text' can not be used when making a shared > object; recompile with -fPIC > /usr/bin/ld: /usr/local/gprolog-1.4.4/lib/all_fd_bips.o: relocation > R_X86_64_32S against `.text' can not be used when making a shared > object; recompile with -fPIC > . > > . > > /usr/bin/ld: final link failed: Nonrepresentable section on output > collect2: error: ld returned 1 exit status > compilation failed > > The first line refers to the object file generated from the Prolog code, > subsequent lines to objects included in the gprolog installation. Debian > Stretch includes ld version 2.28, while systems on which gplc works > properly include ld version 2.25. > > Adding -C '-fPIC' makes no difference, presumably because the c compiler > is not used when converting Prolog code to executable. Adding -A -'fPIC' > produces an error message from the assembler, presumably because > position-independence is determined in the assembly language code and > cannot be added by the assembler. > > I get similar errors attempting to recompile gprolog on the new system. > Does anyone know what is going on? It's quite possible that this particular problem has been fixed by upstream commit cc8249 [1]. Are you able to apply that fix and rebuild gprolog? Thanks Keri [1] https://sourceforge.net/p/gprolog/code/ci/cc8249