From owner-freebsd-emulation Mon Feb 7 19:51:10 2000 Delivered-To: freebsd-emulation@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by builder.freebsd.org (Postfix) with ESMTP id E9E693E20 for ; Mon, 7 Feb 2000 19:51:06 -0800 (PST) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.9.1/8.9.1) with ESMTP id WAA19498 for ; Mon, 7 Feb 2000 22:51:55 -0500 (EST) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.9.3/8.9.1) id WAA92317; Mon, 7 Feb 2000 22:51:24 -0500 (EST) (envelope-from gallatin@cs.duke.edu) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Mon, 7 Feb 2000 22:51:24 -0500 (EST) To: freebsd-emulation@freebsd.org Subject: IBM jdk 1.1.8 for linux X-Mailer: VM 6.43 under 20.4 "Emerald" XEmacs Lucid Message-ID: <14495.37523.899908.930548@grasshopper.cs.duke.edu> Sender: owner-freebsd-emulation@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Has anybody managed to get IBM's jdk 1.1.8 for linux working? http://www.ibm.com/java/jdk/118/linux/index.html It features "native" threads via linux threads and a JIT. When I attempt to run it on a machine with a -current kernel and linux module, and linux_base 6.1, I see: /compat/linux/usr/jdk118/bin/appletviewer sigaltstack: Cannot allocate memory sigaltstack: Cannot allocate memory Meanwhile on the console, I see: kernel trap 9 with interrupts disabled kernel trap 9 with interrupts disabled kernel trap 9 with interrupts disabled kernel trap 9 with interrupts disabled kernel trap 9 with interrupts disabled kernel trap 9 with interrupts disabled kernel trap 9 with interrupts disabled kernel trap 9 with interrupts disabled kernel trap 9 with interrupts disabled kernel trap 9 with interrupts disabled kernel trap 9 with interrupts disabled kernel trap 9 with interrupts disabled kernel trap 9 with interrupts disabled kernel trap 12 with interrupts disabled <.....> forever A linux ktrace of the area around the error messages shows: 1780 java CALL linux_modify_ldt(0x11,0xbfbff2a8,0x10) 1780 java RET linux_modify_ldt 0 1780 java CALL linux_rt_sigaction(0xa,0xbfbff158,0xbfbff0cc,0x8) 1780 java RET linux_rt_sigaction 0 1780 java CALL linux_rt_sigaction(0xb,0xbfbff158,0xbfbff0cc,0x8) 1780 java RET linux_rt_sigaction 0 1780 java CALL linux_rt_sigaction(0x4,0xbfbff158,0xbfbff0cc,0x8) 1780 java RET linux_rt_sigaction 0 1780 java CALL linux_rt_sigaction(0x8,0xbfbff158,0xbfbff0cc,0x8) 1780 java RET linux_rt_sigaction 0 1780 java CALL linux_rt_sigaction(0x7,0xbfbff158,0xbfbff0cc,0x8) 1780 java RET linux_rt_sigaction 0 1780 java CALL linux_rt_sigaction(0x6,0xbfbff158,0xbfbff0cc,0x8) 1780 java RET linux_rt_sigaction 0 1780 java CALL linux_rt_sigaction(0x3,0xbfbff158,0xbfbff0cc,0x8) 1780 java RET linux_rt_sigaction 0 1780 java CALL linux_rt_sigaction(0xd,0xbfbff158,0xbfbff0cc,0x8) 1780 java RET linux_rt_sigaction 0 1780 java CALL linux_rt_sigprocmask(0x1,0x281f9380,0,0x8) 1780 java RET linux_rt_sigprocmask 0 1780 java CALL linux_brk(0x8057000) 1780 java RET linux_brk 134574080/0x8057000 1780 java CALL linux_modify_ldt(0x11,0xbfbff29c,0x10) 1780 java RET linux_modify_ldt 1 1780 java CALL linux_sigaltstack(0xbfbff290,0) 1780 java RET linux_sigaltstack -1 errno 12 Cannot allocate memory 1780 java CALL write(0x2,0xbfbfc798,0x24) 1780 java GIO fd 2 wrote 36 bytes "sigaltstack: Cannot allocate memory " 1780 java RET write 36/0x24 1780 java CALL mprotect(0xbfbe0000,0x1000,0) 1780 java RET mprotect 0 1780 java CALL linux_open(0x281f0f40,0x2,0xbfbff414) 1780 java NAMI "/compat/linux/dev/zero" 1780 java NAMI "/dev/zero" 1780 java RET linux_open 3 <...> The sigaltstack messages seem to be caused by lss.ss_size = 0x800 which is < our MINSIGSTKSZ. This is the i386 linux MINSIGSTKSZ. What is the point of MINSIGSTKSZ? Would it be safe to reduce MINSIGSTKSZ so that we are compatible? I'm more an alpha hacker than an i386 hacker and I have no clue what the trap 9 messages mean. The seem to be related to the jvm looping in a segv handler: 2001 java RET linux_rt_sigprocmask 0 2001 java CALL linux_modify_ldt(0x11,0xbf1ffcf4,0x10) 2001 java RET linux_modify_ldt 3 2001 java PSIG SIGSEGV caught handler=0x28082460 mask=0x80000000 code=0x0 2001 java PSIG SIGSEGV caught handler=0x28082460 mask=0xcffef6bf code=0xf fffffff 2001 java PSIG SIGSEGV caught handler=0x28082460 mask=0xcffef6bf code=0xf fffffff 2001 java PSIG SIGSEGV caught handler=0x28082460 mask=0xcffef6bf code=0xf fffffff 2001 java PSIG SIGSEGV caught handler=0x28082460 mask=0xcffef6bf code=0xf fffffff <....> There's a rather dire comment in i386/trap.c: /* * XXX not quite right, since this may be for a * multiple fault in user mode. */ Thanks for any help, Drew ------------------------------------------------------------------------------ Andrew Gallatin, Sr Systems Programmer http://www.cs.duke.edu/~gallatin Duke University Email: gallatin@cs.duke.edu Department of Computer Science Phone: (919) 660-6590 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-emulation" in the body of the message