gcc 7.1.1 on Fedora 26 dumpversion now only includes major version by default

2.6k Views Asked by At

After upgrading from Fedora 25 to 26 the default gcc version is now version 7.1.1 and the output of gcc -dumpversion has changed from major.minor.patch to just major.

new output:

$ gcc -dumpversion
7

The manual states

-dumpversion

Print the compiler version (for example, 3.0, 6.3.0 or 7)—and don’t do anything else. This is the compiler version used in filesystem paths, specs, can be depending on how the compiler has been configured just a single number (major version), two numbers separated by dot (major and minor version) or three numbers separated by dots (major, minor and patchlevel version).

I have not found where to change this compiler configuration to include the three numbers configured with dots. The closest I have found is the major version only configuration:

--with-gcc-major-version-only Specifies that GCC should use only the major number rather than major.minor.patchlevel in filesystem paths.

2

There are 2 best solutions below

0
On BEST ANSWER

So after some research I found the configure the version is a compile time option (if you compile the compiler from source).

I also found that there is a new gcc -dumpfullversion option that will provide the full version number, ie 7.1.1 which is what our build system expects. Small caveat is that -dumpfullversion is not supported on older versions of gcc.

So we had to change the build system to get the version via gcc -dumpversion and check if its a single digit and if so then substitute -dumpfullversion to get the full major.minor.patch gcc version.

1
On

I used both options together:

gcc -dumpfullversion -dumpversion

This seems to work on old and new in a uniform way:

[root@zeta ~]# gcc -dumpfullversion -dumpversion

4.4.7

[jenkins@build-el7 ~]$ gcc -dumpfullversion -dumpversion

7.2.1