FPGA開発日記

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

MacOS (Apple Silicon)でのChipyard動作試行

相変わらずApple Silicon上での作業に四苦八苦しているのだが、Chipyardの環境が構築できるのか思考している。

github.com

このリポジトリを使うためには最初にツールチェインをビルドする必要がある。これまではサボってビルド済みバイナリをダウンロードする方式にしていたのだが、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....