mirror of
https://github.com/apache/nuttx.git
synced 2026-05-30 21:36:28 +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
|
# Clang Configuration files
|
||||||
|
|
||||||
ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
|
ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y)
|
||||||
TOOLCHAIN_CLANG_CONFIG = armv6m_soft_nofp
|
|
||||||
else ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),y)
|
|
||||||
LDFLAGS += --cpu=Cortex-M0
|
LDFLAGS += --cpu=Cortex-M0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -106,25 +106,7 @@ endif
|
|||||||
|
|
||||||
# Clang Configuration files
|
# Clang Configuration files
|
||||||
|
|
||||||
ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
|
ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),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_ARCH_CORTEXM4),y)
|
ifeq ($(CONFIG_ARCH_CORTEXM4),y)
|
||||||
ifeq ($(CONFIG_ARCH_FPU),y)
|
ifeq ($(CONFIG_ARCH_FPU),y)
|
||||||
|
|||||||
@@ -116,37 +116,7 @@ endif
|
|||||||
|
|
||||||
# Clang Configuration files
|
# Clang Configuration files
|
||||||
|
|
||||||
ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
|
ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),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_ARCH_CORTEXM23),y)
|
ifeq ($(CONFIG_ARCH_CORTEXM23),y)
|
||||||
LDFLAGS += --cpu=Cortex-M23
|
LDFLAGS += --cpu=Cortex-M23
|
||||||
|
|||||||
@@ -51,36 +51,6 @@ if(CONFIG_ARM_DSP)
|
|||||||
set(EXTCPUFLAGS +dsp)
|
set(EXTCPUFLAGS +dsp)
|
||||||
endif()
|
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)
|
if(CONFIG_ARCH_CORTEXM23)
|
||||||
list(APPEND PLATFORM_FLAGS -mtune=cortex-m23 -march=armv8-m.main
|
list(APPEND PLATFORM_FLAGS -mtune=cortex-m23 -march=armv8-m.main
|
||||||
-mfloat-abi=soft)
|
-mfloat-abi=soft)
|
||||||
|
|||||||
@@ -42,27 +42,7 @@ set(CMAKE_RANLIB llvm-ranlib)
|
|||||||
# built-in functions, refer: https://github.com/apache/incubator-nuttx/pull/5971
|
# built-in functions, refer: https://github.com/apache/incubator-nuttx/pull/5971
|
||||||
|
|
||||||
add_compile_options(-fno-builtin)
|
add_compile_options(-fno-builtin)
|
||||||
|
add_compile_options(--target=arm-none-eabi)
|
||||||
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()
|
|
||||||
|
|
||||||
# override the ARCHIVE command
|
# override the ARCHIVE command
|
||||||
|
|
||||||
|
|||||||
@@ -225,25 +225,13 @@ ifeq ($(CONFIG_ARM_TOOLCHAIN_CLANG),y)
|
|||||||
|
|
||||||
ARCHOPTIMIZATION += -fno-builtin
|
ARCHOPTIMIZATION += -fno-builtin
|
||||||
|
|
||||||
ifneq ($(TOOLCHAIN_CLANG_CONFIG),)
|
ifeq ($(CLANGVER),)
|
||||||
ifeq ($(CLANGVER),)
|
export CLANGVER := $(shell $(CC) --version | grep "clang version" | sed -E "s/.* ([0-9]+\.[0-9]+\.[0-9]+).*/\1/")
|
||||||
export CLANGVER := $(shell $(CC) --version | grep "clang version" | sed -E "s/.* ([0-9]+\.[0-9]+\.[0-9]+).*/\1/")
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(CLANGVER),14.0)
|
ifeq "17.0" "$(word 1, $(sort 17.0 $(CLANGVER)))"
|
||||||
TOOLCHAIN_CLANG_CONFIG := $(TOOLCHAIN_CLANG_CONFIG)_nosys
|
ARCHCPUFLAGS += --target=arm-none-eabi
|
||||||
endif
|
LDFLAGS += --print-memory-usage
|
||||||
|
|
||||||
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)
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LDFLAGS += --entry=__start
|
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
|
# Generic GNU EABI toolchain
|
||||||
|
|
||||||
ifeq ($(CONFIG_ARM_TOOLCHAIN_GNU_EABI),y)
|
ifeq ($(CONFIG_ARM_TOOLCHAIN_GNU_EABI),y)
|
||||||
|
|||||||
Reference in New Issue
Block a user