http://qs321.pair.com?node_id=11120162


in reply to Re^4: 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)

Sorry if that sounded harsh (re: cross-posting), it's just polite to let others know.

I think you can safely ignore those ENOENTs because it's Perl trying various locations until it hits the right one - see the eventual open ... O_RDONLY. Memo-to-self: oh poor harddisk. So, filter those out please. For example at the terminal type: whatever-strace-command-you-ran | grep -v ENOENT and feel free to filter out other irrelevant blabber. Remember you are looking for a successful library open and then a failure because of the handshake. That can be quite a few lines apart.

Here is a successful module and library open:

stat("/home/rg8239/perl5/perlbrew/perls/perl-5.32.0/lib/5.32.0/x86_64- +linux/Time/HiRes.pm", {st_mode=S_IFREG|0444, st_size=25689, ...}) = 0 open("/home/rg8239/perl5/perlbrew/perls/perl-5.32.0/lib/5.32.0/x86_64- +linux/Time/HiRes.pm", O_RDONLY) = 5 stat("/home/rg8239/perl5/perlbrew/perls/perl-5.32.0/lib/5.32.0/x86_64- +linux/auto/Time/HiRes/HiRes.so", {st_mode=S_IFREG|0555, st_size=28181 +, ...}) = 0

From the output you posted my filter produced this:

stat("/bin/tar", {st_mode=S_IFREG|0755, st_size=178728, ...}) = 0 --- SIGCHLD (Child exited) @ 0 (0) --- stat("/usr/bin/unzip", {st_mode=S_IFREG|0755, st_size=115232, ...}) = +0 --- SIGCHLD (Child exited) @ 0 (0) --- stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 --- SIGCHLD (Child exited) @ 0 (0) --- --> Working on List::MoreUtils Fetching http://www.cpan.org/authors/id/R/RE/REHSACK/List-MoreUtils-0. +428.tar.gz ... --- SIGCHLD (Child exited) @ 0 (0) --- stat("List-MoreUtils-0.428.tar.gz", {st_mode=S_IFREG|0644, st_size=146 +030, ...}) = 0 OK --- SIGCHLD (Child exited) @ 0 (0) --- --- SIGCHLD (Child exited) @ 0 (0) ---

Are tar and unzip working? Why those SIGCHLD? I can't explain those, perhaps someone else can.

Please remember that it's you doing the debugging. So, filter out irrelevant ENONENTs and perhaps other noise, zoom in to the failed handshake and make sure that in your log the failed handshake library is shown (in an open() statement hopefully)