编译安装gcc源码

77 阅读1分钟

下载源码并解压

wget https://github.com/gcc-mirror/gcc/archive/refs/tags/releases/gcc-10.3.0.tar.gz
tar -xvf gcc-10.3.0.tar.gz

切换到解压后的源代码目录

cd gcc-releases-gcc-10.3.0

下载编译依赖并解压

./contrib/download_prerequisites

使用configure脚本进行初始化,生成Makefile

./configure \
CFLAGS='-fstack-protector-strong -Wl,-z,noexecstack -Wl,-z,relro,-z,now' \
LDFLAGS='-fno-PIE' \
--prefix=/root/rpmbuild/BUILD/tools/gcc \
--disable-multilib \
--enable-checking=no \
--enable-languages=c,c++ \
--enable-bolt \
--without-zstd

编译安装

make -j8
make install

遇到编译报错

/usr/bin/ld: gengtype-parse.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIE

需要在configure里面加上LDFLAGS='-fno-PIE'的编译选项