1. 下载binutils ,因为GCC编译过程中需要:
- as - GNU汇编器(将汇编代码转换为目标文件)
- ld - GNU链接器(将目标文件链接为可执行文件)
- ar - 静态库归档工具
- objdump, objcopy, readelf等工具
mkdir binutils-xxx/build && cd binutils-xxx/build
../configure \
--target=aarch64-linux-gnu \
--prefix=${HOME}/build_aarch64_gcc/gcc-x86_64-aarch64-linux-gnu \
--disable-multilib \
--disable-shared \
--enable-static \
--with-sysroot=${HOME}/build_aarch64_gcc/ubuntu-base-22.04.5-base-arm64
make -j$(nproc)
make install
2. 编译GCC:
首先需要安装以下数学相关的库,原因是GCC的代码生成和优化过程中大量使用高精度数学计算,这些库提供了必要的数学支持:
sudo apt install -y libgmp-dev libmpfr-dev libmpc-dev
然后从GCC官网下载源码:
mkdir gcc-xxx/build && cd gcc-xxx/build
../configure \
--target=aarch64-linux-gnu \
--prefix=${HOME}/build_aarch64_gcc/gcc-x86_64-aarch64-linux-gnu \
--enable-languages=c,c++,fortran \
--with-sysroot=${HOME}/build_aarch64_gcc/ubuntu-base-22.04.5-base-arm64 \
--with-build-sysroot=${HOME}/build_aarch64_gcc/ubuntu-base-22.04.5-base-arm64
make -j$(nproc)
make install