Есть ли способ изменить файл 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.