gcc 7.1.1 в версии дампа Fedora 26 теперь по умолчанию включает только основную версию

После обновления с Fedora 25 до 26 версией gcc по умолчанию стала версия 7.1.1, а вывод gcc -dumpversion изменился с major.minor.patch на просто main.

новый вывод:

$ gcc -dumpversion
7

В руководстве указано

-дампверсия

Выведите версию компилятора (например, 3.0, 6.3.0 или 7) — и больше ничего не делайте. Это версия компилятора, используемая в путях файловой системы, спецификациях, может быть в зависимости от того, как был настроен компилятор, только одно число (основная версия), два числа, разделенные точкой (основная и дополнительная версия), или три числа, разделенные точками (основная версия). , второстепенная версия и версия с патчем).

Я не нашел, где изменить эту конфигурацию компилятора, чтобы включить три числа, настроенные с точками. Самое близкое, что я нашел, это конфигурация только основной версии:

--with-gcc-major-version-only Указывает, что GCC должен использовать только старший номер, а не major.minor.patchlevel в путях файловой системы.


person Jake1164    schedule 18.07.2017    source источник


Ответы (2)


Я использовал оба варианта вместе:

gcc -dumpfullversion -dumpversion

Кажется, это работает на старом и новом одинаково:

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

4.4.7

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

7.2.1

person user8978657    schedule 21.11.2017
comment
Похоже, что gcc игнорирует -dump* аргументы, которые он не распознает, и прекращает обработку аргументов, как только он их распознает. Вот почему это работает, и почему -dumpfullversion должно быть первым! - person Ralph Versteegen; 30.10.2019

Итак, после некоторых исследований я обнаружил, что настройка версии является опцией времени компиляции (если вы компилируете компилятор из исходного кода).

Я также обнаружил, что есть новая опция gcc -dumpfullversion, которая предоставит полный номер версии, т.е. 7.1.1, что и ожидает наша система сборки. Небольшое предостережение: -dumpfullversion не поддерживается в старых версиях gcc.

Поэтому нам пришлось изменить систему сборки, чтобы получить версию через gcc -dumpversion и проверить, является ли это одной цифрой, и если да, то подставить -dumpfullversion, чтобы получить полную версию gcc major.minor.patch.

person Jake1164    schedule 19.07.2017