On Sun, Oct 14, 2007 at 09:42:08PM +0200, Franck Bui-Huu wrote: > > .exit.data and .exit.text may reference each other. __exit functions > > generally get compiled into .exit.text but some constructs such as jump > > tables for switch() constructs may be compiled into address tables which > > gcc unfortunately will put into .rodata, so .rodata will end up > > referencing function addresses in .exit.text which makes ld unhappy if > > .exit.text was discarded. So until this is fixed in gcc we can't > > discard exit code, unfortunately. > > > > Thanks for the details. > > I actually don't see any point to move these tables in .rodata since > they're part of the code... As I recall the argumentation was they should go there because that section can be marked no-exec. Which isn't terribly useful on MIPS where only very few processors have the no-exec capability. Anyway, I guess it takes somebody to cook a patch :-) Ralf