[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[swarm-hackers] what does native_threads do in Swarm Java?
From: |
Paul Johnson |
Subject: |
[swarm-hackers] what does native_threads do in Swarm Java? |
Date: |
Tue, 26 Aug 2008 23:23:36 -0500 |
User-agent: |
Thunderbird 2.0.0.16 (X11/20080724) |
OK, I have useful information, unlike my usual offering :)
I installed the Sun JDK from javasoft.com (version 1.6.0_07) and
successfully built Swarm & java swarm against it.
Then I tried to build swarm against the Sun JDK version 6 supplied by
Ubuntu, and it failed. I trapped the output of the configure, make, and
make install phases and posted them here, in case you want to study for
yourself.
http://pj.freefaculty.org/Swarm/build-config.txt
http://pj.freefaculty.org/Swarm/build-make.txt
http://pj.freefaculty.org/Swarm/build-install.txt
In the make phase of the Swarm Java stuff (build-make.txt), look what I
see over and over:
bin/sh: /usr/lib/jvm/java-6-sun/jre/bin/i386/native_threads/java: not found
And here is where I *believe* that particular problem lies.
In the JDK packaged by Sun, I have i386/native_threads like so:
$ find jdk1.6.0_07 -name "i386"
jdk1.6.0_07/jre/lib/i386
jdk1.6.0_07/jre/plugin/i386
$ find jdk1.6.0_07 -name "native_*"
jdk1.6.0_07/jre/lib/i386/native_threads
$ ls jdk1.6.0_07/jre/lib/i386/native_threads/
libhpi.so
However, in the jdk provided by the Ubuntu packager, there are two
directories named native_threads
$ find /usr/lib/jvm/java-6-sun-1.6.0.06/ -name "native_*"
/usr/lib/jvm/java-6-sun-1.6.0.06/bin/i386/native_threads
/usr/lib/jvm/java-6-sun-1.6.0.06/jre/lib/i386/native_threads
and one is empty:
$ ls /usr/lib/jvm/java-6-sun-1.6.0.06/bin/i386/native_threads/
$ ls /usr/lib/jvm/java-6-sun-1.6.0.06/jre/lib/i386/native_threads/
libhpi.so
Why do they have an empty directory
/usr/lib/jvm/java-6-sun-1.6.0.06/bin/i386/native_threads ???
Is it possible that an empty native_threads directory under bin/i386
could "fool" the configure script in Swarm, so that it thinks it will
find the shared library libhpi.so under bin/i386/native_threads, but it
is not there?
I considered just deleting the empty directory.
But instead of the destructive approach, I tried to let Swarm find the
libhpi.so file under bin/i386/native_threads
$ sudo ln -sf
/usr/lib/jvm/java-6-sun-1.6.0.06/jre/lib/i386/native_threads/libhpi.so
/usr/lib/jvm/java-6-sun-1.6.0.06/bin/i386/native_threads
After that, the swarm make does not obviously fail, but the make install
still fails with that message about missing class files. I just uploaded
the output (after "make clean") from make and make install
build-make-fixedi386.txt
build-install-fixedi386.txt
As you see in build-install-fixedi386.txt, I still get lot of class not
found errors.
swarm/defobj/FCallCImpl.class : no such file or directory
swarm/defobj/FArgumentsCImpl.class : no such file or directory
swarm/defobj/HDF5CImpl.class : no such file or directory
swarm/defobj/HDF5ArchiverCImpl.class : no such file or directory
swarm/defobj/LispArchiverCImpl.class : no such file or directory
So I tried Marcus's suggestion, to delete java-stubs.elc and try make
again. I just uploaded the make and make install logs here.
build-make-rmjava-stub.txt
build-install-rmjava-stub.txt
I don't see what else is wrong with the Sun JDK that Ubuntu provides,
but I keep looking.
Then it hit me. Maybe I should have run swarm configure/make completely
from scratch.
So I tried that. Still failed. The informative bit, however, is that
the error about native_threads re-appears.
/bin/sh: /usr/lib/jvm/java-6-sun/jre/bin/i386/native_threads/java: not found
Because of that, it does not even try to build most java classes.
So it looks like I really do need to try killing that empty
native_threads directory from the jvm that Ubuntu installed. What happens?
Apparently, success. After "rm
/usr/lib/jvm/java-6-sun-1.6_07/bin/i386", the swarm configure, make, and
install proceed fine, all java classes built.
I uploaded the logs
build-config-victory.txt
build-make-victory.txt
build-install-victory.txt
My experience leads me to expect that when I isolate a problem, then one
of you will see a fix.
Do you?
1. Question: Without having an Ubuntu user deface his/her java install,
can Swarm be built?
2. Question: Suppose I build a deb package for swarm after hacking my
java provided by Ubuntu. Will Swarm programs work for users whose java
is not similarly cleaned up?
pj
pj
--
Paul E. Johnson email: address@hidden
Professor, Political Science http://pj.freefaculty.org
1541 Lilac Lane, Rm 504
University of Kansas Office: (785) 864-9086
Lawrence, Kansas 66044-3177 FAX: (785) 864-5700
- [swarm-hackers] what does native_threads do in Swarm Java?,
Paul Johnson <=