http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56700
Bug #: 56700 Summary: Optimizing at compile and link result in different binary size than only optimizing at link time Classification: Unclassified Product: gcc Version: lto Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassig...@gcc.gnu.org ReportedBy: uran...@web.de When I'm building wget (1.14) with CFLAGS=LDFLAGS="-Os -flto" the resulting binary is about 5-8% smaller than building with CFLGAS="-flto" LDFLAGS="-Os -flto". Adding -fno-fat-lto-objects leads to very similar results (~50 Bytes difference). Here are the (stripped) sizes: CFLAGS=-Os LDFLAGS=-Os gcc-4.7.2: 353904 gcc-4.8.0: 349808 CFLAGS=-O0 -flto LDFLAGS=-Os -flto gcc-4.7.2: 353408 gcc-4.8.0: 360696 CFLAGS=-Os -flto LDFLAGS=-Os -flto gcc-4.7.2: 336896 gcc-4.8.0: 332784 So not optimizing for size during compile leads to worse results than omitting lto at all for gcc-4.8 I thought optimizations can be ommitted completely during compile, when doing lto.