Параметры компилятора gcc 4.3.3 включены по умолчанию - PullRequest
16 голосов
/ 29 июня 2010

Я перешел с gcc версии 4.0.3 на 4.3.3 и понял, что -mfpmath был установлен в sse по умолчанию в gcc 4.3.3.Это фактически вызвало ошибки в моем приложении.В 4.0.3 -mfpmath было 387.

Я хочу знать, как я могу получить все параметры по умолчанию, включенные gcc для данной версии.Как я могу сбросить множество всех параметров, используемых gcc при компиляции.Это позволяет мне сравнивать версию 4.0.3 с 4.3.3.

В общем, было бы здорово, если бы я знал, что перед проверкой изменения версии в gcc нужно проверить полный список вещейэто влияет на производительность и функциональность.)

Ответы [ 4 ]

25 голосов
/ 29 июня 2010

gcc -Q -v (inputfile)

С простым крошечным файлом c или cpp в качестве входного файла.Если вы получите большой список всех опций, передаваемых gcc по умолчанию, одна из них может привести к включению sse fp math.

20 голосов
/ 04 сентября 2013

В дополнение к компиляции определенного файла -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.

2 голосов
/ 29 июня 2010
  1. Версия gcc 4.3.3, которую я здесь привел, не имеет поведения, на которое вы жалуетесь.Я скомпилировал его сам, так что я уверен, что должна быть другая причина изменения, которое вы видите, а не только версия gcc (например, компиляция для 64-битной версии, которая всегда использовала sse AFAIR).

  2. gcc содержит примечания к выпуску, которые уведомляют об изменениях поведения.Они упакованы с дистрибутивом исходного кода gcc и доступны в Интернете.Для gcc 4.3 см. http://gcc.gnu.org/gcc-4.3/changes.html.

1 голос
/ 09 июня 2016

В дополнение к -Q --help=target для специфичных для цели опций вы можете использовать -Q -O<n> --help=optimize, чтобы отобразить, какие проходы оптимизатора включены или выключены на данном уровне оптимизации.-Q также может работать и с другими --help=<blah> аргументами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...