IBM jdk

James Gunning yellowdog-general@lists.terrasoftsolutions.com
Tue Aug 20 17:22:01 2002


 >Message: 2
 >Date: Tue, 13 Aug 2002 22:42:50 -0500
 >From: John David Garza <garza@cjas.org>
 >Subject: ibm jdk woes
 >To: yellowdog-general@lists.terrasoftsolutions.com
 >Reply-To: yellowdog-general@lists.terrasoftsolutions.com
 >
 >Hi all,
 >
 >In a post to this list back in May--
 >
 >"IBM jdk needs kernel patch to fix floating stacks problem?
 >LD_ASSUME_KERNEL"
 >http://lists.terrasoftsolutions.com/pipermail/yellowdog-general/2002-May/001919.html
 >
 >--a problem with getting IBM's jdk to work on YDL was discovered in
 >which the only "solutions" seemed to be:
 >
 >1. going back to a 2.1 kernel
 >2. recompiling glibc with floating stacks disabled
 >
 >Are these still the only solutions available?  Option 1 doesn't seem
 >viable unless you've gotta have java and don't have or know the time
 >and how to accomplish option 2.
 >
 >Where would I go to learn about attempting option 2? Is anybody
 >working on a kernel path to fix this problem (or at least add support
 >for the LD_ASSUME_KERNEL env var)?  If not, where's the best place to
 >bring up this issue with ppl that know how to make these kind of
 >fixes?
 >
 >Thanks!
 >

The current fix seems to be to recompile the kernel with SMP enabled
(even if you run a single
CPU machine). Do a list hunt on (SMP|java) etc to follow the discussion.
See also the ibm.software.java.linux
newsgroup. If this code:

#include <stdio.h>
#include <unistd.h>

main() {
     fprintf(stderr, "Number of processors configured = %d\n",
         sysconf(_SC_NPROCESSORS_CONF));
     fprintf(stderr, "Number of processors online = %d\n",
         sysconf(_SC_NPROCESSORS_ONLN));
}

returns 0's,   this is the source of the problem (a glibc thing). Once you have 
SMP compiled
in, you should get non-zeros and the ibm jdk should run. Works fine on a 
uniprocessor machione, but there is a little overhead. IBM promises a patch soon.
(see  ibm.software.java.linux)

James.