LibXML.c: loadable library and perl binaries are mismatched

RS richard22j at zoho.com
Mon Aug 15 07:28:13 PDT 2022


I have found this at
https://rt-archive.perl.org/perl5/Ticket/Display.html?id=124201

"(got handshake key 0x7bc0000, needed 0x7cc0000)" means in your XS 
module, the definition of the perl's master interpreter struct is 
smaller than the interp engine expects (XS module says its 0x7bc bytes 
long, interp core says its 0x7cc bytes long). The layouts of the structs 
are not compatible. They must be the same otherwise memory corruption 
occurs.

This is probably not a bug in Perl but in your non p5p-code. The error 
message means that a .so or .o, is not being executed by the same perl 
(same config.h, same -Ds on cmd line, same Config.pm, same perl 5.X._, 
where X must match) it was compiled against. If it worked in the past, 
you were lucky it didn't SEGV. Unlike with pure Perl modules, you can 
not copy paste XS module .so'es between different perl builds instead of 
rebuilding them from source (with the 1 small exception of perl 
maintenance releases, as long as they have an identical input to 
Configure/config.h/Config.pm).

That seems to explain what the error is.  How do I fix it?


On 14/08/2022 16:31, RS wrote:
....
> 
> I have just upgraded from Kubuntu 18.04.6 LTS to Kubuntu 20.04.4 LTS. 
> Now whenever I try to run get_iplayer, with or without arguments, it 
> immediately displays a message
> 
> LibXML.c: loadable library and perl binaries are mismatched (got 
> handshake key 0xde00080, needed 0xcd00080)
> 
> It does not even display the version number.
> 




More information about the get_iplayer mailing list