1############################################## 2# DragonOS hosted gcc build script 3# 4# This script is used to build userland gcc for DragonOS(Running on Linux) 5############################################## 6 7# 编译前请先设置参数 8sys_root=$DRAGONOS_SYSROOT 9gcc_path=请填写gcc的路径 10 11# 要安装到的目录 12PREFIX=$HOME/opt/dragonos-host-userspace 13 14 15if [ ! -d ${gcc_path} ]; then 16 echo "Error: ${gcc_path} not found" 17 exit 1 18fi 19 20if [ ! -d ${sys_root} ]; then 21 echo "Error: ${sys_root} not found" 22 exit 1 23fi 24 25# 安装依赖 26# 注意texinfo和binutils的版本是否匹配 27# 注意gmp/mpc/mpfr和gcc/g++的版本是否匹配 28sudo apt-get install -y \ 29 g++ \ 30 gcc \ 31 make \ 32 texinfo \ 33 libgmp3-dev \ 34 libmpc-dev \ 35 libmpfr-dev \ 36 flex \ 37 wget 38 39mkdir -p build-gcc || exit 1 40mkdir -p ${PREFIX} || exit 1 41 42cd build-gcc 43${gcc_path}/configure --prefix=${PREFIX} --target=x86_64-dragonos --with-sysroot=${sys_root} --disable-werror --disable-shared --disable-bootstrap --enable-languages=c,c++ || exit 1 44make all-gcc all-target-libgcc -j $(nproc) || exit 1 45make install-gcc install-target-libgcc -j $(nproc) || exit 1 46# 这里会报错,暂时不知道为什么 47# make all-target-libstdc++-v3 -j $(nproc) || exit 1 48# make install-target-libstdc++-v3 -j $(nproc) || exit 1 49make clean 50cd .. 51rm -rf build-gcc 52