更新时间:2021-12-16 GMT+08:00
分享

GCC升级

目的

CentOS 7.6 操作系统默认gcc版本为4.8.5,glibc版本为2.17。由于软件编译依赖gcc和glibc编译器版本,在虚拟机内升级版本对一些程序的性能有一定优化。

方法

建议虚拟机操作系统里的gcc、glibc版本升级到如下表参考版本。

编译器

版本

下载链接

gcc

7.3.0及以上

https://ftp.gnu.org/gnu/gcc/

glibc

2.27

https://ftp.gnu.org/gnu/libc/

  1. 下载上述软件包到/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
    

  2. 安装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
    

  3. 安装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
    

  4. 安装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
    

  5. 安装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
    

  6. 安装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
    

  7. 配置环境变量。

    在/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. 使环境变量生效。

    1
    source /etc/profile
    

  2. 检查GCC版本。

    1
    gcc -v
    

  3. 安装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
    

  4. 配置环境变量。

    在/etc/profile文件中添加如下环境变量

    1
    export PATH=/usr/local/glibc-2.27/bin:$PATH
    

  1. 使环境变量生效。

    1
    source /etc/profile
    

  2. 检查glibc版本。

    1
    ldd --version
    

    若升级gcc版本至7.3.0,可以在CFLAGS和CPPFLAGS里面增加编译选项-march=armv8-a来使用鲲鹏处理器所兼容的armv8指令集。

    若升级gcc版本至9.1.0以上,可额外增加编译选项-mtune=tsv110,指定使用tsv110流水线。

分享:

    相关文档

    相关产品

close