3

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
4

1 に答える 1