在SuSE 12 SP5中升级gcc

SUSE 12环境编译glusterfs 11 遇到需要自己编译 Userspace RCU ,但是这个库编译对Gcc有功能要求,需要支持 C++11 的功能。当前 SUSE Linux 12 SP5提供的编译工具链版本很低, SLES 12 Toolchain Update Brings new Developer Tools 说明了SUSE公司在2018年为SLES12系列发布了 GCC 7,带来了C++17支持。不过,这个Toolchain升级是通过 SUSE Linux Enterprise Server subscription 提供的,感觉也比较麻烦。所以,我准备自己完成类似 升级CentOS 7 GCC 实现GCC升级。

gcc mirror sites 找一个最近的镜像网站,下载 10.5 版本

  • 编译准备:

编译gcc准备(安装编译依赖)
# suse没有CentOS的 libmpc-devel ,采用 mpc-devel
sudo zypper in -y bzip2 wget gcc gcc-c++ gmp-devel mpfr-devel mpc-devel make
  • 编译安装gcc:

编译gcc
version=10.5.0

wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-${version}/gcc-${version}.tar.gz
tar xfz gcc-${version}.tar.gz
cd gcc-${version}

# 64位操作系统没有安装32位开发库,一般也用不上,所以使用 --disable-multilib 参数
# 仅编译支持c/c++
# 如果要指定安装目录,可以使用类似 --prefix=$HOME/.gcc/10.5.0 这样的参数
./configure --disable-multilib --enable-languages=c,c++
make
sudo make install