如果没有在命令行中指定任何内容,是否有方法来更改规格文件,以便它通过-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