Sorry, one additional question: If I want to compile and then link a library (not linking the library to any executable yet), do I need to specify -flto and -fuse-linker-plugin? Thanks in advance. ________________________________ From: Hei Chan <structurechart@xxxxxxxxx> To: "gcc-help@xxxxxxxxxxx" <gcc-help@xxxxxxxxxxx> Sent: Tuesday, March 19, 2013 9:27 PM Subject: -flto with -fwhole-program or -fuse-linker-plugin Hi, I am reading: http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html It first suggests: In combination with -flto using this option(-fwhole-program) should not be used. Instead relying on a linker plugin should provide **safer and more precise information.** And then, it suggests: If the program does not require any symbols to be exported, it is possible to combine -flto and -fwhole-program to allow the interprocedural optimizers to use more aggressive assumptions which may lead to improved optimization opportunities. Use of -fwhole-program is not needed when linker plugin is active (see -fuse-linker-plugin). Does it mean that in theory, using -fuse-linker-plugin with -flto always gets a better optimized executable than using -fwhole-program with -flto? Thanks in advance. Cheers, Hei