From 6986639f45afd357b17460f84117cfa25915b00d Mon Sep 17 00:00:00 2001 From: Tim Hutt Date: Wed, 5 Mar 2025 14:07:48 +0000 Subject: [PATCH] Review fixes --- test/first_party/CMakeLists.txt | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/test/first_party/CMakeLists.txt b/test/first_party/CMakeLists.txt index 6dac16f39..b234a4566 100644 --- a/test/first_party/CMakeLists.txt +++ b/test/first_party/CMakeLists.txt @@ -43,15 +43,26 @@ if (CLANG_BIN) else() message(WARNING "Your Clang compiler does not support RISC-V (see '${CLANG_BIN} -print-targets'). Please download one from https://github.com/llvm/llvm-project/releases") endif() -elseif (GCC_BIN_RV64) - set(CROSS_COMPILER_COMMAND_RV64 ${GCC_BIN_RV64}) - if (GCC_BIN_RV32) +endif() + +# Prefer riscv32-unknown-elf-gcc to riscv64-unknown-elf-gcc for RV32. +if (GCC_BIN_RV32) + if (NOT CROSS_COMPILER_COMMAND_RV32) set(CROSS_COMPILER_COMMAND_RV32 ${GCC_BIN_RV32}) - else() - # Hope it has multilib support. I'm not sure how to test that. + endif() +endif() + +if (GCC_BIN_RV64) + if (NOT CROSS_COMPILER_COMMAND_RV32) + # It might support multilib. set(CROSS_COMPILER_COMMAND_RV32 ${GCC_BIN_RV64}) endif() -else() + if (NOT CROSS_COMPILER_COMMAND_RV64) + set(CROSS_COMPILER_COMMAND_RV64 ${GCC_BIN_RV64}) + endif() +endif() + +if (NOT CROSS_COMPILER_COMMAND_RV32 OR NOT CROSS_COMPILER_COMMAND_RV64) message(FATAL_ERROR "No suitable cross-compiler found. We recommend downloading Clang from https://github.com/llvm/llvm-project/releases") endif() @@ -94,7 +105,7 @@ foreach (xlen IN ITEMS 32 64) # Indicate we are building in a standalone environment. Implies -fno-builtin # so the compiler won't assume that memcpy etc. are available. -ffreestanding - # Don't try to link with libc or libc. + # Don't try to link with libc or libm. -nostdlib # Generate a statically linked binary. -static