RISC-V バイナリを QEMU で動作させる試行の続き。
GCCだと-O3オプションで落ちてしまうので、LLVMを試してみよう。
configファイルに以下を追加する。
% define model --target=riscv64-unknown-linux-gnu -march=rv64gc --sysroot=/home/msyksphinz/riscv64-linux/sysroot --gcc-toolchain=/home/msyksphinz/riscv64-linux/
OpenMPに関連するフラグを削除する。
%if %{bits} == 32
intspeed,fpspeed:
#
# Many of the speed benchmarks (6nn.benchmark_s) do not fit in 32 bits
# If you wish to run SPECint2017_speed or SPECfp2017_speed, please use
#
# runcpu --define bits=64
#
fail_build = 1
%else
intspeed,fpspeed:
OPENMP_LIB_PATH = $[OPENMP_DIR]/lin_32e/lib
EXTRA_OPTIMIZE = -Wno-return-type -I $(OPENMP_DIR)/common/include
# EXTRA_LIBS = -fopenmp=libomp -L$(OPENMP_LIB_PATH) -lomp
# EXTRA_FLIBS = -fopenmp=libomp -lgfortran -lm
preENV_LIBRARY_PATH = $[LLVM_LIB_PATH]:$[OPENMP_LIB_PATH]
preENV_LD_LIBRARY_PATH = $[LLVM_LIB_PATH]:$[OPENMP_LIB_PATH]
#preENV_LIBRARY_PATH = $[LLVM_LIB_PATH]:$[OPENMP_LIB_PATH]:%{ENV_LIBRARY_PATH}
#preENV_LD_LIBRARY_PATH = $[LLVM_LIB_PATH]:$[OPENMP_LIB_PATH]:%{ENV_LD_LIBRARY_PATH}
preENV_OMP_THREAD_LIMIT = %{cputhreads}
preENV_OMP_STACKSIZE = 128M
preENV_GOMP_CPU_AFFINITY = 0-%{cputhreads}
%endif
これで一応コンパイルできるようになる。