FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Official GCCでのRISC-Vコンパイル環境構築方法

GCC13のオフィシャルパッケージを用いて、RISC-V向けのコンパイラとライブラリを構築する手法についてメモしておく。

  • Binutilsビルド
curl -L ftp://ftp.gnu.org/gnu/binutils/binutils-2.40.tar.gz | tar xz
cd binutils-2.40
mkdir build
cd build
export RISCV=/home/msyksphinz/riscv_gcc_rvv
../configure --prefix=${RISCV} \
        --target=riscv64-unknown-elf \
        --enable-languages=c,c++ \
        --disable-multilib && make -j$(nproc)
make install
  • GCCビルド(1回目)
curl -L http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-13.1.0/gcc-13.1.0.tar.gz | tar xz
mkdir -p gcc-13.1.0/build_1st
cd gcc-13.1.0/build_1st
../configure --prefix=${RISCV} \
        --target=riscv64-unknown-elf \
        --enable-languages=c,c++ \
        --without-headers \
        --with-newlib \
        --disable-threads && make -j$(nproc) all-gcc
make install-gcc
  • NewLibビルド
curl -L ftp://sourceware.org/pub/newlib/newlib-4.3.0.20230120.tar.gz | tar xz
cd newlib-4.3.0.20230120
mkdir build && cd build
export PATH=${RISCV}/bin:${PATH}
export LD_LIBRARY_PATH=${RISCV}/lib:${LD_LIBRARY_PATH}
../configure --prefix=${RISCV} --target=riscv64-unknown-elf && make -j$(nproc) && make install
  • GCCビルド(2回目)
mkdir build_2nd
cd build_2nd
../configure --prefix=${RISCV} --target=riscv64-unknown-elf --enable-languages=c,c++ --with-newlib && make -j$(nproc) && make install