From c84539fdb33247154cf4fd1b0aa0cd1acab32a7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Harter?= <gaetan.harter@fu-berlin.de> Date: Tue, 5 Jun 2018 13:43:40 +0200 Subject: [PATCH] cortexm_common: allow defining ROM_OFFFSET in a compilation rule Define _rom_offset with a conditional evaluated at execution time to allow setting it in compilation rules and generate in the same make instance different elf files with different configurations. --- cpu/cortexm_common/Makefile.include | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/cpu/cortexm_common/Makefile.include b/cpu/cortexm_common/Makefile.include index d7150d2cdb..0cf0926b48 100644 --- a/cpu/cortexm_common/Makefile.include +++ b/cpu/cortexm_common/Makefile.include @@ -2,10 +2,6 @@ INCLUDES += -I$(RIOTCPU)/cortexm_common/include INCLUDES += -I$(RIOTCPU)/cortexm_common/include/vendor -ifneq (,$(ROM_OFFSET)) - LINKFLAGS += $(LINKFLAGPREFIX)--defsym=_rom_offset=$(ROM_OFFSET) -endif - # All variables must be defined in the CPU configuration when using the common # `ldscripts/cortexm.ld` ifneq (,$(ROM_START_ADDR)$(RAM_START_ADDR)$(ROM_LEN)$(RAM_LEN)) @@ -18,3 +14,10 @@ ifneq (,$(ROM_START_ADDR)$(RAM_START_ADDR)$(ROM_LEN)$(RAM_LEN)) LINKFLAGS += $(LINKFLAGPREFIX)--defsym=_rom_length=$(ROM_LEN) LINKFLAGS += $(LINKFLAGPREFIX)--defsym=_ram_length=$(RAM_LEN) endif + + +# Only define the linker symbol if the variable is set +# The variable can be set using target specific variable thanks to lazy evaluation + +# ROM_OFFSET: offset in rom to start linking, allows supporting a bootloader +LINKFLAGS += $(if $(ROM_OFFSET),$(LINKFLAGPREFIX)--defsym=_rom_offset=$(ROM_OFFSET)) -- GitLab