我試圖驗證哪個優化級別(-O?)是我的Linux內核構建的。我怎樣才能做到這一點?我該如何檢查Linux內核編譯器優化級別
我唯一能找到的是CONFIG_CC_OPTIMIZE_FOR_SIZE = y在內核配置文件中。它是否意味着-Os?它是否覆蓋任何東西(在一個gcc系列中有多個優化使得最後的-O成爲贏家)?我發現內核的一些部分是用-O2構建的,但是對於所有的內核來說只有很少的內容。
這樣的優化集中在哪裏設置?
注意:我正在使用CentOS 5.5。
我試圖驗證哪個優化級別(-O?)是我的Linux內核構建的。我怎樣才能做到這一點?我該如何檢查Linux內核編譯器優化級別
我唯一能找到的是CONFIG_CC_OPTIMIZE_FOR_SIZE = y在內核配置文件中。它是否意味着-Os?它是否覆蓋任何東西(在一個gcc系列中有多個優化使得最後的-O成爲贏家)?我發現內核的一些部分是用-O2構建的,但是對於所有的內核來說只有很少的內容。
這樣的優化集中在哪裏設置?
注意:我正在使用CentOS 5.5。
如果你的內核配置包含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構建組件會顯示包含優化標誌的完整編譯器輸出。
爲什麼你認爲所有的文件都建立在相同的優化級別? – tripleee
會很公平。爲什麼文件不能有優化?如果有的話,每個人都會更快。 – tothphu
這個源代碼是免費的,但並非所有的發行版都發布了他們的所有構建基礎架構。但是,如果你有機會獲得它,那麼更多的權力給你。 – tripleee