unexpected exception has been detected in native code outside the VM
[email protected] (Henrik Åberg (QDT)) Fri, 24 Nov 2000 17:46:21 +0100
| Newsgroups | perl.jpl |
|---|---|
| Message-ID | <33C9100DDE98D211A16D0008C7A4E3FE0A7B68ED@esealnt103> <[email protected]> |
Hi all. I have encountered a problem when I run the Sample application. The installation process seems to pass without complications. Running the Sample application results in this error message: # java Sample # # An unexpected exception has been detected in native code outside the VM.# Program counter=0xfada6da0 # # Problematic Thread: prio=5 tid=0x28070 nid=0x1 runnable # Abort(coredump) # I´m running Perl 5.005_03 on Solaris 7 with JDK 1.3. Is there a problem with these versions working together? I have attached the log from the installation process. What do I need to have working to be able to run Perl code from Java? Best regards /Henrik.
install.log
(application/octet-stream, 7.2 KB)
JPL_SRC = /install/jpl
JAVA_HOME = /usr/j2se
You need to decide which directory JPL files are to be installed in.
Applications will look in subdirectories of this directory for any JPL
related files.
You may use the current directory (/install/jpl)
or you may use a directory such as /usr/jpl.
Install JPL files where: [/install/jpl] JPL_HOME = /install/jpl
Writing setvars...
Starting install...
Writing Makefile for JPL::Class
rm -rf ./blib Makefile.aperl blib/arch/auto/JPL/Class/extralibs.all perlmain.c mon.out core so_locations pm_to_blib *~ */*~ */*/*~ *.o *.a perl.exe Class.bso Class.def Class.exp
mv Makefile Makefile.old > /dev/null 2>&1
Writing Makefile for JPL::Class
mkdir blib
mkdir blib/lib
mkdir blib/lib/JPL
mkdir blib/arch
mkdir blib/arch/auto
mkdir blib/arch/auto/JPL
mkdir blib/arch/auto/JPL/Class
mkdir blib/lib/auto
mkdir blib/lib/auto/JPL
mkdir blib/lib/auto/JPL/Class
cp Class.pm blib/lib/JPL/Class.pm
cp AutoLoader.pm blib/lib/JPL/AutoLoader.pm
cp Compile.pm blib/lib/JPL/Compile.pm
Skipping /usr/local/lib/perl5/site_perl/5.005/JPL/Class.pm (unchanged)
Skipping /usr/local/lib/perl5/site_perl/5.005/JPL/AutoLoader.pm (unchanged)
Skipping /usr/local/lib/perl5/site_perl/5.005/JPL/Compile.pm (unchanged)
Writing /usr/local/lib/perl5/site_perl/5.005/sun4-solaris-thread/auto/JPL/Class/.packlist
Appending installation info to /usr/local/lib/perl5/5.00503/sun4-solaris-thread/perllocal.pod
Installing PerlInterpreter class
rm -f libPerlInterpreter.so
rm -f PerlInterpreter.class
javac PerlInterpreter.java
javah -jni PerlInterpreter
gcc -B/usr/ccs/bin/ -fPIC -R /usr/local/lib/perl5/5.00503/sun4-solaris-thread/CORE -G -L/usr/local/lib -I/usr/local/lib/perl5/5.00503/sun4-solaris-thread/CORE -I/usr/j2se/include -I/usr/j2se/include/solaris -I/usr/j2se/include/genunix PerlInterpreter.c \
/usr/local/lib/perl5/5.00503/sun4-solaris-thread/auto/DynaLoader/DynaLoader.a \
-lc -lm -ldl -lthread \
-o libPerlInterpreter.so
mkdir -p /install/jpl/lib/sun4-solaris-thread
cp libPerlInterpreter.so /install/jpl/lib/sun4-solaris-thread
cp PerlInterpreter.class /install/jpl/lib
Installing JNI module
Found jni.h in /usr/j2se/include/
Found jni_md.h in /usr/j2se/include/solaris/
/usr/j2se/include/
/usr/j2se/include/solaris/
Found libjava.so libkaffevm.so javai.lib jvm.lib as /usr/j2se/jre/lib/sparc/libjava.so
Found libjvm.so as /usr/j2se/jre/lib/sparc/server/libjvm.so
Found libawt.so as /usr/j2se/jre/lib/sparc/libawt.so
Found libhpi.so as /usr/j2se/jre/lib/sparc/native_threads/libhpi.so
Looks like native threads...
We're embedding Perl in Java via libPerlInterpreter.so.
Writing Makefile for JNI
rm -rf JNI.c ./blib Makefile.aperl blib/arch/auto/JNI/extralibs.all perlmain.c mon.out core so_locations pm_to_blib *~ */*~ */*/*~ *.o *.a perl.exe JNI.bs JNI.bso JNI.def JNI.exp
mv Makefile Makefile.old > /dev/null 2>&1
Found jni.h in /usr/j2se/include/
Found jni_md.h in /usr/j2se/include/solaris/
/usr/j2se/include/
/usr/j2se/include/solaris/
Found libjava.so libkaffevm.so javai.lib jvm.lib as /usr/j2se/jre/lib/sparc/libjava.so
Found libjvm.so as /usr/j2se/jre/lib/sparc/server/libjvm.so
Found libawt.so as /usr/j2se/jre/lib/sparc/libawt.so
Found libhpi.so as /usr/j2se/jre/lib/sparc/native_threads/libhpi.so
Looks like native threads...
We're embedding Perl in Java via libPerlInterpreter.so.
Writing Makefile for JNI
mkdir blib
mkdir blib/lib
mkdir blib/arch
mkdir blib/arch/auto
mkdir blib/arch/auto/JNI
mkdir blib/lib/auto
mkdir blib/lib/auto/JNI
mkdir blib/man3
cp JNI.pm blib/lib/JNI.pm
AutoSplitting blib/lib/JNI.pm (blib/lib/auto/JNI)
/usr/bin/perl -I/usr/local/lib/perl5/5.00503/sun4-solaris-thread -I/usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/5.00503/ExtUtils/xsubpp -typemap /usr/local/lib/perl5/5.00503/ExtUtils/typemap -typemap typemap JNI.xs >xstmp.c && mv xstmp.c JNI.c
gcc -B/usr/ccs/bin/ -c -I/usr/j2se/include/ -I/usr/j2se/include/solaris/ -D_REENTRANT -DDEBUGGING -I/usr/local/include -D_REENTRANT -DEMBEDDEDPERL -D_REENTRANT -g -DVERSION=\"0.01\" -DXS_VERSION=\"0.01\" -fPIC -I/usr/local/lib/perl5/5.00503/sun4-solaris-thread/CORE JNI.c
Running Mkbootstrap for JNI ()
chmod 644 JNI.bs
LD_RUN_PATH="/lib:/usr/j2se/jre/lib/sparc:/usr/j2se/jre/lib/sparc/native_threads:/install/jpl/lib/sun4-solaris-thread" gcc -B/usr/ccs/bin/ -o blib/arch/auto/JNI/JNI.so -R/lib -R/usr/j2se/jre/lib/sparc -R/usr/j2se/jre/lib/sparc/native_threads -R/install/jpl/lib/sun4-solaris-thread -G -L/usr/local/lib JNI.o -R/usr/local/lib/perl5/5.00503/sun4-solaris-thread/CORE -L/usr/local/lib/perl5/5.00503/sun4-solaris-thread/CORE -R/usr/j2se/jre/lib/sparc/ -L/usr/j2se/jre/lib/sparc/ -R/usr/j2se/jre/lib/sparc/server/ -L/usr/j2se/jre/lib/sparc/server/ -R/usr/j2se/jre/lib/sparc/native_threads/ -L/usr/j2se/jre/lib/sparc/native_threads/ -R/usr/j2se/jre/lib/sparc/ -L/usr/j2se/jre/lib/sparc/ -R/install/jpl/lib/sun4-solaris-thread -L/install/jpl/lib/sun4-solaris-thread -lthread -lc -ljava -ljvm -lhpi -lawt -lPerlInterpreter
chmod 755 blib/arch/auto/JNI/JNI.so
cp JNI.bs blib/arch/auto/JNI/JNI.bs
chmod 644 blib/arch/auto/JNI/JNI.bs
Manifying blib/man3/JNI.3
Attempting to install JNI as root
Skipping /usr/local/lib/perl5/site_perl/5.005/sun4-solaris-thread/auto/JNI/JNI.so (unchanged)
Skipping /usr/local/lib/perl5/site_perl/5.005/sun4-solaris-thread/auto/JNI/JNI.bs (unchanged)
Files found in blib/arch --> Installing files in blib/lib into architecture dependend library tree!
Skipping /usr/local/lib/perl5/site_perl/5.005/sun4-solaris-thread/auto/JNI/autosplit.ix (unchanged)
Skipping /usr/local/lib/perl5/site_perl/5.005/sun4-solaris-thread/JNI.pm (unchanged)
Skipping /usr/local/lib/perl5/5.00503/man/man3/JNI.3 (unchanged)
Writing /usr/local/lib/perl5/site_perl/5.005/sun4-solaris-thread/auto/JNI/.packlist
Appending installation info to /usr/local/lib/perl5/5.00503/sun4-solaris-thread/perllocal.pod
Installing Sample JPL program
rm -f Sample.c Sample.h \
Sample*.class Sample*.pl libSample.so Sample*.java
perl -MJPL::Compile -e "file('Sample.jpl')"
javac Sample.java
javah -jni Sample
javap -s Sample
perl -c Sample.pl
gcc -B/usr/ccs/bin/ -fPIC -R /usr/local/lib/perl5/5.00503/sun4-solaris-thread/CORE -G -L/usr/local/lib -I/usr/local/lib/perl5/5.00503/sun4-solaris-thread/CORE -I/usr/j2se/include -I/usr/j2se/include/solaris -I/usr/j2se/include/genunix Sample.c \
/usr/local/lib/perl5/5.00503/sun4-solaris-thread/CORE/libperl.so \
/install/jpl/lib/sun4-solaris-thread/libPerlInterpreter.so \
-lc -lm -ldl -lthread \
-o libSample.so
cp *.class /install/jpl/lib
cp libSample.so /install/jpl/lib/sun4-solaris-thread
cp Sample.pl /install/jpl/perl
Testing Sample...
+ cd Sample
JPLDEBUG=1
+ export JPLDEBUG
+ java Sample
Exception in thread "main" java.lang.UnsatisfiedLinkError: /install/jpl/PerlInterpreter/libPerlInterpreter.so: ld.so.1: /usr/bin/../java/bin/../bin/sparc/native_threads/java: fatal: relocation error: file /install/jpl/PerlInterpreter/libPerlInterpreter.so: symbol PL_thr_key: referenced symbol not found
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1382)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1306)
at java.lang.Runtime.loadLibrary0(Runtime.java:749)
at java.lang.System.loadLibrary(System.java:820)
at PerlInterpreter.<clinit>(PerlInterpreter.java:18)
at Sample.<clinit>(Sample.java:48)
Couldn't run Sample