From 9925c623b5cd07f906ed21aa36ac15e01fce5d51 Mon Sep 17 00:00:00 2001 From: sheinz Date: Sun, 23 Oct 2016 23:58:41 +0300 Subject: [PATCH] Make strong function defninition replace a weak one --- common.mk | 12 +++++++++--- extras/stdin_uart_interrupt/component.mk | 10 ++++++---- parameters.mk | 3 +++ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/common.mk b/common.mk index c3923c8..41a218f 100644 --- a/common.mk +++ b/common.mk @@ -134,9 +134,15 @@ $$($(1)_OBJ_DIR)%.o: $$($(1)_REAL_ROOT)%.S $$($(1)_MAKEFILE) $(wildcard $(ROOT)* $$($(1)_CC_BASE) -c $$< -o $$@ $$($(1)_CC_BASE) -MM -MT $$@ -MF $$(@:.o=.d) $$< -# the component is shown to depend on both obj and source files so we get a meaningful error message -# for missing explicitly named source files -$$($(1)_AR): $$($(1)_OBJ_FILES) $$($(1)_SRC_FILES) +$(1)_AR_IN_FILES = $$($(1)_OBJ_FILES) + +# the component is shown to depend on both obj and source files so we get +# a meaningful error message for missing explicitly named source files +ifeq ($(INCLUDE_SRC_IN_AR),1) + $(1)_AR_IN_FILES += $$($(1)_SRC_FILES) +endif + +$$($(1)_AR): $$($(1)_AR_IN_FILES) $(vecho) "AR $$@" $(Q) mkdir -p $$(dir $$@) $(Q) $(AR) cru $$@ $$^ diff --git a/extras/stdin_uart_interrupt/component.mk b/extras/stdin_uart_interrupt/component.mk index e00cf81..ba16484 100644 --- a/extras/stdin_uart_interrupt/component.mk +++ b/extras/stdin_uart_interrupt/component.mk @@ -4,10 +4,12 @@ # for 'usage' as this module is a drop-in replacement for the original polled # version of reading from the UART. -INC_DIRS += $(ROOT)extras/stdin_uart_interrupt +INC_DIRS += $(stdin_uart_interrupt_ROOT) # args for passing into compile rule generation -extras/stdin_uart_interrupt_INC_DIR = $(ROOT)extras/stdin_uart_interrupt -extras/stdin_uart_interrupt_SRC_DIR = $(ROOT)extras/stdin_uart_interrupt +stdin_uart_interrupt_SRC_DIR = $(stdin_uart_interrupt_ROOT) -$(eval $(call component_compile_rules,extras/stdin_uart_interrupt)) +INCLUDE_SRC_IN_AR = 0 +EXTRA_LDFLAGS = -Wl,--whole-archive $(stdin_uart_interrupt_AR) -Wl,--no-whole-archive + +$(eval $(call component_compile_rules,stdin_uart_interrupt)) diff --git a/parameters.mk b/parameters.mk index 8c6a8a3..ddf2580 100644 --- a/parameters.mk +++ b/parameters.mk @@ -42,6 +42,9 @@ PRINTF_SCANF_FLOAT_SUPPORT ?= 1 FLAVOR ?= release # or debug +# Include source files into a static library. It improves error messages. +INCLUDE_SRC_IN_AR ?= 1 + # Compiler names, etc. assume gdb CROSS ?= xtensa-lx106-elf-