From bbdcfd947a976ee59777523b786d28ce2d1e8d30 Mon Sep 17 00:00:00 2001 From: Mark Poliakov Date: Wed, 26 Feb 2025 19:17:55 +0200 Subject: [PATCH] c: add rv64 cmake toolchain file --- toolchain-c/cmake/toolchain-riscv64.cmake | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 toolchain-c/cmake/toolchain-riscv64.cmake 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