From owner-freebsd-emulation Wed Feb 9 1: 7: 4 2000 Delivered-To: freebsd-emulation@freebsd.org Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by builder.freebsd.org (Postfix) with ESMTP id 673CD3E1E for ; Tue, 8 Feb 2000 22:14:22 -0800 (PST) Received: from bde.zeta.org.au (bde.zeta.org.au [203.2.228.102]) by mailman.zeta.org.au (8.8.7/8.8.7) with ESMTP id RAA12976; Wed, 9 Feb 2000 17:16:10 +1100 Date: Wed, 9 Feb 2000 17:13:34 +1100 (EST) From: Bruce Evans X-Sender: bde@alphplex.bde.org To: Andrew Gallatin Cc: freebsd-emulation@FreeBSD.ORG Subject: Re: IBM jdk 1.1.8 for linux In-Reply-To: <14495.37523.899908.930548@grasshopper.cs.duke.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-emulation@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On Mon, 7 Feb 2000, Andrew Gallatin wrote: > Has anybody managed to get IBM's jdk 1.1.8 for linux working? > http://www.ibm.com/java/jdk/118/linux/index.html Not me :-). > Meanwhile on the console, I see: > > kernel trap 9 with interrupts disabled > ... Traps like this are caused by the application setting an invalid user stack or an invalid segment selector. These errors are detected lazily by catching the trap on iret (or segment register load). It is a bug that the "interrupts disabled" message is printed for this particular trap. > 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 > " > 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? The kernel doesn't really understand alternative stacks, so IMO it shouldn't limit the stack size except when delivering a signal on it. MINSIGSTKSZ shouldn't be machine-independent anyway. A minimum size of sizeof(struct sigframe) + N * sizeof(register_t) would be closer to what is actually required (assuming that `struct sigframe' is the entire frame). > 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 Invalid stack errors cause general protection faults (trap 9 = T_PROTFLT) which are reported as SIGSEGV (should be SIGBUS?). Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-emulation" in the body of the message