Clean up RISC-V toolchain files (#23457)
Remove unnecessary CMake path variables (CMAKE_FIND_ROOT_PATH,
CMAKE_PREFIX_PATH, CMAKE_SYSTEM_LIBRARY_PATH) as they are not used in
IREE's cross-compilation workflow.
Remove explicit linker flags for standard libraries (stdc++, pthread,
libm, ldl) since CMake handles these automatically via the sysroot.
Switch to CMAKE_*_FLAGS_INIT instead of CMAKE_*_FLAGS to follow CMake
convention.
Signed-off-by: Han-Kuan Chen <hankuan.chen@sifive.com>
diff --git a/build_tools/cmake/build_riscv.sh b/build_tools/cmake/build_riscv.sh
index 796bb61..99f277c 100755
--- a/build_tools/cmake/build_riscv.sh
+++ b/build_tools/cmake/build_riscv.sh
@@ -32,6 +32,9 @@
source build_tools/cmake/setup_build.sh
source build_tools/cmake/setup_ccache.sh
+# Create install directory now--we need to get its real path later.
+mkdir -p "${INSTALL_DIR}"
+
declare -a args
args=(
"-G" "Ninja"
diff --git a/build_tools/cmake/generic_riscv64.cmake b/build_tools/cmake/generic_riscv64.cmake
index 50712a9..1852e80 100644
--- a/build_tools/cmake/generic_riscv64.cmake
+++ b/build_tools/cmake/generic_riscv64.cmake
@@ -18,7 +18,6 @@
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR riscv64)
-set(RISCV_TOOLCHAIN_TRIPLE riscv64-unknown-elf)
if(NOT "${RISCV_TOOLCHAIN_ROOT}" STREQUAL "")
set(CMAKE_AR "${RISCV_TOOLCHAIN_ROOT}/bin/${RISCV_TOOLCHAIN_PREFIX}llvm-ar")
@@ -26,10 +25,7 @@
set(CMAKE_CXX_COMPILER "${RISCV_TOOLCHAIN_ROOT}/bin/${RISCV_TOOLCHAIN_PREFIX}clang++")
set(CMAKE_RANLIB "${RISCV_TOOLCHAIN_ROOT}/bin/${RISCV_TOOLCHAIN_PREFIX}llvm-ranlib")
set(CMAKE_STRIP "${RISCV_TOOLCHAIN_ROOT}/bin/${RISCV_TOOLCHAIN_PREFIX}llvm-strip")
- set(CMAKE_SYSROOT "${RISCV_TOOLCHAIN_ROOT}/${RISCV_TOOLCHAIN_TRIPLE}")
- list(APPEND CMAKE_FIND_ROOT_PATH "${RISCV_TOOLCHAIN_ROOT}")
- list(APPEND CMAKE_PREFIX_PATH "${RISCV_TOOLCHAIN_ROOT}")
- list(APPEND CMAKE_SYSTEM_LIBRARY_PATH "${RISCV_TOOLCHAIN_ROOT}/${RISCV_TOOLCHAIN_TRIPLE}/lib")
+ set(CMAKE_SYSROOT "${RISCV_TOOLCHAIN_ROOT}/riscv64-unknown-elf")
endif()
set(CMAKE_C_EXTENSIONS OFF CACHE BOOL "" FORCE) # runtime/src/iree/base/time.c:108:13: error: call to undeclared function 'clock_nanosleep'
@@ -45,14 +41,10 @@
set(RISCV_COMPILER_FLAGS "\
-march=rv64i2p1ma2p1f2p2d2p2c2p0 -mabi=lp64d -DIREE_PLATFORM_GENERIC=1 \
-DIREE_FILE_IO_ENABLE=0 -DIREE_TIME_NOW_FN=\"\{ return 0; \}\" -DIREE_DEVICE_SIZE_T=uint64_t -DPRIdsz=PRIu64")
-set(RISCV_LINKER_FLAGS "-lm")
-set(CMAKE_C_FLAGS "${RISCV_COMPILER_FLAGS} ${CMAKE_C_FLAGS}")
-set(CMAKE_CXX_FLAGS "${RISCV_COMPILER_FLAGS} ${CMAKE_CXX_FLAGS}")
-set(CMAKE_ASM_FLAGS "${RISCV_COMPILER_FLAGS} ${CMAKE_ASM_FLAGS}")
-set(CMAKE_SHARED_LINKER_FLAGS "${RISCV_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS}")
-set(CMAKE_MODULE_LINKER_FLAGS "${RISCV_LINKER_FLAGS} ${CMAKE_MODULE_LINKER_FLAGS}")
-set(CMAKE_EXE_LINKER_FLAGS "${RISCV_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}")
+set(CMAKE_C_FLAGS_INIT "${RISCV_COMPILER_FLAGS}")
+set(CMAKE_CXX_FLAGS_INIT "${RISCV_COMPILER_FLAGS}")
+set(CMAKE_ASM_FLAGS_INIT "${RISCV_COMPILER_FLAGS}")
# GNUInstallDirs does not set CMAKE_INSTALL_LIBDIR in this configuration.
# When CMAKE_INSTALL_LIBDIR is unset, the install path becomes /cmake/IREE/IREERuntimeConfig.cmake
diff --git a/build_tools/cmake/linux_riscv64.cmake b/build_tools/cmake/linux_riscv64.cmake
index 6b26fac..bd0e3ce 100644
--- a/build_tools/cmake/linux_riscv64.cmake
+++ b/build_tools/cmake/linux_riscv64.cmake
@@ -26,16 +26,12 @@
set(CMAKE_RANLIB "${RISCV_TOOLCHAIN_ROOT}/bin/${RISCV_TOOLCHAIN_PREFIX}llvm-ranlib")
set(CMAKE_STRIP "${RISCV_TOOLCHAIN_ROOT}/bin/${RISCV_TOOLCHAIN_PREFIX}llvm-strip")
set(CMAKE_SYSROOT "${RISCV_TOOLCHAIN_ROOT}/sysroot")
- list(APPEND CMAKE_FIND_ROOT_PATH "${RISCV_TOOLCHAIN_ROOT}")
- list(APPEND CMAKE_PREFIX_PATH "${RISCV_TOOLCHAIN_ROOT}")
- list(APPEND CMAKE_SYSTEM_LIBRARY_PATH "${RISCV_TOOLCHAIN_ROOT}/sysroot/lib64/lp64d")
endif()
# Specify ISA spec for march=rv64gc. This is to resolve the mismatch between
# llvm and binutil ISA version.
set(RISCV_COMPILER_FLAGS "\
-march=rv64i2p1ma2p1f2p2d2p2c2p0 -mabi=lp64d")
-set(RISCV_LINKER_FLAGS "-lstdc++ -lpthread -lm -ldl")
set(RISCV64_TEST_DEFAULT_LLVM_FLAGS
"--iree-llvmcpu-target-triple=riscv64"
"--iree-llvmcpu-target-abi=lp64d"
@@ -43,9 +39,6 @@
"--riscv-v-fixed-length-vector-lmul-max=8"
CACHE INTERNAL "Default llvm codegen flags for testing purposes")
-set(CMAKE_C_FLAGS "${RISCV_COMPILER_FLAGS} ${CMAKE_C_FLAGS}")
-set(CMAKE_CXX_FLAGS "${RISCV_COMPILER_FLAGS} ${CMAKE_CXX_FLAGS}")
-set(CMAKE_ASM_FLAGS "${RISCV_COMPILER_FLAGS} ${CMAKE_ASM_FLAGS}")
-set(CMAKE_SHARED_LINKER_FLAGS "${RISCV_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS}")
-set(CMAKE_MODULE_LINKER_FLAGS "${RISCV_LINKER_FLAGS} ${CMAKE_MODULE_LINKER_FLAGS}")
-set(CMAKE_EXE_LINKER_FLAGS "${RISCV_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS}")
+set(CMAKE_C_FLAGS_INIT "${RISCV_COMPILER_FLAGS}")
+set(CMAKE_CXX_FLAGS_INIT "${RISCV_COMPILER_FLAGS}")
+set(CMAKE_ASM_FLAGS_INIT "${RISCV_COMPILER_FLAGS}")