]> granicus.if.org Git - esp-idf/commitdiff
Make sure LD -L option is calculated correctly when the project Makefile has specifie...
authorEyob <eyob.boye@gmail.com>
Sat, 8 Apr 2017 22:18:16 +0000 (18:18 -0400)
committerAngus Gratton <gus@projectgus.com>
Fri, 21 Apr 2017 01:03:07 +0000 (11:03 +1000)
For example,
SRCDIRS = comp_a  happy/comp_b  /c/dev/comp_c

Then the following are built:
build/comp_a/libcomp_a.a
build/comp_b/libcomp_b.a
build/comp_c/libcomp_c.a

But when LD is run the -L is calculated as follows
-L build/comp_a
-L build/happy/comp_b
-L build//c/dev/comp_c

This means comp_b and comp_c are not found by LD. With this change set -L is calculated correctly for comp_b and comp_c

Merges #504 https://github.com/espressif/esp-idf/pull/504

make/project.mk

index fd85ef4e55478968909f96d459abe344580aba77..1c868ad307556ea7112947392b554447b220c0e2 100644 (file)
@@ -189,9 +189,9 @@ endif
 IDF_VER := $(shell cd ${IDF_PATH} && git describe --always --tags --dirty)
 
 # Set default LDFLAGS
-
+SRCDIRS_COMPONENT_NAMES := $(sort $(foreach comp,$(SRCDIRS),$(lastword $(subst /, ,$(comp)))))
 LDFLAGS ?= -nostdlib \
-       $(addprefix -L$(BUILD_DIR_BASE)/,$(COMPONENTS) $(TEST_COMPONENT_NAMES) $(SRCDIRS) ) \
+       $(addprefix -L$(BUILD_DIR_BASE)/,$(COMPONENTS) $(TEST_COMPONENT_NAMES) $(SRCDIRS_COMPONENT_NAMES) ) \
        -u call_user_start_cpu0 \
        $(EXTRA_LDFLAGS) \
        -Wl,--gc-sections       \