哪些版本的GMP、MPC和MPFR用于编译GCC?

哪些版本的GMP、MPC和MPFR用于编译GCC?,gcc,gmp,mpfr,mpc,Gcc,Gmp,Mpfr,Mpc,我被要求在Red Hat 6和Solaris 10上重新创建GCC 4.5.1的构建。现有的Red Hat 6机器安装了4.5.1。最后一台Solaris 10机器最近自我吞噬;因此,我继承了快乐 周围没有人知道GCC是用什么依赖项构建的。我们可以很容易地使用gcc-v获得配置选项,但是使用了GMP、MPC和MPFR的哪些版本是一个谜。我试过: ldd 弦 gcc-dM-E 查找$GCC_目录-名称*gmp* 查找$GCC|u DIR-name*.h | xargs grep-i gmp$1

我被要求在Red Hat 6和Solaris 10上重新创建GCC 4.5.1的构建。现有的Red Hat 6机器安装了4.5.1。最后一台Solaris 10机器最近自我吞噬;因此,我继承了快乐

周围没有人知道GCC是用什么依赖项构建的。我们可以很容易地使用gcc-v获得配置选项,但是使用了GMP、MPC和MPFR的哪些版本是一个谜。我试过:

  • ldd
  • gcc-dM-E
  • 查找$GCC_目录-名称*gmp*
  • 查找$GCC|u DIR-name*.h | xargs grep-i gmp$1

提前感谢您的帮助。

使用
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).
不是试图从源代码下载/编译gmp、mpfr和mpc。您应该首先尝试从软件包管理器下载它:

yum install gmp-devel mpfr-devel libmpc-devel
否则,GCC 4.5.0附带的
doc/install.texi
将推荐GMP 4.3.2或更高版本、MPFR 2.4.2或更高版本和MPC 0.8.1或更高版本

GCC还支持使用依赖项进行源代码树编译。较新版本的GCC具有
contrib/download\u先决条件
,这在较旧版本中不存在。但是,脚本的最早版本只是下载tarball并在GCC源目录中解压它(使用剥离组件)。GCC检测到它并将自动构建它


仅当您已经在其他地方构建了依赖项时,配置标志
--with mpfr
等才有效。这是最痛苦的选择,应该作为最后的手段来做。

我感谢你的回答,遗憾的是,这无助于确定是什么。另外,为了澄清什么是“不推荐的,是下载源代码[…],并将其安装在非标准位置,然后使用--with gmp=/some/silly/path/gmp[…]”配置GCC。如果是这样的话,配置选项将对所使用的内容有所帮助。我们的需求超出了问题的范围,即维护配置管理(在本例中未满足),以及使用满足各种需求的软件版本。