GCC 4.7.2 と LD 2.23 を使用していますが、コンパイル オプションに -flto を追加すると、コンパイル時間が 20% 以上増加します。マニュアルは、最適化が機能するために -fuse-linker-plugin が必要であることを示しているようです。-flto でデフォルトで有効になっているとも書かれていますが、明示的に追加すると、リンクコマンドに次のエラーが表示されます。
g++: error: -fuse-linker-plugin is not supported in this configuration
マニュアルによると、LD 2.21以上でサポートされているはずです。なぜこのエラーが発生するのか分かりますか? 参考までに、私の完全なコンパイル コマンドの例を次に示します。
g++ -Wall -pipe -O3 -flto -fno-strict-aliasing -mtune=generic --no-exceptions -fPIC -c some.cc
g++ -o exec -Xlinker some1.o some2.o -static some1.a some2.a -Wl,--wrap,open -flto -fuse-linker-plugin
「ld --help | の実行」grep plugin' には「-plugin」オプションが表示されるため、GCC が不平を言っている理由がわかりません。
-plugin PLUGIN Load named plugin
-plugin-opt ARG Send arg to last-loaded plugin