[RPL/2] Fwd: Build of 4.1.29 fails on Linux Mint 19 Cinnamon 64-bit

BERTRAND Joël joel.bertrand at systella.fr
Thu Jan 10 10:03:04 CET 2019


Jonathan Busby a écrit :
> Seems my last reply was too large. Sorry about that.
> 
> ---------- Forwarded message ---------
> From: *Jonathan Busby* <jonathanbusby at gmail.com 
> <mailto:jonathanbusby at gmail.com>>
> Date: Wed, Jan 9, 2019 at 3:07 PM
> Subject: Re: [RPL/2] Build of 4.1.29 fails on Linux Mint 19 Cinnamon 64-bit
> To: RPL/2 mailing list <rpl2 at systella.fr <mailto:rpl2 at systella.fr>>
> 
> 
> 
> 
> On Wed, Jan 9, 2019 at 2:22 AM BERTRAND Joël <joel.bertrand at systella.fr 
> <mailto:joel.bertrand at systella.fr>> wrote:
> 
> 
> 
>              Please not send output of make -d. This is not a makefile's
>     bug but a
>     trouble with your system.
> 
> 
> Well, if it's a problem with my system, then it's a problem with all the 
> latest versions of Linux Mint 19 Cinnamon 64-bit. I've tested the code 
> on another Linux Mint install and I get the same error.
> 
> 
>              Can you check that wmluiltok.c is not empty ? wmluiltok.c
>     is created by
>     flex.
> 
> 
> wmluiltok.c is not empty and contains a proper Flex scanner.
> 
>              I have found that flex is faulty on several Linux system. If
>     wmluiltok.c is not empty, you have to rebuild flex with
>     -ffat-lto-objects option, allowing to use lto also on motif.
> 
> 
> I guess I'll have to do what you suggest above. Just to make sure I 
> understand, I need to build the latest version of Flex from the source 
> and make sure to include the "-ffat-lto-objects" option to GCC? When you 
> say "allowing to use lto also on motif" what do you mean exactly? Do I 
> have to compile Motif from the sources in the archive and supply the 
> same option to GCC as you suggested above?

	I'm not a specialist of gcc options. LTO is 'link time optimizer' and I 
have seen there are some bugs in link stage when you try to link LTO 
with no LTO objects.

> EDIT : After I typed the above, I compiled GNU Flex with the 
> -ffat-lto-objects by modifying its configure.ac <http://configure.ac> to 
> get it to supply the option to GCC and then I tried compiling the Motif 
> source that comes packaged with RPL/2 ( I also had to modify 
> configure.ac <http://configure.ac> ). Although your suggestions seem to 
> have cleared up the previous problem with wmluiltok.c, I now get a new 
> error :
> 
> http://www.mediafire.com/file/v7wwlc8tuen6bt2/make-log-error-paste-1.asc/file
> 
> I resolved the above just by issuing an "apt update && apt install 
> libfl2" command and rebuilding the source.
> 
> EDIT 2 : Well, this time all the X Windows and Motif related code built 
> fine, but then the build failed with a new error :
> 
> http://www.mediafire.com/file/hhx46jxfh3l39je/make-log-error-2.asc/file
> 
> It looks like the main RPL/2 configure script is not calling the zlib 
> configure script. When I manually corrected that, I got a new error when 
> trying to compile zlib :

zlib configure script is called by main configure script :

if test ! -d tools/$ZLIB; then
     gunzip -c "$srcdir"/tools/$ZLIB.tar.gz | \
             (cd tools && tar -xf - && cd $ZLIB && ./configure --static)
fi

If you want to clean your build tree, you can run 'make purge'.

> "
> cc -shared -march=core2 -O2 -pipe -ffat-lto-objects 
> -D_LARGEFILE64_SOURCE=1 -o libz.so.1.2.11 adler32.lo crc32.lo deflate.lo 
> infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo 
> compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo  -lc
> /usr/bin/ld: deflate.lo: relocation R_X86_64_PC32 against symbol 
> `_length_code' can not be used when making a shared object; recompile 
> with -fPIC
> /usr/bin/ld: final link failed: Bad value
> collect2: error: ld returned 1 exit status
> Makefile:282: recipe for target 'libz.so.1.2.11' failed
> make: *** [libz.so.1.2.11] Error 1
> "

	R_X86_64_PC32 ?

	32 (on a 64 bits system) or 64 bits ?

> I added "-fPIC" via the usual environment variables but that didn't fix 
> the build failure. I next modified the zlib Makefile.in and that fixed 
> the problem. Then I restarted the RPL/2 build and it finally built! :D 
> After running "sudo checkinstall"  and installing the package I was able 
> to "run" "rpl -i" but it exited with the error :
> 
> "mint at mint:~$ rpl -i
> +++RPL/2 (R) version 4.1.29 (Wednesday 01/09/19, 14:41:11 CST)
> +++Copyright (C) 1989 to 2017, 2018 BERTRAND Joel
> 
> +++This is a free software with absolutely no warranty.
> +++For details, type 'warranty'.
> 
> +++Fatal : Hash code mismatch
> Function md5(/usr/local/bin/rpliconv)
> Computed hash code : 10a03ae9906b128e4e0acd855f3856f4
> Expected hash code : 9a1e8ca96b5eab8831a59d31f11de7f8
> +++Fatal : Error in compilation"

	All external tools are signed (rpliconv, rplawk, rplpp...) and you have 
to use tools built by makefile.

	Best regards,

	JKB



More information about the RPL2 mailing list