From 735e5a6ee2df4f04420b739b3ef05e6d1a81792a Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Sun, 20 Sep 2015 23:09:24 -0700 Subject: [PATCH] Define SECTION=* and SECTION_IS_* when compiling The linker scripts are passed through the preprocessor so that they can distinguish between RO and RW images. This change makes the same macros available when compiling, so that code can contain directives like #ifdef SECTION_IS_RO or #define FW_SIZE_(section) CONFIG_##section##_SIZE #define FW_SIZE(section) FW_SIZE_(section) int size = FW_SIZE(SECTION); BUG=none BRANCH=none TEST=make buildall Nothing uses this yet, so there's no change to the images. Change-Id: I6e03cd07c134f4b86aeddd9d516b74bbdb95b8a8 Signed-off-by: Bill Richardson Reviewed-on: https://chromium-review.googlesource.com/301255 Reviewed-by: Randall Spangler --- Makefile.rules | 7 +------ Makefile.toolchain | 3 ++- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/Makefile.rules b/Makefile.rules index 98a388f922..3c51caafd8 100644 --- a/Makefile.rules +++ b/Makefile.rules @@ -26,18 +26,13 @@ _dir_create := $(foreach d,$(dirs),$(shell [ -d $(out)/$(BLD)/$(d) ] || \ _dir_y_create := $(foreach d,$(dirs-y),$(shell [ -d $(out)/$(BLD)/$(d) ] || \ mkdir -p $(out)/RO/$(d); mkdir -p $(out)/RW/$(d))) -section = $(subst .,,$(suffix $(1))) -section_is = $(subst .,,SECTION_IS_$(suffix $(1))) - # Decrease verbosity unless you pass V=1 quiet = $(if $(V),,@echo ' $(2)' $(subst $(out)/,,$@) ; )$(cmd_$(1)) silent = $(if $(V),,1>/dev/null) silent_err = $(if $(V),,2>/dev/null) # commands to build all targets -cmd_lds = $(CPP) -P -C -MMD -MF $@.d -MT $@ $(CPPFLAGS) \ - -D$(call section_is,$*) \ - -DSECTION=$(call section,$*) $< -o $@ +cmd_lds = $(CPP) -P -C -MMD -MF $@.d -MT $@ $(CPPFLAGS) $< -o $@ # Allow obj_to_bin to be overridden by board or chip specific commands cmd_obj_to_bin ?= $(OBJCOPY) --gap-fill=0xff -O binary $^ $(out)/$*.bin.tmp cmd_flat_to_obj = $(CC) -T $(out)/firmware_image.lds -nostdlib $(CPPFLAGS) \ diff --git a/Makefile.toolchain b/Makefile.toolchain index 9f20faff67..f01572634b 100644 --- a/Makefile.toolchain +++ b/Makefile.toolchain @@ -42,7 +42,8 @@ CFLAGS_DEFINE=-DOUTDIR=$(out)/$(BLD) -DCHIP=$(CHIP) -DBOARD_TASKFILE=$(_tsk_lst_ -DCHIP_VARIANT_$(UC_CHIP_VARIANT) -DCHIP_FAMILY_$(UC_CHIP_FAMILY) \ -DFINAL_OUTDIR=$(out) CPPFLAGS=$(CFLAGS_DEFINE) $(CFLAGS_INCLUDE) $(CFLAGS_TEST) \ - $(EXTRA_CFLAGS) $(CFLAGS_COVERAGE) $(LATE_CFLAGS_DEFINE) + $(EXTRA_CFLAGS) $(CFLAGS_COVERAGE) $(LATE_CFLAGS_DEFINE) \ + -DSECTION_IS_$(BLD) -DSECTION=$(BLD) CFLAGS=$(CPPFLAGS) $(CFLAGS_CPU) $(CFLAGS_DEBUG) $(CFLAGS_WARN) $(CFLAGS_y) CFLAGS+= -ffunction-sections -fshort-wchar CFLAGS+= -fno-delete-null-pointer-checks -fconserve-stack