ちょっと訳あってChipyardのバージョンアップ試行した。これまではv1.3.0を使っていたのだがあまりにも古いのでv1.5.0に切り替えてみる。
Chipyardの何が面倒くさいかって、GNUツールチェインもついているのでそれのビルドに時間がかかる。バイナリをダウンロードして来ればいいのだが一応念のためビルドがうまく行くことを確認している。
GNUツールチェインのビルドについては、いろいろ試行錯誤をした結果以下のコマンドラインオプションにに落ち着いた。
MAKEFLAGS="-j<ncores>" ./scripts/build-toolchains.sh riscv-tools --ignore-qemu 2&>1 | tee build.log
コア数(-j
)は適宜変えてくれればいいのだが、私の場合はショボいラップトップで4コア8スレッド持っているが全部使い切るとメモリが足りなくなった。2コア使い切るのが関の山だ。あまり無理をしないように。
あと、WSLの環境では(というか最新のQEMU)を使う場合は割とビルドに失敗するので--igunore-qemu
を付けておいた方が良い。わざわざスクリプトにこういうオプションを用意しているくらいなので、メンテナもQEMUのビルドできなさ具合に少し嫌気がさしているのだろう。
あと、GNUのビルドが嫌ならプレビルドバイナリをダウンロードするという手もある。 riscv-tools
ではなくec2fast
を指定するのが手っ取り早い。
usage() { echo "usage: ${0} [OPTIONS] [riscv-tools | esp-tools | ec2fast]" echo "" echo "Installation Types" echo " riscv-tools: if set, builds the riscv toolchain (this is also the default)" echo " esp-tools: if set, builds esp-tools toolchain used for the hwacha vector accelerator" echo " ec2fast: if set, pulls in a pre-compiled RISC-V toolchain for an EC2 manager instance" echo "" echo "Options" echo " --prefix PREFIX : Install destination. If unset, defaults to $(pwd)/riscv-tools-install" echo " or $(pwd)/esp-tools-install" echo " --ignore-qemu : Ignore installing QEMU" echo " --clean-after-install : Run make clean in calls to module_make and module_build" echo " --arch -a : Architecture (e.g., rv64gc)" echo " --help -h : Display this message" exit "$1" }