Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Feb 2000 17:13:34 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Andrew Gallatin <gallatin@cs.duke.edu>
Cc:        freebsd-emulation@FreeBSD.ORG
Subject:   Re: IBM jdk 1.1.8 for linux
Message-ID:  <Pine.BSF.4.21.0002091642130.15911-100000@alphplex.bde.org>
In-Reply-To: <14495.37523.899908.930548@grasshopper.cs.duke.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0002091642130.15911-100000>