http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47247
--- Comment #19 from Jan Hubicka <hubicka at ucw dot cz> 2011-02-16 23:12:32 UTC --- > 39339456 libxul1.so > 34436696 libxul2.so Yep, it seems similar to what I was getting. Quite important difference and all the stuff gets loaded into memory at startup by dynamic linker. > For a 5 MB reduction I might end up writing a wrapper that runs ld twice :-) You might try GNU-ld's plugin support (I am not sure if it has same problem, but I think it doesn't, definitly not with HJ's double linking branch). Honza