diff --git a/arch/arm/src/Makefile b/arch/arm/src/Makefile index 557f84250c..41d6105a3d 100644 --- a/arch/arm/src/Makefile +++ b/arch/arm/src/Makefile @@ -85,6 +85,20 @@ UOBJS = $(UAOBJS) $(UCOBJS) KBIN = libkarch$(LIBEXT) BIN = libarch$(LIBEXT) +$(foreach lib,$(notdir $(wildcard $(APPDIR)$(DELIM)staging$(DELIM)*$(LIBEXT))), \ + $(foreach elib,$(EXTRA_LIBS), \ + $(if $(filter $(notdir $(elib)),$(lib)), \ + $(eval NAMEFULL_LIBS+=$(elib)), \ + $(if $(filter $(notdir $(elib)),$(patsubst lib%$(LIBEXT),-l%,$(lib))), \ + $(eval NAMESPEC_LIBS+=$(elib)) \ + ) \ + ) \ + ) \ + ) + +EXTRA_LIBS := $(filter-out $(NAMEFULL_LIBS) $(NAMESPEC_LIBS),$(EXTRA_LIBS)) +EXTRA_LIBS += $(wildcard $(APPDIR)$(DELIM)staging$(DELIM)*$(LIBEXT)) + # Override in Make.defs if linker is not 'ld' ifeq ($(CONFIG_ARM_TOOLCHAIN_ARMCLANG),) @@ -108,7 +122,6 @@ else EXTRA_LIBS += arm_vectors.o endif - ARCHSCRIPT := $(call CONVERT_PATH,$(ARCHSCRIPT)) LDFLAGS += $(addprefix $(SCRIPT_OPT),$(addsuffix .tmp,$(ARCHSCRIPT))) $(EXTRALINKCMDS) LIBPATHS += $(LIBPATH_OPT) $(call CONVERT_PATH,$(TOPDIR)$(DELIM)staging) diff --git a/arch/risc-v/src/Makefile b/arch/risc-v/src/Makefile index fc83e3b82f..020f965891 100644 --- a/arch/risc-v/src/Makefile +++ b/arch/risc-v/src/Makefile @@ -79,6 +79,20 @@ UOBJS = $(UAOBJS) $(UCOBJS) KBIN = libkarch$(LIBEXT) BIN = libarch$(LIBEXT) +$(foreach lib,$(notdir $(wildcard $(APPDIR)$(DELIM)staging$(DELIM)*$(LIBEXT))), \ + $(foreach elib,$(EXTRA_LIBS), \ + $(if $(filter $(notdir $(elib)),$(lib)), \ + $(eval NAMEFULL_LIBS+=$(elib)), \ + $(if $(filter $(notdir $(elib)),$(patsubst lib%$(LIBEXT),-l%,$(lib))), \ + $(eval NAMESPEC_LIBS+=$(elib)) \ + ) \ + ) \ + ) \ + ) + +EXTRA_LIBS := $(filter-out $(NAMEFULL_LIBS) $(NAMESPEC_LIBS),$(EXTRA_LIBS)) +EXTRA_LIBS += $(wildcard $(APPDIR)$(DELIM)staging$(DELIM)*$(LIBEXT)) + ARCHSCRIPT := $(call CONVERT_PATH,$(ARCHSCRIPT)) LDFLAGS += $(addprefix -T,$(addsuffix .tmp,$(ARCHSCRIPT))) $(EXTRALINKCMDS) diff --git a/arch/sim/src/Makefile b/arch/sim/src/Makefile index 61f1867235..4f1b7a28d5 100644 --- a/arch/sim/src/Makefile +++ b/arch/sim/src/Makefile @@ -223,6 +223,20 @@ HEADOBJ = $(HEADSRC:.c=$(OBJEXT)) SRCS = $(ASRCS) $(CSRCS) $(HOSTSRCS) OBJS = $(AOBJS) $(COBJS) $(HOSTOBJS) +$(foreach lib,$(notdir $(wildcard $(APPDIR)$(DELIM)staging$(DELIM)*$(LIBEXT))), \ + $(foreach elib,$(EXTRA_LIBS), \ + $(if $(filter $(notdir $(elib)),$(lib)), \ + $(eval NAMEFULL_LIBS+=$(elib)), \ + $(if $(filter $(notdir $(elib)),$(patsubst lib%$(LIBEXT),-l%,$(lib))), \ + $(eval NAMESPEC_LIBS+=$(elib)) \ + ) \ + ) \ + ) \ + ) + +EXTRA_LIBS := $(filter-out $(NAMEFULL_LIBS) $(NAMESPEC_LIBS),$(EXTRA_LIBS)) +EXTRA_LIBS += $(wildcard $(APPDIR)$(DELIM)staging$(DELIM)*$(LIBEXT)) + # Override in Make.defs if linker is not 'ld' ifneq ($(CONFIG_HOST_MACOS),y) diff --git a/arch/xtensa/src/Makefile b/arch/xtensa/src/Makefile index 222f23f1d7..02510d8509 100644 --- a/arch/xtensa/src/Makefile +++ b/arch/xtensa/src/Makefile @@ -83,6 +83,20 @@ BIN = libarch$(LIBEXT) ARCHSCRIPT := $(call CONVERT_PATH,$(ARCHSCRIPT)) LDFLAGS += $(addprefix -T,$(addsuffix .tmp,$(ARCHSCRIPT))) $(EXTRALINKCMDS) +$(foreach lib,$(notdir $(wildcard $(APPDIR)$(DELIM)staging$(DELIM)*$(LIBEXT))), \ + $(foreach elib,$(EXTRA_LIBS), \ + $(if $(filter $(notdir $(elib)),$(lib)), \ + $(eval NAMEFULL_LIBS+=$(elib)), \ + $(if $(filter $(notdir $(elib)),$(patsubst lib%$(LIBEXT),-l%,$(lib))), \ + $(eval NAMESPEC_LIBS+=$(elib)) \ + ) \ + ) \ + ) \ + ) + +EXTRA_LIBS := $(filter-out $(NAMEFULL_LIBS) $(NAMESPEC_LIBS),$(EXTRA_LIBS)) +EXTRA_LIBS += $(wildcard $(APPDIR)$(DELIM)staging$(DELIM)*$(LIBEXT)) + ifeq ($(LD),$(CC)) LDSTARTGROUP ?= -Wl,--start-group LDENDGROUP ?= -Wl,--end-group