[OpenBSD] staticperl dying unexpectedly with Coro/jit...
nomad at null.net
nomad at null.net
Thu Oct 20 22:18:03 CEST 2016
I'm having difficulting getting staticperl and Coro (I think) to work
together on 64-bit OpenBSD 6.0 (running under Virtualbox).
Regardless of which order I pass my various "--use $Module" options to
staticperl (and therefore I presume the SP-mkbundle script) the last
output I always see with a bunch of --verbose flags is:
+ found potential dependency Coro/State.pm
+ found potential dependency Coro/jit-amd64-unix.pl
tracing module PerlIO::scalar
The exit code reported by bash is 141. /usr/include/sysexit.h has:
#define EX__BASE 64 /* base value for error messages */
And 141-64 = 77:
#define EX_NOPERM 77 /* permission denied */
[I'm not entirely sure I've got that reasoning right though]
I think I have narrowed down the program exit to the syswrite call in
the trace_module function:
sub trace_module {
print "tracing module $_[0]\n"
if $VERBOSE >= 2;
syswrite $TRACER_W, "use $_[0]\n";
trace_parse;
}
Debug statements I add before the syswrite call work, but I never see
the matching statement after. I'm assuming that the tracer child is
bugging out ... but then I would have also expected to see EPIPE so all
I'm left with is speculation.
Likewise, the child process seems to die on an eval:
eval $eval; # <<<< never returns
warn "ERROR: $@ (while loading '$mod')\n"
if $@;
I just thought of stripping away all of my extra arguments -
I can actually reliably reproduce the error with the following:
$ staticperl/bin/SP-mkbundle -v -v -v -v -v --use Coro::State
tracing module Coro::State
+ found potential dependency Coro/State.pm
+ found potential dependency common/sense.pm
+ found potential dependency Carp.pm
+ found potential dependency strict.pm
+ found potential dependency warnings.pm
+ found potential dependency Exporter.pm
+ found potential dependency XSLoader.pm
+ found potential dependency Coro/jit-amd64-unix.pl
tracing module PerlIO::scalar
If I just use Coro::jit-amd64-unix.pl then the command succeeds.
Versions:
$ staticperl --version
staticperl version 1.44
$ staticperl perl -v
This is perl 5, version 20, subversion 3 (v5.20.3) built for OpenBSD.amd64-openbsd
staticperl perl -MCoro -E 'warn Coro->VERSION'
Abort trap (core dumped) # but it is version 6.511
Any ideas on how I can debug this further?
--
Mark Lawrence
More information about the anyevent
mailing list