"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

