如果沒有在命令行中指定任何內容,是否有方法來更改規格文件,以便它通過-march=native
?如何讓gcc使用march = native作爲默認值?
相關的事物在默認規格文件是:
*cc1:
%(cc1_cpu)
*cc1_cpu:
%{march=native:%>march=native %:local_cpu_detect(arch) %{!mtune=*:%>mtune=native %:local_cpu_detect(tune)}} %{mtune=native:%>mtune=native %:local_cpu_detect(tune)}
我不知道規格是如何工作的。在%(cc1_cpu)
之前或之後僅指定-march=native
不起作用。但是,這條線確實生效,因爲如果我將-something_wierd
而不是-march=native
,GCC將報告錯誤。
另一件事我注意到的是,如果我%(cc1_cpu)
之前把%{march=i386:-something_wierd}
,GCC會報告錯誤,以便看起來像-march=i386
始終如果沒有指定傳入,那麼有沒有在規範文件中指定的方式沒有什麼區別和-march=i386
?
順便說一句,%>
是做什麼用的?似乎沒有指定in the documentation。
我正在使用MinGW的gcc-4.6.2
。
我真的出來了一些類似的解決方案,你的第一種方法。我實際上意識到主要問題是-march = i386總是默認傳入,並且無法確定它是通過默認方式還是通過命令行傳入。我猜想改變GCC源代碼幾乎是唯一的方法。 – 2012-01-05 08:02:06
@icando:你的名字! – alk 2012-01-05 08:05:04