使用哪个版本的GMP,MPC和MPFR来编译GCC?

问题描述 投票:0回答:2

我被要求在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_DIR -name * gmp *
  • 找到$ GCC_DIR -name * .h | xargs grep -i gmp $ 1

提前感谢你的帮助。

gcc gmp mpfr mpc
2个回答
2
投票

尝试从源代码下载/编译gmp,mpfr和mpc不是officially recommended。您应该首先尝试从包管理器下载它:

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_prerequisites,旧版本中不存在。但是,脚本的最早版本只是下载tarball并将其解压缩到GCC源目录中(带有剥离的组件)。 GCC检测到它并自动构建它。

配置标志--with-mpfr,et al。只有你已经在其他地方建立了依赖项。这是最痛苦的选择,应该作为最后的手段。


0
投票

使用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).
© www.soinside.com 2019 - 2024. All rights reserved.