gcc 4.3.3 compiler options enabled by default

29,936

Solution 1

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.

Solution 2

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.

Solution 3

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.

Solution 4

  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.

Share:
29,936
pv.
Author by

pv.

Updated on July 09, 2022

Comments

  • pv.
    pv. almost 2 years

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

  • Maximilian
    Maximilian almost 8 years
    what is the difference between the two outputs coming up with gcc -Q -v: "options passed" and "options enabled"?