RISC-Vのツール群、主にコンパイラツールは32bitと64bitのものが存在する。それぞれにライブラリが定義されており、別々にディレクトリを用意してインストールするのが良いと思われる。
ビルドスクリプトも別々に用意されている。
riscv-tools/build.sh # 64bit用 riscv-tools/build-rv32ima.sh # 32bit用
これらのツール群のパスを設定するために、いちいちスクリプトを変更するのは面倒だ。これをかんりするために、Environment Modulesを使ってパスとライブラリを管理しよう。
RISC-Vのツール群で設定する必要があるのは、
の設定が必要だ。${HOME}/modules/riscv/
ディレクトリに riscv32
, riscv64
ファイルを作り、環境変数 MODULEPATH=${HOME}/modules
を設定する。
- ${HOME}/modules/riscv/riscv32
#%Module1.0 ## proc ModulesHelp { } { puts stderr "RISC-V 32-bit Toolchain\n" } module-whatis "RISC-V 32-bit Toolchain" # append pathes setenv RISCV $::env(HOME)/riscv32/ prepend-path PATH $::env(HOME)/riscv32/bin/ prepend-path LD_LIBRARY_PATH $::env(HOME)/riscv32/lib/
- ${HOME}/modules/riscv/riscv64
#%Module1.0 ## proc ModulesHelp { } { puts stderr "RISC-V 64-bit Toolchain\n" } module-whatis "RISC-V 64-bit Toolchain" # append pathes setenv RISCV $::env(HOME)/riscv64/ prepend-path PATH $::env(HOME)/riscv64/bin prepend-path LD_LIBRARY_PATH $::env(HOME)/riscv64/lib
module avail
で、ツール群の存在を確認する。
module avail
------------------------- /home/msyksphinz/modules/ ---------------------------------------
riscv/riscv32 riscv/riscv64
例えば、32bitツール群をロードしてみよう。
$ module load riscv/riscv32 $ printenv RISCV /home/msyksphinz/riscv32/ $ which riscv32-unknown-elf-gcc /home/msyksphinz/riscv32/bin//riscv32-unknown-elf-gcc $ which riscv64-unknown-elf-gcc
次に、64bitツール群をロードしてみる。
$ module load riscv/riscv64 $ printenv RISCV /home/msyksphinz/riscv64/ $ which riscv32-unknown-elf-gcc $ which riscv64-unknown-elf-gcc /home/msyksphinz/riscv64/bin/riscv64-unknown-elf-gcc
ちゃんと設定できた!