Centos7 Upgrade GCC

Introduction

This guide covers upgrading GCC on Centos7 using source code compilation, so you don’t need to switch GCC environments after installation.

1. Switch to root user

su
yum -y install wget

2. Download GCC source

The following command will save to /usr/local/

wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.gz

3. Extract the archive

cd /usr/local/
tar -zxvf gcc-4.9.2.tar.gz

4. Download compilation dependencies

4.1 If you have internet access

cd gcc-4.9.2
./contrib/download_prerequisites

4.2 If you don’t have internet access

Download these packages on Windows:

Then extract and move to gcc-4.9.2:

tar -xjf gmp-4.3.2.tar.bz2
tar -xjf mpfr-2.4.2.tar.bz2
tar -xzf mpc-0.8.1.tar.gz
mv gmp-4.3.2 gcc-4.9.2/gmp
mv mpfr-2.4.2 gcc-4.9.2/mpfr
mv mpc-0.8.1 gcc-4.9.2/mpc

5. Compile and install GCC

yum install -y gcc-c++ glibc-static gcc
./configure --prefix=/usr/local/gcc --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib
make
make install

Compilation Parameters

  • --prefix=/usr/local/ Specify installation path
  • --enable-bootstrap Use the first compiled program for second compilation
  • --enable-checking=release Run consistency checks at software release standards
  • --enable-languages=c,c++ Supported high-level languages and runtime libraries
  • --disable-multilib Disable 32-bit code generation on 64-bit systems

Configure Environment Variables

1. Check current gcc version

gcc -v
# gcc (GCC) 4.8.5 20120313 (Red Hat 4.8.5-16)

2. Create environment variable script

vim /etc/profile.d/gcc.sh
# Add: export PATH=/usr/local/gcc/bin:$PATH

3. Activate environment variables

source /etc/profile.d/gcc.sh
gcc -v
# gcc (GCC) 4.9.2

Export Header Files

ln -sv /usr/local/gcc/include/ /usr/include/gcc

Export Library Files

vim /etc/ld.so.conf.d/gcc.conf
# Add: /usr/local/gcc/lib64
ldconfig -v
ldconfig -p |grep gcc

Notes

If your program was previously running on a gcc >= 4.9.2 environment, you can switch using:

source /opt/rh/devtoolset-7/enable
# or
source scl_source enable devtoolset-7