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}")