mirror of
https://github.com/apache/nuttx.git
synced 2026-05-22 13:52:22 +08:00
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:
committed by
Xiang Xiao
parent
c4e5ac00e3
commit
0832cdca1c
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user