On Fri, Mar 21, 2014 at 10:40:26AM +0100, Richard Biener wrote: > On Fri, 21 Mar 2014, Tobias Burnus wrote: > > This patch mentions that -flto now generates slim objects. That's especially > > relevant for static libraries as one can there run into surprises, if one > > does not know about gcc-ar. > > Please adjust slightly to "When using a linker-plugin, > compiling with the <code>-flto</code> option now generates slim > object files by default ..." as the change doesn't affect _all_ > configurations but only those with HAVE_LTO_PLUGIN set (thus > -fno-use-linker-plugin overrides the default as well). > > I'd also mention gcc-nm which needs to be used to inspect archives > with thin LTO files.
Thanks for the suggestions - updated patch below. Tobias --- changes.html 8 Mar 2014 20:45:54 -0000 1.63 +++ changes.html 21 Mar 2014 12:43:44 -0000 @@ -65,6 +65,16 @@ <li>Function bodies are now loaded on-demand and released early improving overall memory usage at link time.</li> <li>C++ hidden keyed methods can now be optimized out.</li> + <li>When using a linker plugin, compiling with the <code>-flto</code> + option now generates slim objects files (<code>.o</code>) which only + contain intermediate language representation for LTO. Use + <code>-ffat-lto-objects</code> to create files which contain + additionally the object code. To generate static libraries suitable + for LTO processing, use <code>gcc-ar</code> and + <code>gcc-ranlib</code>; to list symbols from a slim object file use + <code>gcc-nm</code>. (Requires that <code>ar</code>, + <code>ranlib</code> and <code>nm</code> have been compiled with + plugin support.)</li> </ul> Memory usage building Firefox with debug enabled was reduced from 15GB to 3.5GB; link time from 1700 seconds to 350 seconds.