GCC升级
目的
CentOS 7.6操作系统默认GCC版本为4.8.5,glibc版本为2.17。由于软件编译依赖GCC和glibc编译器版本,在虚拟机内升级版本对一些程序的性能有一定优化。
方法
建议虚拟机操作系统里的GCC、glibc版本升级到如下表参考版本。
依赖包 |
版本 |
下载链接 |
---|---|---|
gmp |
6.1.2 |
|
mpfr |
3.1.5 |
|
mpc |
1.0.3 |
|
isl |
0.18 |
- 下载上述软件包到“/home”目录。
1 2 3 4 5 6
cd /home wget https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz wget https://ftp.gnu.org/gnu/libc/glibc-2.27.tar.gz wget https://ftp.gnu.org/gnu/gmp/gmp-6.1.2.tar.bz2 wget https://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz wget http://isl.gforge.inria.fr/isl-0.18.tar.bz2
- 安装gmp。
1 2 3 4 5 6
cd /home tar -xvf /home/gmp-6.1.2.tar.bz2 cd /home/gmp-6.1.2 ./configure --prefix=/usr/local/gmp-6.1.2 make -j make install
- 安装mpfr。
1 2 3 4 5 6
cd /home tar -zxvf mpfr-3.1.5.tar.gz cd /home/mpfr-3.1.5 ./configure --prefix=/usr/local/mpfr-3.1.5 --with-gmp=/usr/local/gmp-6.1.2 make -j make install
- 安装mpc。
1 2 3 4 5 6
cd /home tar -zxvf mpc-1.0.3.tar.gz cd /home/mpc-1.0.3 ./configure -prefix=/usr/local/mpc-1.0.3 -with-gmp=/usr/local/gmp-6.1.2 -with-mpfr=/usr/local/mpfr-3.1.5 make -j make install
- 安装isl。
1 2 3 4 5 6 7
cd /home tar -xvf /home/isl-0.18.tar.bz2 cd /home/isl-0.18 yum -y install gmp-devel ./configure --prefix=/usr/local/isl-0.18 --with-gmp=/usr/local/gmp-6.1.2 make make install
- 安装GCC(以7.3.0为例)。
1 2 3 4 5 6 7 8
cd /home tar -zxvf gcc-7.3.0.tar.gz cd /home/gcc-7.3.0 ./configure --prefix=/usr/local/gcc-7.3.0 --enable-languages=c,c++,fortran --enable-shared --enable-linker-build-id --without-included-gettext --enable-threads=posix --disable-multilib --disable-nls --disable-libsanitizer --disable-browser-plugin --enable-checking=release --build=aarch64-linux --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-3.1.5 --with-mpc=/usr/local/mpc-1.0.3 --with-isl=/usr/local/isl-0.18 export LD_LIBRARY_PATH=/usr/local/mpc-1.0.3/lib:/usr/local/gmp-6.1.2/lib:/usr/local/mpfr-3.1.5/lib:/usr/local/gcc-7.3.0/lib64:/usr/local/isl-0.18/lib:/usr/local/lib:/usr/lib:$LD_LIBRARY_PATH export PATH=/usr/local/gcc-7.3.0/bin:$PATH make -j make -j install
- 配置环境变量。
在/etc/profile文件中添加如下环境变量:
1 2
export LD_LIBRARY_PATH=/usr/local/mpc-1.0.3/lib:/usr/local/gmp-6.1.2/lib:/usr/local/mpfr-3.1.5/lib:/usr/local/gcc-7.3.0/lib64:/usr/local/isl-0.18/lib:/usr/local/lib:/usr/lib:$LD_LIBRARY_PATH export PATH=/usr/local/gcc-7.3.0/bin:$PATH
- 使环境变量生效。
1
source /etc/profile
- 检查GCC版本。
1
gcc -v
- 安装glibc。
1 2 3 4 5 6
cd /home tar -zxvf glibc-2.27.tar.gz cd glibc-2.27 /home/glibc-2.27/configure --prefix=/usr/local/glibc-2.27 make -j make install
- 配置环境变量。
在/etc/profile文件中添加如下环境变量
1
export PATH=/usr/local/glibc-2.27/bin:$PATH
- 使环境变量生效。
1
source /etc/profile
- 检查glibc版本。
1
ldd --version
若升级GCC版本至7.3.0,可以在CFLAGS和CPPFLAGS里面增加编译选项-march=armv8-a来使用鲲鹏处理器所兼容的armv8指令集。
若升级GCC版本至9.1.0以上,可额外增加编译选项-mtune=tsv110,指定使用tsv110流水线。
父主题: 虚拟机调优