New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"loadable library and perl binaries are mismatched" not informative #15861
Comments
From frederik@ofb.netCreated by frederik@ofb.netI have a number of modules which I've installed via 'cpanm'. Sometimes $ some-script-of-mine This message would be more helpful to me if it specified the module Perl Info
|
From @jkeenanOn Sat, 04 Feb 2017 23:08:09 GMT, frederik@ofb.net wrote:
Does the discussion in https://rt-archive.perl.org/perl5/Ticket/Display.html?id=124201 help you understand the problem better? Thank you very much. -- |
The RT System itself - Status changed from 'new' to 'open' |
From @jkeenanOn Sat, 04 Feb 2017 23:08:09 GMT, frederik@ofb.net wrote:
Also, can you supply the output of 'perl -V' for both the version of perl against which your module was originally compiled, as well as that for the perl to which you upgraded (assuming that the 'perl -V' attached to this ticket is neither)? Thank you very much.
-- |
From frederik@ofb.netThank you James. Your link describes the problem but I think I I'm just making a feature request for a better error message. TBH, I I run Arch and I'm attaching 'perl -V' on the old system (same as On Sat, Feb 04, 2017 at 04:27:55PM -0800, James E Keenan via RT wrote:
|
From frederik@ofb.netSummary of my perl5 (revision 5 version 24 subversion 0) configuration: Characteristics of this binary (from libperl): |
From frederik@ofb.netSummary of my perl5 (revision 5 version 24 subversion 1) configuration: Characteristics of this binary (from libperl): |
From @tonycozOn Sat, 04 Feb 2017 18:06:42 -0800, frederik@ofb.net wrote:
This might be a (conceptual) bug in Perl_xs_handshake(). The XS handshake uses the size of the interpreter structure as part of But maintenance releases *can* safely add members to the end of the interpreter structure, and 2bfbbba does just that. The handshake values in frederick's error message: (got handshake key 0x7ec0080, needed 0x7f00080) extract the structure sizes: got 0x7ec needed 0x7f0 which differ in sizeof(STRLEN) on the 32-bit system in the original -V output. So I think Perl_xs_handshake() should only be checking that the size has not shrunk in maintenance releases. One problem with that is it signifcantly reduces the strength of that check - Perl_xs_handshake() would no longer be detecting the type of problems we want it to detect - differences in sizes of the interpreter structure due to changes to the sizes of it's members (eg use64bitint changes) or due to build options (PERL_HASH_RANDOMIZE_KEYS for example) which may weaken the current interface to near uselessness. Tony |
From @iabynOn Sat, Feb 04, 2017 at 03:08:09PM -0800, via RT wrote:
Leaving aside the discussions elsewhere in this thread about the handshake
XS.c is the name of the src file from which the loadable lib was compiled; $ ./perl -I../perl-5.24.1t/lib -MPerlIO::scalar -e 1 The error is given at the point when a dynamic library is loaded; this while loading MPerlIO::scalar: scalar.c: loadable library and perl binaries are mismatched ... -- |
From frederik@ofb.net
That's more or less what I had in mind. Up to you if it's too much I guess one could argue that I should just have a command to recompile Thanks, Frederick |
From @GrinnzOn Mon, Feb 6, 2017 at 12:53 PM, <frederik@ofb.net> wrote:
Generally, the preferred approach is not installing to a package-managed -Dan |
From @LeontOn Mon, Feb 6, 2017 at 12:30 PM, Dave Mitchell <davem@iabyn.com> wrote:
The bootstrap function already received the arguments to Leon |
From @andk
CPAN.pm has a command for that. It's called 'recompile'. -- |
From frederik@ofb.netOn Mon, Feb 06, 2017 at 07:54:09PM +0100, Andreas Koenig wrote:
I knew about CPAN::recompile but I had thought I would need a eval $(perl -Mlocal::lib=.local) I ran the command perl -MCPAN -e 'recompile()' and after fetching metadata it seems to be doing the recompilation So another possibility for the error message would be to have it Thanks, Frederick |
Thank you for this: That was hard to find ... Upgrading to Ubuntu 20.04 from 18.04 wreaked havoc on my Perl setup. |
Same problem, but |
Found more info. For an offending package: I had to do this for a handful of modules, and then I was fine. If you don't know which module is bad do a find: |
I wound up renaming my |
Hi! Damn.c: loadable library and perl binaries are mismatched (got handshake key 0xdb00080, needed 0xde00080) Also, I was trying to implement the solution mentioned by @PrincessRTFM. While doing that accidently deleted the perl folder. Thank you. |
Just wanted to mention that this problem had me stumped for some time when working through the process of setting up a Lightning Node. It was finally overcome when using the command "sudo ./autogen.sh" as opposed to "./autogen.sh". Obviously there was some permission issue deep in the Perl libraries. This solution may be unique to my Ubuntu setup. It's mentioned as a possible last resort solution. |
I think it could be improved by having EU::PXS creating a macro with the module name (as from the MODULE keyword) and combining that with the FILE to supply to Perl_xs_handshake() instead of just FILE. It would require untangling the maze of macros in XSUB.h though to define new macros that accept the new string instead of just supplying FILE. |
I get this error when trying to upgrade
|
Migrated from rt.perl.org#130718 (status was 'open')
Searchable as RT130718$
The text was updated successfully, but these errors were encountered: