前回のRust on RISC-Vのツールチェインのビルドの続き。
前回のRust on RISC-Vのツールチェインのビルドは、おそらくパッケージとライブラリの指定が足りないせいだ。
Ubuntu 17.10にパッケージを追加するのと、LD_LIBRARY_PATH
を指定すれば何とかなると思う。
sudo apt install -y libssl-dev
さらに、ライブラリの場所を追加する。どうやらRustのツールチェインではLD_LIBRARY_PATH
に追加して、LIBRARY_PATH
も追加する必要がある?
export LD_LIBRARY_PATH=/home/msyksphinz/work/riscv-rust-toolchain/toolchain/lib/:${LD_LIBRARY_PATH} export LIBRARY_PATH=${LD_LIBRARY_PATH}
これで、一応make toolchain
が通るようになったらしい。というか、Haswell Refresh 4コア on VirtualBox + 8GBメモリを投入してビルドに数時間かかるって、Rustのツールチェイン構築ってどれだけ面倒なんだ。。。
riscv-rust-quickstart
の試行
riscv-rust-quickstart
リポジトリをダウンロードしてくる。
環境変数の部分を少し変更しよう。RISCV_RUST_TOOLCHAIN
を今の環境(riscv-rust-toolchain
の場所)に変更する。
diff --git a/env.sh b/env.sh index e552973..6cf62e6 100644 --- a/env.sh +++ b/env.sh @@ -1,4 +1,4 @@ -export RISCV_RUST_TOOLCHAIN=~/repos/riscv-rust +export RISCV_RUST_TOOLCHAIN=/home/msyksphinz/work/riscv-rust-toolchain export TOOLCHAIN=$RISCV_RUST_TOOLCHAIN/toolchain
実行する。make build
で実行可能だ。
msyksphinz@msyksphinz-VirtualBox:~/work/riscv-rust-quickstart$ make build xargo build --target riscv32-unknown-none Compiling core v0.0.0 (file:///home/msyksphinz/work/riscv-rust-toolchain/rust/src/libcore) LLVM ERROR: Cannot select: t107: i32,ch = AtomicLoad<Volatile LD1[%15]> t46, t2 t2: i32,ch = CopyFromReg t0, Register:i32 %vreg9 t1: i32 = Register %vreg9 In function: _ZN67_$LT$core..sync..atomic..AtomicBool$u20$as$u20$core..fmt..Debug$GT$3fmt17hc6a29f4acb3c894eE error: Could not compile `core`. To learn more, run the command again with --verbose. error: `"cargo" "build" "--release" "--manifest-path" "/tmp/xargo.5rwceJRFvqOt/Cargo.toml" "--target" "riscv32-unknown-none" "-p" "alloc"` failed with exit code: Some(101) note: run with `RUST_BACKTRACE=1` for a backtrace Makefile:5: recipe for target 'build' failed make: *** [build] Error 1
ぬーん?なんだこれは。なかなか上手く行かない。 こっちとしてはHiFive1でRustが動かしたいだけなのに。