环境
centos7
准备工作
yum install zstd
yum install glibc-headers
yum install gcc-c++
预下载
https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
解压后进入目录,启动预下载,可能会很慢,或者卡死:
./contrib/download_prerequisites
后面发现下载bz2文件都提示无法解压,可能是工具环境的问题,也可能是下载完整性问题。
于是改为手动下载最新版:
https://mirrors.sjtug.sjtu.edu.cn/gnu/gmp/gmp-6.2.1.tar.zst
https://www.mpfr.org/mpfr-current/mpfr-4.1.0.tar.gz
https://mirrors.sjtug.sjtu.edu.cn/gnu/mpc/mpc-1.2.1.tar.gz
http://isl.gforge.inria.fr/isl-0.23.tar.gz
zst文件解压: tar -I zstd -vxf xxxx
改名
解压后,都改成不带后缀版本的文件名,比如 gmp mpfr
编译
./configure --prefix=/usr/local/gcc --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --enable-plugin --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux --disable-multilib
make
目标文件替换
编译完成后,所有目标文件都是在prefix路径下,但是系统环境可能还是旧的。这时需要升级替换。
主要有:
bin => /usr/bin
lib => /usr/lib/gcc/x86_64-redhat-linux/9.3.0/
lib64 => /usr/lib64
libexec => /usr/libexec