makeinfo: loadable library and perl binaries are mismatched

239 Views Asked by At

I recently upgraded Ubuntu on my system to version 22.04.3 LTS (Jammy Jellyfish) which broke my cross-compiler toolchain, which consists of binutils and gcc configured for the i686 architecture.

Running makeinfo post OS upgrade gives

parsetexi/Parsetexi.c: loadable library and perl binaries are mismatched (got handshake key 0xcd00080, needed 0xeb00080)

My understanding of the error message is that the loadable lib Parsetexi depends on the version of Perl I had installed prior to the OS upgrade, and the newer version is not backwards compatible causing the error. So the solution seems to be to rebuild the perl shared library Parsetexi.so to use the newer version of perl.

So I looked at the /usr/lib/texinfo directory and ran ldd Parsetexi.so which gave

linux-vdso.so.1 (0x00007fff9965a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fbd21cbb000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbd21f2d000)

No mention of Perl...

If I look at /usr/share/texinfo/Texinfo/XS there is a parsetexi directory containing the file Parsetexi.pm. It is part of the Texinfo::Parser package. Looking at this related answer, maybe I just need to upgrade the package using cpan. I tried cpan upgrade /(.*)/ but it did not fix the issue.

I have looked at info on Texinfo and this answer but still am not sure how to proceed. Any help appreciated.

Edit: I have since re-downloaded Texinfo (which contains makeinfo) from here, and followed the installation steps here. After install, I ran makeinfo but still get the same binary mismatch.

Edit 2: I have now cleaned up my machine such that running which -a makeinfo yields only one installation at /usr/local/bin/makeinfo.

Not sure if this is relevant, but I was able to find two files titled Parsetexi.pm, one at /usr/local/share/texinfo/Texinfo/XS/parsetexi/Parsetexi.pm and the other at /usr/share/perl5/Texinfo/XS/parsetexi/Parsetexi.pm. Both of which have as second line use 5.00405 which differs from my perl at /bin/perl which has version v5.34.0.

For @HåkonHægland, I am not sure how to make use of your last comment about line 165 or 171 in XSLoader.pm.

0

There are 0 best solutions below