2012-05-09 5 views
0

自分のLinuxカーネルが最適化レベル(-O?)を確認しようとしています。どうやってやるの?Linuxカーネルコンパイラの最適化レベルを確認する方法

私が見つけることができるのは、カーネル設定ファイルのCONFIG_CC_OPTIMIZE_FOR_SIZE = yです。それは-Oを意味するのだろうか?それは何よりも優先されますか?(1つのgcc行に複数の最適化があると、最後の-Oが勝者になります)?私は、カーネルのいくつかの部分が-O2で構築されているのを発見しましたが、すべてのカーネルには数行しかありませんでした。

このような最適化はどこで一元的に行われますか?

注:私はCentOS 5.5を使用しています。

+0

すべてのファイルが同じ最適化レベルで構築されているとします。 – tripleee

+0

公正でしょうか。なぜファイルに最適化があってはいけませんか?もしそれがあれば、誰にとってもより速いです。 – tothphu

+0

ソースは無料ですが、すべてのディストリビューションがすべてのビルドインフラストラクチャを公開しているわけではありません。しかし、もしあなたがそれにアクセスすれば、より多くの力があなたに与えられます。 – tripleee

答えて

1

make V=1で実行すると、コマンドラインがすべて表示されます。

+0

これは、あなたがソースツリーにアクセスできるというかなり重い仮定に基づいていますが、ベンダーがそれを公開しないと不可能であり、この特定の質問に対する回答だけを望むならば、設定するのはかなりの試練です。 – tripleee

+0

私の場合、ソースツリーにアクセスできます。私が知っている限り、LinuxカーネルソースはGPLのように公開されるべきでしょうか? – tothphu

1

カーネルの設定にCONFIG_CC_OPTIMIZE_FOR_SIZEが含まれている場合は、-Oを使用してコンパイルされたものと見なすことができます。これが設定されている場所のhttp://lxr.linux.no/linux+v3.12/Makefile#L573にあります。これは、CONFIG_CC_OPTIMIZE_FOR_SIZEが設定されていない場合、-O2が使用されていることも示しています。

blueshiftは既に述べたように、make V = 1でビルドすると、最適化フラグを含む完全なコンパイラ出力が表示されます。

関連する問題