Я читаю:
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
Сначала предлагается:
В сочетании с -flto использование этой опции (-fwhole-program) не должно использоваться. Вместо этого использование плагина компоновщика должно предоставлять более безопасную и точную информацию.
И тогда, это предлагает:
Если программе не требуется экспортировать какие-либо символы, можно объединить -flto и -fwhole-program, чтобы межпроцедурные оптимизаторы могли использовать более агрессивные допущения, которые могут привести к улучшению возможностей оптимизации. Использование -fwhole-program не требуется, когда подключаемый модуль компоновщика активен (см. -fuse-linker-plugin).
Означает ли это, что в теории использование -fuse-linker-plugin с -flto всегда дает лучший оптимизированный исполняемый файл, чем использование -fwhole-program с -flto?
Я пытался использовать ld для связи с -fuse-linker-plugin и -fwhole-program по отдельности, и размеры исполняемых файлов по крайней мере разные.
Постскриптум Я использую gcc 4.6.2 и ld 2.21.53.0.1 на CentOS 6.