Какие версии GMP, MPC и MPFR использовались для компиляции GCC? - PullRequest
0 голосов
/ 10 марта 2019

Меня попросили воссоздать сборку GCC 4.5.1 как в Red Hat 6, так и в Solaris 10. Существуют машины Red Hat 6 с установленной 4.5.1. Последняя машина Solaris 10 недавно съела сама; следовательно, моя унаследованная радость.

Никто вокруг не знает, из каких зависимостей был построен GCC. С помощью gcc -v мы можем легко получить параметры конфигурации, но какие версии GMP, MPC и MPFR использовались, остается загадкой. Я пробовал:

  • LDD
  • строка
  • gcc -dM -E
  • find $ GCC_DIR -name * gmp *
  • find $ GCC_DIR -name * .h | xargs grep -i gmp $ 1

Заранее благодарим за помощь.

Ответы [ 2 ]

2 голосов
/ 10 марта 2019

Официально *1002* официально не рекомендуется пытаться скачать / скомпилировать gmp, mpfr и mpc из исходного кода. Сначала вы должны попытаться загрузить его из диспетчера пакетов:

yum install gmp-devel mpfr-devel libmpc-devel

В противном случае doc/install.texi, поставляемый с GCC 4.5.0, рекомендует версии GMP 4.3.2 или новее, MPFR 2.4.2 или новее и MPC 0.8.1 или новее.

GCC также поддерживает компиляцию дерева исходников с зависимостями. Более новые версии GCC имеют contrib/download_prerequisites, которого нет в более старых версиях. Однако самое раннее воплощение сценария просто загружает tar-архивы и распаковывает их в исходном каталоге GCC (с удаленными компонентами). GCC обнаружит его и создаст автоматически.

Флаги настройки --with-mpfr и др. только если у вас уже есть зависимости, построенные в другом месте. Это наиболее болезненный вариант, и его следует использовать в крайнем случае.

0 голосов
/ 10 марта 2019

Скомпилируйте исходный файл с gcc -S -fverbose-asm.Версии GMP и MFPR будут записаны в виде комментариев к итоговому файлу .s сборки:

# GNU C11 (Ubuntu 7.3.0-27ubuntu1~18.04) version 7.3.0 (x86_64-linux-gnu)
#       compiled by GNU C version 7.3.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP

В моей системе.эти строки версии также появляются в выводе

strings /usr/lib/gcc/x86_64-linux-gnu/7/cc1

Однако у меня есть доступ к компилятору gcc 4.1.2, и он не включает эту информацию:

# GNU C version 4.1.2 20080704 (Red Hat 4.1.2-55) (x86_64-redhat-linux)
#       compiled by GNU C version 4.1.2 20080704 (Red Hat 4.1.2-55).
...