This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 0832cdca1c8937d1ec473520bcf14d31bc087eb9 Author: wangmingrong1 <[email protected]> AuthorDate: Fri Sep 12 11:17:14 2025 +0800 toolchain/arm/clang:Update clang compilation specifications Delete the specified --config, clang can automatically find the library file through the set -march, -mcpu, and -mfpu Otherwise, different versions of clang support different special cfg settings. Signed-off-by: wangmingrong1 <[email protected]> --- arch/arm/src/armv6-m/Toolchain.defs | 4 +--- arch/arm/src/armv7-m/Toolchain.defs | 20 +------------------- arch/arm/src/armv8-m/Toolchain.defs | 32 +------------------------------- arch/arm/src/cmake/armv8-m.cmake | 30 ------------------------------ arch/arm/src/cmake/clang.cmake | 22 +--------------------- arch/arm/src/common/Toolchain.defs | 24 ++++++------------------ arch/arm/src/tlsr82/Toolchain.defs | 6 ------ 7 files changed, 10 insertions(+), 128 deletions(-) diff --git a/arch/arm/src/armv6-m/Toolchain.defs b/arch/arm/src/armv6-m/Toolchain.defs index e7887728bbd..492a9ab1f42 100644 --- a/arch/arm/src/armv6-m/Toolchain.defs +++ b/arch/arm/src/armv6-m/Toolchain.defs @@ -31,9 +31,7 @@ LLVM_CPUTYPE := cortex-m0 # Clang Configuration files -ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y) - TOOLCHAIN_CLANG_CONFIG = armv6m_soft_nofp -else ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y) +ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y) LDFLAGS += --cpu=Cortex-M0 endif diff --git a/arch/arm/src/armv7-m/Toolchain.defs b/arch/arm/src/armv7-m/Toolchain.defs index 180dd97ebaa..f247f996635 100644 --- a/arch/arm/src/armv7-m/Toolchain.defs +++ b/arch/arm/src/armv7-m/Toolchain.defs @@ -106,25 +106,7 @@ endif # Clang Configuration files -ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y) - - ifeq ($(CONFIG_ARCH_CORTEXM4),y) - ifeq ($(CONFIG_ARCH_FPU),y) - TOOLCHAIN_CLANG_CONFIG = armv7em_hard_fpv4_sp_d16 - else - TOOLCHAIN_CLANG_CONFIG = armv7em_soft_nofp - endif - else ifeq ($(CONFIG_ARCH_CORTEXM7),y) - ifeq ($(CONFIG_ARCH_FPU),y) - TOOLCHAIN_CLANG_CONFIG = armv7em_hard_fpv5_d16 - else - TOOLCHAIN_CLANG_CONFIG = armv7em_soft_nofp - endif - else # ifeq ($(CONFIG_ARCH_CORTEXM3),y) - TOOLCHAIN_CLANG_CONFIG = armv7m_soft_nofp - endif - -else ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y) +ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y) ifeq ($(CONFIG_ARCH_CORTEXM4),y) ifeq ($(CONFIG_ARCH_FPU),y) diff --git a/arch/arm/src/armv8-m/Toolchain.defs b/arch/arm/src/armv8-m/Toolchain.defs index 59397646c7a..65914d78229 100644 --- a/arch/arm/src/armv8-m/Toolchain.defs +++ b/arch/arm/src/armv8-m/Toolchain.defs @@ -116,37 +116,7 @@ endif # Clang Configuration files -ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y) - - ifeq ($(CONFIG_ARCH_CORTEXM23),y) - TOOLCHAIN_CLANG_CONFIG = armv8m.main_soft_nofp - else ifeq ($(CONFIG_ARCH_CORTEXM33),y) - ifeq ($(CONFIG_ARCH_FPU),y) - TOOLCHAIN_CLANG_CONFIG = armv8m.main_hard_fp - else - TOOLCHAIN_CLANG_CONFIG = armv8m.main_soft_nofp - endif - else ifeq ($(CONFIG_ARCH_CORTEXM35P),y) - ifeq ($(CONFIG_ARCH_FPU),y) - TOOLCHAIN_CLANG_CONFIG = armv8m.main_hard_fp - else - TOOLCHAIN_CLANG_CONFIG = armv8m.main_soft_nofp - endif - else ifeq ($(CONFIG_ARCH_CORTEXM55),y) - ifeq ($(CONFIG_ARCH_FPU),y) - TOOLCHAIN_CLANG_CONFIG = armv8.1m.main_hard_fp - else - TOOLCHAIN_CLANG_CONFIG = armv8.1m.main_soft_nofp_nomve - endif - else ifeq ($(CONFIG_ARCH_CORTEXM85),y) - ifeq ($(CONFIG_ARCH_FPU),y) - TOOLCHAIN_CLANG_CONFIG = armv8.1m.main_hard_fp - else - TOOLCHAIN_CLANG_CONFIG = armv8.1m.main_soft_nofp_nomve - endif - endif - -else ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y) +ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y) ifeq ($(CONFIG_ARCH_CORTEXM23),y) LDFLAGS += --cpu=Cortex-M23 diff --git a/arch/arm/src/cmake/armv8-m.cmake b/arch/arm/src/cmake/armv8-m.cmake index 334f03b0d4c..ab083c46796 100644 --- a/arch/arm/src/cmake/armv8-m.cmake +++ b/arch/arm/src/cmake/armv8-m.cmake @@ -51,36 +51,6 @@ if(CONFIG_ARM_DSP) set(EXTCPUFLAGS +dsp) endif() -if(CONFIG_ARM_TOOLCHAIN_CLANG) - if(CONFIG_ARCH_CORTEXM23) - set(TOOLCHAIN_CLANG_CONFIG armv8m.main_soft_nofp) - elseif(CONFIG_ARCH_CORTEXM33) - if(CONFIG_ARCH_FPU) - set(TOOLCHAIN_CLANG_CONFIG armv8m.main_hard_fp) - else() - set(TOOLCHAIN_CLANG_CONFIG armv8m.main_soft_nofp) - endif() - elseif(CONFIG_ARCH_CORTEXM35P) - if(CONFIG_ARCH_FPU) - set(TOOLCHAIN_CLANG_CONFIG armv8m.main_hard_fp) - else() - set(TOOLCHAIN_CLANG_CONFIG armv8m.main_soft_nofp) - endif() - elseif(CONFIG_ARCH_CORTEXM55) - if(CONFIG_ARCH_FPU) - set(TOOLCHAIN_CLANG_CONFIG armv8.1m.main_hard_fp) - else() - set(TOOLCHAIN_CLANG_CONFIG armv8.1m.main_soft_nofp_nomve) - endif() - elseif(CONFIG_ARCH_CORTEXM85) - if(CONFIG_ARCH_FPU) - set(TOOLCHAIN_CLANG_CONFIG armv8.1m.main_hard_fp) - else() - set(TOOLCHAIN_CLANG_CONFIG armv8.1m.main_soft_nofp_nomve) - endif() - endif() -endif() - if(CONFIG_ARCH_CORTEXM23) list(APPEND PLATFORM_FLAGS -mtune=cortex-m23 -march=armv8-m.main -mfloat-abi=soft) diff --git a/arch/arm/src/cmake/clang.cmake b/arch/arm/src/cmake/clang.cmake index 714f81ddfde..e30015145fd 100644 --- a/arch/arm/src/cmake/clang.cmake +++ b/arch/arm/src/cmake/clang.cmake @@ -42,27 +42,7 @@ set(CMAKE_RANLIB llvm-ranlib) # built-in functions, refer: https://github.com/apache/incubator-nuttx/pull/5971 add_compile_options(-fno-builtin) - -if(TOOLCHAIN_CLANG_CONFIG) - execute_process(COMMAND clang --version - OUTPUT_VARIABLE clang_full_version_string) - - string(REGEX REPLACE ".*clang version ([0-9]+\\.[0-9]+\.[0-9]+).*" "\\1" - CLANGVER ${clang_full_version_string}) - - if(CLANGVER STREQUAL "14.0") - set(TOOLCHAIN_CLANG_CONFIG ${TOOLCHAIN_CLANG_CONFIG}_nosys) - elseif(CLANGVER STRGREATER_EQUAL "17.0") - set(TOOLCHAIN_CLANG_OPTION -target) - 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 - ${TOOLCHAIN_CLANG_TARGET}) - add_link_options(${TOOLCHAIN_CLANG_OPTION} ${TOOLCHAIN_CLANG_CONFIG}.cfg - ${TOOLCHAIN_CLANG_TARGET}) -endif() +add_compile_options(--target=arm-none-eabi) # override the ARCHIVE command diff --git a/arch/arm/src/common/Toolchain.defs b/arch/arm/src/common/Toolchain.defs index fb7cd8c5719..f7c4e6a15c3 100644 --- a/arch/arm/src/common/Toolchain.defs +++ b/arch/arm/src/common/Toolchain.defs @@ -225,25 +225,13 @@ ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y) ARCHOPTIMIZATION += -fno-builtin - ifneq ($(TOOLCHAIN_CLANG_CONFIG),) - ifeq ($(CLANGVER),) - export CLANGVER := $(shell $(CC) --version | grep "clang version" | sed -E "s/.* ([0-9]+\.[0-9]+\.[0-9]+).*/\1/") - endif - - ifeq ($(CLANGVER),14.0) - TOOLCHAIN_CLANG_CONFIG := $(TOOLCHAIN_CLANG_CONFIG)_nosys - endif - - ifeq "17.0" "$(word 1, $(sort 17.0 $(CLANGVER)))" - TOOLCHAIN_CLANG_OPTION = -target - ARCHCPUFLAGS += --target=arm-none-eabi - - LDFLAGS += --print-memory-usage - else - TOOLCHAIN_CLANG_OPTION = --config - endif + ifeq ($(CLANGVER),) + export CLANGVER := $(shell $(CC) --version | grep "clang version" | sed -E "s/.* ([0-9]+\.[0-9]+\.[0-9]+).*/\1/") + endif - ARCHCPUFLAGS := $(TOOLCHAIN_CLANG_OPTION) $(TOOLCHAIN_CLANG_CONFIG).cfg $(ARCHCPUFLAGS) + ifeq "17.0" "$(word 1, $(sort 17.0 $(CLANGVER)))" + ARCHCPUFLAGS += --target=arm-none-eabi + LDFLAGS += --print-memory-usage endif LDFLAGS += --entry=__start diff --git a/arch/arm/src/tlsr82/Toolchain.defs b/arch/arm/src/tlsr82/Toolchain.defs index 1708a0fee71..01b6e94c8b2 100644 --- a/arch/arm/src/tlsr82/Toolchain.defs +++ b/arch/arm/src/tlsr82/Toolchain.defs @@ -20,12 +20,6 @@ # ############################################################################ -# Clang Configuration files - -ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y) - TOOLCHAIN_CLANG_CONFIG = armv6m_soft_nofp -endif - # Generic GNU EABI toolchain ifeq ($(CONFIG_ARM_TOOLCHAIN_GNU_EABI),y)
