相変わらずApple Silicon上での作業に四苦八苦しているのだが、Chipyardの環境が構築できるのか思考している。
このリポジトリを使うためには最初にツールチェインをビルドする必要がある。これまではサボってビルド済みバイナリをダウンロードする方式にしていたのだが、Apple Siliconだとそうは行かない。一からビルドできるか試行してみる。
./scripts/build-toolchains.sh --ignore-qemu ./scripts/build-toolchains.sh: line 18: greadlink: command not found Installing toolchain to /Users/kimura/work/riscv/chipyard/chipyard/riscv-tools-install build-toolchains.sh: obsolete make version; need GNU make 4.x or later zsh: exit 255 ./scripts/build-toolchains.sh --ignore-qemu
なんか色々だめなので、別にMakeをインストールしてやってみる。
あとはgreadlink
というのが必要らしい。
brew install coreutils
MAKE=/opt/homebrew/opt/make/libexec/gnubin/make ./scripts/build-toolchains.sh --ignore-qemu
エラーが起きているようには見えないのだが、、なんかスクリプト自体は失敗しているなあ。
make[5]: Leaving directory '/Users/kimura/work/riscv/chipyard/chipyard/toolchains/riscv-tools/riscv-gnu-toolchain/build/build-binutils-newlib/binutils' make[4]: Leaving directory '/Users/kimura/work/riscv/chipyard/chipyard/toolchains/riscv-tools/riscv-gnu-toolchain/build/build-binutils-newlib/binutils' make[3]: Leaving directory '/Users/kimura/work/riscv/chipyard/chipyard/toolchains/riscv-tools/riscv-gnu-toolchain/build/build-binutils-newlib/binutils' make[2]: Leaving directory '/Users/kimura/work/riscv/chipyard/chipyard/toolchains/riscv-tools/riscv-gnu-toolchain/build/build-binutils-newlib' make[1]: Leaving directory '/Users/kimura/work/riscv/chipyard/chipyard/toolchains/riscv-tools/riscv-gnu-toolchain/build/build-binutils-newlib' mkdir -p stamps/ && touch stamps/build-binutils-newlib zsh: exit 2 MAKE=/opt/homebrew/opt/make/libexec/gnubin/make ./scripts/build-toolchains.sh
うーん、なんか既知の問題な気もしてくる。
checking for memory.h... checking for inttypes.h... rm -f bind.o checking for strtoul... /Users/kimura/work/riscv/chipyard/chipyard/toolchains/riscv-tools/riscv-gnu-toolchain/build/../riscv-gdb/readline/rltty.c:83:7: error: implicit declaration of function 'ioctl' is invalid in C99 [-Werror,-Wimplicit-function-declaration] if (ioctl (tty, TIOCGWINSZ, &w) == 0) ^ checking for strtoll... /Users/kimura/work/riscv/chipyard/chipyard/toolchains/riscv-tools/riscv-gnu-toolchain/build/../riscv-gdb/readline/rltty.c:720:3: error: implicit declaration of function 'ioctl' is invalid in C99 [-Werror,-Wimplicit-function-declaration] ioctl (fildes, TIOCSTART, 0); ^ /Users/kimura/work/riscv/chipyard/chipyard/toolchains/riscv-tools/riscv-gnu-toolchain/build/../riscv-gdb/readline/rltty.c:759:3: error: implicit declaration of function 'ioctl' is invalid in C99 [-Werror,-Wimplicit-function-declaration] ioctl (fildes, TIOCSTOP, 0); ^ 3 errors generated. make[3]: *** [Makefile:96: rltty.o] Error 1 make[3]: *** Waiting for unfinished jobs....