From d3dd43cb59db799ff8863f5e1b7b78df2973f401 Mon Sep 17 00:00:00 2001 From: wangmingrong1 Date: Thu, 26 Jun 2025 16:25:18 +0800 Subject: [PATCH] arch/arm32v8m/cmake: Fix clang's error in specifying cfg and target 1. -target should be in front, otherwise clang will not be able to find the corresponding libgcc.a 2. When using clang++ compiler to link, you also need to specify the corresponding arch, otherwise ld.lld will report an error due to arch mismatch. Signed-off-by: wangmingrong1 --- arch/arm/src/cmake/clang.cmake | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/arm/src/cmake/clang.cmake b/arch/arm/src/cmake/clang.cmake index f8d00aabf1..a6ff1c6a03 100644 --- a/arch/arm/src/cmake/clang.cmake +++ b/arch/arm/src/cmake/clang.cmake @@ -54,11 +54,14 @@ if(TOOLCHAIN_CLANG_CONFIG) set(TOOLCHAIN_CLANG_CONFIG ${TOOLCHAIN_CLANG_CONFIG}_nosys) elseif(CLANGVER STRGREATER_EQUAL "17.0") set(TOOLCHAIN_CLANG_OPTION -target) - add_compile_options(--target=arm-none-eabi) + set(TOOLCHAIN_CLANG_TARGET --target=arm-none-eabi) else() set(TOOLCHAIN_CLANG_OPTION --config) endif() - add_compile_options(${TOOLCHAIN_CLANG_OPTION} ${TOOLCHAIN_CLANG_CONFIG}.cfg) + add_compile_options(${TOOLCHAIN_CLANG_OPTION} ${TOOLCHAIN_CLANG_CONFIG}.cfg + ${TOOLCHAIN_CLANG_TARGET}) + add_link_options(${TOOLCHAIN_CLANG_OPTION} ${TOOLCHAIN_CLANG_CONFIG}.cfg + ${TOOLCHAIN_CLANG_TARGET}) endif() # override the ARCHIVE command