Re: mozilla on alpha
"Christopher C. Chimelis" wrote:
>Good luck! And thanks for digging into this one for me :-)
OK, I'm looking into the regxpcom segfault. What seems to be happening
is that:
* program runs to completion
* xpcom library _fini routine is called
* this calls a couple of routines in gcc/config/alpha/crtbegin.asm:
__do_global_dtors_aux
__do_frame_takedown
* the _fini code expects the gp register to be preserved across
the __do_global_dtors_aux call, but it isn't
* therefore the call to __do_frame_takedown actually jumps to
address 0, causing a segfault
Further singlestepping indicates that gp is not trashed by
the first destructor called by __do_global_dtors_aux, only
by the second (global destructors keyed to xptiZipLoader::gCache ()).
Any ideas? (My alpha assembly is virtually nonexistent, and I
certainly have no idea what the calling convention says about
who should be preserving gp here...)
Peter Maydell
Reply to: