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 <wangmingrong1@xiaomi.com>
This commit is contained in:
wangmingrong1
2025-09-12 11:17:14 +08:00
committed by Xiang Xiao
parent c4e5ac00e3
commit 0832cdca1c
7 changed files with 10 additions and 128 deletions
+1 -3
View File
@@ -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
+1 -19
View File
@@ -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)
+1 -31
View File
@@ -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
-30
View File
@@ -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)
+1 -21
View File
@@ -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
+6 -18
View File
@@ -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),)
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
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
-6
View File
@@ -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)