Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^18: XS.c: loadable library and perl binaries are mismatched (got handshake key 0xc100000, needed 0xc180000)

by syphilis (Archbishop)
on Aug 19, 2020 at 01:32 UTC ( [id://11120892]=note: print w/replies, xml ) Need Help??


in reply to Re^17: XS.c: loadable library and perl binaries are mismatched (got handshake key 0xc100000, needed 0xc180000)
in thread XS.c: loadable library and perl binaries are mismatched (got handshake key 0xc100000, needed 0xc180000)

I think the gcc version may have been a red herring

Quite possibly, but it seems that there's something about these old RHEL systems and gcc compilers that's triggering a bug - either a bug in List-MoreUtilsXS-0.428 or a bug in the way the handshake compatibility is being established.

I would suggest building perl with that handshake mechanism disabled - just to see if there is anything that is actually incompatible about XS.c. (Perhaps there's absolutely nothing wrong with XS.c.)
However, I don't know how to build such a perl without hacking at util.c (in the top level directory of the perl source).
If you think it's worth the effort, try changing (in util.c):
noperl_die("%s: loadable library and perl binaries are mismatched"
to a non-fatal:
Perl_warn(aTHX_ "%s: loadable library and perl binaries are mismatched +"
or even just:
printf("%s: loadable library and perl binaries are mismatched"
And then rebuild perl and see how List-MoreUtils-XS-0.428 fares.
(I haven't tested either of those suggested hacks.)

Could you also post the config.log of the L::MU::XS build that is generated by the perl Makefile.PL step. (You'll find that config.log in the same directory as the Makefile.PL).
It might provide some clue as to the cause of the problem.
And it might be worth filing a bug report about this at https://rt.cpan.org/Public/Dist/Display.html?Name=List-MoreUtils-XS in case the author has some ideas.

Thanks for updating us !!

Cheers,
Rob
  • Comment on Re^18: XS.c: loadable library and perl binaries are mismatched (got handshake key 0xc100000, needed 0xc180000)
  • Select or Download Code

Replies are listed 'Best First'.
Re^19: XS.c: loadable library and perl binaries are mismatched (got handshake key 0xc100000, needed 0xc180000)
by syphilis (Archbishop) on Aug 19, 2020 at 05:17 UTC
    If you think it's worth the effort, try changing (in util.c)...

    I don't think it's worth the effort.
    I thought it might be useful to see what happens on your system if the handshake fails but the program is allowed to continue on.
    So I tried (on Windows) changing the "noperl_die" to a "Perl_warn" as I suggested above, but when faced with an XS.dll (from an earlier version of perl) that failed to pass the handshake, the program still died:
    XS.c: loadable library and perl binaries are mismatched (got handshake + key 00000000005487e8, needed 0000000000000000)
    Even making util.c's Perl_xs_handshake() return as soon as the handshake mismatch was detected didn't prevent the fatality.

    I was hoping for a simple, unsophisticated, way of turning the mismatch into nothing more than a warning - but the gestapo have got me snookered on that one ... for the moment, anyway.
    It probably wouldn't have helped much, anyway.

    Cheers,
    Rob

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11120892]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others imbibing at the Monastery: (6)
As of 2024-04-23 20:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found