Ответ 1
gcc -Q -v (входной файл)
Только с базовым крошечным файлом c или cpp в качестве входного файла. Должен предоставить вам большой список всех параметров, переданных gcc по умолчанию, один из них может привести к включению математики sse fp.
Я перешел из gcc версии 4.0.3 в 4.3.3 и понял, что -mfpmath был установлен по умолчанию в gcc 4.3.3. Это фактически вызвало ошибки в моем приложении. В 4.0.3 -mfpmath было 387.
Я хочу знать, как я могу получить все опции по умолчанию, включенные gcc для данной версии. Как я могу сбросить набор всех параметров, используемых gcc при компиляции. Это позволяет мне сравнить версию 4.0.3 и 4.3.3.
В общем, будет здорово, если я узнаю, что полный список вещей необходимо проверить перед тем, как перейти к изменению версии в gcc. (Поскольку это влияет на производительность и функциональность.)
gcc -Q -v (входной файл)
Только с базовым крошечным файлом c или cpp в качестве входного файла. Должен предоставить вам большой список всех параметров, переданных gcc по умолчанию, один из них может привести к включению математики sse fp.
В дополнение к компиляции определенного файла -Q -v
, который выводит список переданных и включенных опций, а также множество других сведений о версии, конфигурации и времени, вы также можете использовать gcc -Q --help=target
для простого отображения по умолчанию целевые параметры компилятора:
$ gcc --version | head -1
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
$ gcc -Q --help=target
The following options are target specific:
-m128bit-long-double [disabled]
-m32 [disabled]
-m3dnow [disabled]
-m3dnowa [disabled]
-m64 [enabled]
-m80387 [enabled]
-m8bit-idiv [disabled]
-m96bit-long-double [enabled]
-mabi=
-mabm [disabled]
-maccumulate-outgoing-args [disabled]
-maes [disabled]
-malign-double [disabled]
-malign-functions=
-malign-jumps=
-malign-loops=
-malign-stringops [enabled]
-mandroid [disabled]
-march= x86-64
...
Чтобы также включить список целевых ассемблерных и компоновщиков (но не в настоящее время их настройки по умолчанию), используйте --target-help
вместо --help=target
.
В версии, приведенной здесь gcc 4.3.3, нет такого поведения, о котором вы жалуетесь. Я сам скомпилировал его, поэтому я уверен, что есть другая причина для изменения, которое вы видите, чем просто версия gcc (например, компиляция для 64-битного, которая всегда использовала sse AFAIR).
В gcc есть заметки о выпуске, которые уведомляют о поведении. Они упакованы в дистрибутив источника gcc и доступны в Интернете. Для gcc 4.3 см. http://gcc.gnu.org/gcc-4.3/changes.html.
В дополнение к -Q --help=target
для целевых опций вы можете использовать -Q -O<n> --help=optimize
для отображения того, какие пропуска оптимизатора включены или выключены на заданном уровне оптимизации. -Q
также работает сам по себе с другими аргументами --help=<blah>
.