swarm-hackers
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]