開発日記

Erlangをダラダラ書きます。

riscv-gnu-toolchain

RISC-V用のクロスコンパイラ

RISC-V向けのgccやldなどのコマンドを提供してくれる。

2019年までは riscv-tools リポジトリからインストールできた。

しかし、riscv-toolsリポジトリは2019年にサポート終了。

gnu-toolchainがriscv-toolsのsubmoduleから外された。)

github.com

現在は、riscv-gnu-toolchain リポジトリからインストールできる。

ベクトル拡張命令に対応したブランチも用意されている。

github.com

インストール方法

1,

// recursiveオプションはあってもなくてもよい
git clone https://github.com/riscv/riscv-gnu-toolchain

// ベクトル拡張命令対応バージョン
git clone -b rvv-0.9.x https://github.com/riscv/riscv-gnu-tool-chain

2.

// 各コマンド(gcc,ld)のバイナリが/opt/riscv/ 以下に格納される。
cd riscv-gnu-toolchain
./configure --prefix=/opt/riscv
make linux

// パスを通す
// (dockerコンテナを自動削除で起動している場合は,.bashrcに追記しdocker image にコミット)
export PATH=/opt/riscv/bin:$PATH 
// 32ビットのRV32GCツールチェーンを指定する場合(デフォルトはRV64GC)
cd riscv-gnu-toolchain
./configure --prefix=/opt/riscv32 --with-arch=rv32gc --with-abi=ilp32d
make linux

// パスを通す
// (dockerコンテナを自動削除で起動している場合は,.bashrcに追記しdocker image にコミット)
export PATH=/opt/riscv32/bin:$PATH

サポートされているアーキテクチャ

  • rv32iまたはrv64iに加えて、標準の拡張機能 (a)、(m)、(f)、(d)、(g)。

サポートされているABI

  • ilp32、ilp32d、ilp32f、lp64、lp64f、 lp64。

gcc.gnu.org

使用方法

yuyargon.hatenablog.com

それでは。いろはにへとへと。