Skip to content

Commit

Permalink
nrf/Makefile: Enable LTO by default only on newer gcc.
Browse files Browse the repository at this point in the history
Older gcc/binutils linker does not support lto with wrap.

Signed-off-by: Andrew Leech <[email protected]>
  • Loading branch information
pi-anl committed Jul 23, 2024
1 parent d786bf5 commit 9dc5232
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions ports/nrf/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,15 @@ CFLAGS_MCU_m4 = $(CFLAGS_CORTEX_M) -mtune=cortex-m4 -mcpu=cortex-m4 -mfpu=fpv4-s

CFLAGS_MCU_m0 = $(CFLAGS_CORTEX_M) -fshort-enums -mtune=cortex-m0 -mcpu=cortex-m0 -mfloat-abi=soft

# linker wrap does not work with lto on older gcc/binutils: https://sourceware.org/bugzilla/show_bug.cgi?id=24406
GCC_VERSION = $(shell arm-none-eabi-gcc --version | sed -n -E 's:^arm.*([0-9]+\.[0-9]+\.[0-9]+).*$$:\1:p')
GCC_MAJOR_VERS = $(word 1,$(subst ., ,$(GCC_VERSION)))
ifeq ($(shell test $(GCC_MAJOR_VERS) -ge 10; echo $$?),0)
LTO ?= 1
else
LTO ?= 0
endif

ifeq ($(LTO),1)
CFLAGS += -flto
else
Expand Down

0 comments on commit 9dc5232

Please sign in to comment.