diff --git a/toolchain-c/cmake/toolchain-riscv64.cmake b/toolchain-c/cmake/toolchain-riscv64.cmake new file mode 100644 index 00000000..6d6a0025 --- /dev/null +++ b/toolchain-c/cmake/toolchain-riscv64.cmake @@ -0,0 +1,22 @@ +if (NOT DEFINED ENV{CROSS_TOOLCHAIN_PREFIX}) + message(FATAL_ERROR "CROSS_TOOLCHAIN_PREFIX=... must be specified.") +endif() + +set(CROSS_TOOLCHAIN_PREFIX "$ENV{CROSS_TOOLCHAIN_PREFIX}") + +set(CMAKE_SYSTEM_NAME yggdrasil) +set(CMAKE_C_COMPILER "${CROSS_TOOLCHAIN_PREFIX}/bin/clang") +set(CMAKE_CXX_COMPILER "${CROSS_TOOLCHAIN_PREFIX}/bin/clang++") + +# Specify the target triple for your custom OS. +set(CMAKE_C_COMPILER_TARGET "riscv64-unknown-yggdrasil") +set(CMAKE_ASM_COMPILER_TARGET "riscv64-unknown-yggdrasil") + +# Disable default system libraries +# set(CMAKE_EXE_LINKER_FLAGS "-nostdlib") +# set(CMAKE_SHARED_LINKER_FLAGS "-v") + +set(CMAKE_C_FLAGS "--target=riscv64-unknown-yggdrasil -fPIC") +set(CMAKE_CXX_FLAGS "--target=riscv64-unknown-yggdrasil -march=rv64gc -nostdlib++ -fPIC -D_LIBCPP_HAS_NO_TREE_BARRIER") + +# Specify any additional include paths or linker flags as needed