You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2022/05/20 16:03:14 UTC
[incubator-nuttx] 01/02: arch: arm: armv6-m: fix LTO build
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/incubator-nuttx.git
commit a74c707da651ffb357d24a6e90e46706024f2a9b
Author: Karel Kočí <ka...@nic.cz>
AuthorDate: Fri May 20 11:37:25 2022 +0200
arch: arm: armv6-m: fix LTO build
This imports changes from armv7-m.
---
arch/arm/src/armv6-m/Toolchain.defs | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/arch/arm/src/armv6-m/Toolchain.defs b/arch/arm/src/armv6-m/Toolchain.defs
index 8679684d29..400a3ec376 100644
--- a/arch/arm/src/armv6-m/Toolchain.defs
+++ b/arch/arm/src/armv6-m/Toolchain.defs
@@ -100,6 +100,9 @@ ifeq ($(CONFIG_LTO_THIN),y)
ARCHOPTIMIZATION += -flto=thin
else ifeq ($(CONFIG_LTO_FULL),y)
ARCHOPTIMIZATION += -flto
+ ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),GNU_EABI)
+ ARCHOPTIMIZATION += -fuse-linker-plugin
+ endif
endif
# NuttX buildroot under Linux or Cygwin
@@ -143,12 +146,21 @@ else
CC = $(CROSSDEV)gcc
CXX = $(CROSSDEV)g++
CPP = $(CROSSDEV)gcc -E -P -x c
- LD = $(CROSSDEV)ld
STRIP = $(CROSSDEV)strip --strip-unneeded
- AR = $(CROSSDEV)ar rcs
- NM = $(CROSSDEV)nm
OBJCOPY = $(CROSSDEV)objcopy
OBJDUMP = $(CROSSDEV)objdump
+ LD = $(CROSSDEV)ld
+ AR = $(CROSSDEV)ar rcs
+ NM = $(CROSSDEV)nm
+
+ ifeq ($(CONFIG_LTO_FULL),y)
+ ifeq ($(CONFIG_ARMV6M_TOOLCHAIN),GNU_EABI)
+ LD := $(CROSSDEV)gcc
+ AR := $(CROSSDEV)gcc-ar rcs
+ NM := $(CROSSDEV)gcc-nm
+ ARCHOPTIMIZATION += -fno-builtin
+ endif
+ endif
endif
# Architecture flags
@@ -171,6 +183,8 @@ ifneq ($(CONFIG_CXX_RTTI),y)
ARCHCXXFLAGS += -fno-rtti
endif
+LDFLAGS += -nostdlib
+
# Optimization of unused sections
ifeq ($(CONFIG_DEBUG_OPT_UNUSED_SECTIONS),y)