http://qs1969.pair.com?node_id=627285

rvosa has asked for the wisdom of the Perl Monks concerning the following question:

Dear monks,

I'm trying to build Inline::Java on the machine in the message header (OSX 10.4.10 Intel, default perl) with the JNI, PerlNatives and PerlInterpreter options. make seems to go through okay:
Eupoa:~/Desktop/Inline-Java-0.52 rvosa$ make [ ... snipped scroll bar exploding uninformative stuff, sorry about th +at ... ] chmod 755 ../blib/arch/auto/Inline/Java/JNI/JNI.bundle cp JNI.bs ../blib/arch/auto/Inline/Java/JNI/JNI.bs chmod 644 ../blib/arch/auto/Inline/Java/JNI/JNI.bs Manifying ../blib/man3/Inline::Java::Callback.3pm Manifying blib/man3/Inline::Java.3pm
But when I run make test I get:
t/01_init..............IO object version 1.21 does not match bootstrap + parameter 1.23 at /System/Library/Perl/5.8.6/darwin-thread-multi-2le +vel/DynaLoader.pm line 253.
and subsequent tests fail with Inline saying it only knows about extension languages C, Foo and foo. I'm not sure how to fix this, any suggestions?

Thanks!

Replies are listed 'Best First'.
Re: Inline::Java on OSX 10.4.10 Intel
by InfiniteLoop (Hermit) on Jul 18, 2007 at 16:25 UTC
    Looks like you have older version of IO in your PERL5LIB path. You could either cpan upgrade IO module or point PERL5LIB to the updated version.
      Thanks, that gets me a lot further, all tests pass until I try to run the perlnatives tests:
      [ ... here were passing non-perlnatives tests ... ] PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_h +arness(0, '../../blib/lib', '../../blib/arch')" t/*.t t/01_init............ok + t/02_perl_natives....Can't initialize PerlNatives functionnality: Perl +Natives extension (/Users/rvosa/Desktop/Inline-Java-0.52/blib/arch/au +to/Inline/Java/PerlNatives/PerlNatives.dylib) can't be found at (eval + 11) line 238 at t/02_perl_natives.t line 21 t/02_perl_natives....dubious
      Is it something to do with the fact that a *.bundle is created, not a *.dylib? I obviously don't know how all this is supposed to work, but in any case there really isn't a dylib in the folder where it looks.
        You could try disabling the PerlNatives feature, unless you specifically require it. Inline::Java::PerlNatives is still experimental.