mirror of
https://github.com/apache/nuttx.git
synced 2026-05-21 21:34:07 +08:00
arm64: Support change toolchain to clang
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
This commit is contained in:
committed by
Xiang Xiao
parent
e219066397
commit
acf0256164
@@ -198,21 +198,33 @@ CROSSDEV ?= aarch64-none-elf-
|
||||
|
||||
# Default toolchain
|
||||
|
||||
CC = $(CROSSDEV)gcc
|
||||
CXX = $(CROSSDEV)g++
|
||||
CPP = $(CROSSDEV)gcc -E -P -x c
|
||||
STRIP = $(CROSSDEV)strip --strip-unneeded
|
||||
OBJCOPY = $(CROSSDEV)objcopy
|
||||
OBJDUMP = $(CROSSDEV)objdump
|
||||
LD = $(CROSSDEV)ld
|
||||
AR = $(CROSSDEV)ar rcs
|
||||
NM = $(CROSSDEV)nm
|
||||
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GCC),y)
|
||||
CC = $(CROSSDEV)gcc
|
||||
CXX = $(CROSSDEV)g++
|
||||
CPP = $(CROSSDEV)gcc -E -P -x c
|
||||
STRIP = $(CROSSDEV)strip --strip-unneeded
|
||||
OBJCOPY = $(CROSSDEV)objcopy
|
||||
OBJDUMP = $(CROSSDEV)objdump
|
||||
LD = $(CROSSDEV)ld
|
||||
AR = $(CROSSDEV)ar rcs
|
||||
NM = $(CROSSDEV)nm
|
||||
else ifeq ($(CONFIG_ARCH_TOOLCHAIN_CLANG),y)
|
||||
CC = clang
|
||||
CXX = clang++
|
||||
CPP = clang -E -P -x c
|
||||
LD = ld.lld -m aarch64elf
|
||||
STRIP = llvm-strip --strip-unneeded
|
||||
AR = llvm-ar rcs
|
||||
NM = llvm-nm
|
||||
OBJCOPY = llvm-objcopy
|
||||
OBJDUMP = llvm-objdump
|
||||
endif
|
||||
|
||||
# Link Time Optimization
|
||||
|
||||
ifeq ($(CONFIG_LTO_FULL),y)
|
||||
ARCHOPTIMIZATION += -flto
|
||||
ifeq ($(CONFIG_ARM64_TOOLCHAIN_GNU_EABI),y)
|
||||
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GCC),y)
|
||||
LD := $(CROSSDEV)gcc
|
||||
AR := $(CROSSDEV)gcc-ar rcs
|
||||
NM := $(CROSSDEV)gcc-nm
|
||||
@@ -221,18 +233,12 @@ ifeq ($(CONFIG_LTO_FULL),y)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GNU),y)
|
||||
ifeq ($(CONFIG_ARCH_TOOLCHAIN_CLANG),)
|
||||
ifeq ($(GCCVER),)
|
||||
export GCCVER := $(shell $(CC) --version | grep gcc | sed -E "s/.* ([0-9]+\.[0-9]+).*/\1/" | cut -d'.' -f1)
|
||||
endif
|
||||
ifeq ($(shell expr "$(GCCVER)" \>= 12), 1)
|
||||
LDFLAGS += --no-warn-rwx-segments
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ARCH_TOOLCHAIN_GCC),y)
|
||||
ifeq ($(GCCVER),)
|
||||
export GCCVER := $(shell $(CC) --version | grep gcc | sed -E "s/.* ([0-9]+\.[0-9]+).*/\1/" | cut -d'.' -f1)
|
||||
endif
|
||||
ifeq ($(shell expr "$(GCCVER)" \>= 12), 1)
|
||||
LDFLAGS += --print-memory-usage
|
||||
LDFLAGS += --no-warn-rwx-segments --print-memory-usage
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user