2012-05-09 61 views
0

我試圖驗證哪個優化級別(-O?)是我的Linux內核構建的。我怎樣才能做到這一點?我該如何檢查Linux內核編譯器優化級別

我唯一能找到的是CONFIG_CC_OPTIMIZE_FOR_SIZE = y在內核配置文件中。它是否意味着-Os?它是否覆蓋任何東西(在一個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,你可能會認爲它是使用-Os編譯的。在http://lxr.linux.no/linux+v3.12/Makefile#L573處獲得設置的位置,這也表明如果CONFIG_CC_OPTIMIZE_FOR_SIZE未設置,則使用-O2。

正如blueshift已經說過的那樣,使用make V = 1構建組件會顯示包含優化標誌的完整編譯器輸出。