pv.
pv.

Reputation: 504

gcc 4.3.3 compiler options enabled by default

I have moved from gcc version 4.0.3 to 4.3.3 and realized that -mfpmath was set to sse by default in gcc 4.3.3. This actually caused errors in my application. In 4.0.3 the -mfpmath was 387.

I want to know how I can get all the default options enabled by gcc for a given version. How can I dump set of all options used by gcc while compiling. This enables me to compare version 4.0.3 vs 4.3.3.

In general it will be great if I can know a comprehensive list of things need to be checked before going for a version change in gcc .(As this has effect on performance and functionality.)

Upvotes: 18

Views: 31185

Answers (4)

Ashaman
Ashaman

Reputation: 1095

gcc -Q -v

With just a basic tiny c or cpp file as an input file. Should give you a big list of all the options passed to gcc by default, one of those might be causing sse fp math to be enabled.

Upvotes: 29

LThode
LThode

Reputation: 1963

In addition to -Q --help=target for target-specific options, you can use -Q -O<n> --help=optimize to display which optimizer passes are on or off at a given optimization level. -Q also appears to work by itself with other --help=<blah> arguments as well.

Upvotes: 5

Trevor Robinson
Trevor Robinson

Reputation: 16554

In addition to compiling a specific file -Q -v, which outputs the list of passed and enabled options, as well as a lots of other version, configuration, and timing information, you can also use gcc -Q --help=target to just list default target-specific compiler options:

$ 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
...

To also include a list of target-specific assembler and linker options (but not currently their default settings), use --target-help instead of --help=target.

Upvotes: 23

AProgrammer
AProgrammer

Reputation: 52284

  1. The version I've here of gcc 4.3.3 hasn't the behavior you are complaining about. I compiled it myself so I'm pretty sure that there must be another reason for the change you are seeing than just the gcc version (like compiling for 64 bit which has always used sse AFAIR).

  2. gcc has release notes which notifies of behavior changes. They are packaged with gcc source distribution and are available on the web. For gcc 4.3 see http://gcc.gnu.org/gcc-4.3/changes.html.

Upvotes: 2

Related Questions