Re: a lead

Date view Thread view Subject view Author view

From: Godmar Back (gback@cs.utah.edu)
Date: Fri Feb 05 1999 - 15:20:21 EST


>
>
> Alexandre, I think Linux crashes when it calls "getEngine" from
> "java_lang_System_initProperties". java_lang_System_initProperties is
> called from the static initializer of java.lang.System, which is called
> from initBaseClasses().
>
> So: is the reason maybe that the jitter does not save and restore
> %ebx, which is used by pic code?
>
> java.lang.System.<clinit> is jitted, calls java_lang_System_initProperties,
> which hits the getEngine() calls, needs %ebx, and dies?
>

Actually, the problem could be in the sysdepCallMethod.
In pic code, ebx is assumed to be callee-saved. Therefore,

+ gcc either must be told that ebx is clobbered, and emit code to
  save/restore it (which gcc 2.7.2.x does not do, as we've learned!)

+ we must save/restore it when calling jitted code.
  That's what I'm trying right now...

This would also explain why the failure only occurred when SIGVTALRM
was turned on *and* I executed some code in the signal handler.
(If I had SIGVTALRM turned on, but returned immediately from the signal
handler, things were fine.)

        - Godmar


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:58 EDT