Как заставить gcc использовать march=native по умолчанию?

Есть ли способ изменить файл specs так, чтобы он передавал -march=native, если ничего не указано в командной строке?

Связанные вещи в файле specs по умолчанию:

*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)}

Я не уверен, как работает спецификация. Простое указание -march=native до или после %(cc1_cpu) не работает. Однако эта строка действует, потому что GCC сообщит об ошибке, если я поставлю -something_wierd вместо -march=native.

Еще одна вещь, которую я заметил: если я ставлю %{march=i386: -something_wierd} перед %(cc1_cpu), gcc сообщает об ошибке, так что похоже, что -march=i386 всегда передается, если ничего не указано, так что есть ли способ отличить ничего не указанное от -march=i386 в файле specs?

BTW, что делает %>? Похоже, что это не указано в документации.

Я использую gcc-4.6.2 от MinGW.

5
задан ali_m 13 August 2014 в 14:33
поделиться