http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45375
--- Comment #77 from Markus Trippelsdorf <markus at trippelsdorf dot de> 2011-04-08 15:51:09 UTC --- Created attachment 23931 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=23931 Output of -Wl,-Map bad I've attached the output of "-Wl,-Map,map" of both cases (-Os vs. -O2). Please do a vimdiff of both and search for Elf_Ehdr9serializeERSt14basic_ofstreamIcSt11char_traitsIcEEcc and you'll see that in the good case it lives in its own ltrans file: /tmp/cca0jnrX.ltrans9.ltrans.o while in the bad case it is thrown together with other headers into: /tmp/ccd8WyNK.ltrans3.ltrans.o which then leads to the link error above.