I've found the cause for the emacs X11 problems. The unexec code of Emacs
doesn't handle relocations in the .rel.dyn section, because Mips seems to
be the only platform, which uses such section (sgi and sni, are using
a different implementation of unexec). This mishandling leads to an emacs
binary, which has double resolved dynamic relocations (once when dumped,
twice when executed), which leads to a seg fault. It happens only with
X11, because the relocations are only for X11 stuff.
I'll try to fix that, but it would be good to have some documentation about
the .rel.dyn section, which looks a little bit different than the i386
.rel.data section). Any pointers other than the bfd source code ?
See, you not only have to be a good coder to create a system like Linux,
you have to be a sneaky bastard too ;-)
[Linus Torvalds in <email@example.com.Helsinki.FI>]