From 7b43a9413a0724c3b34317aecd7581cadc65a90f Mon Sep 17 00:00:00 2001 From: cuiziwei <cuiziwei@xiaomi.com> Date: Fri, 10 May 2024 21:17:34 +0800 Subject: [PATCH] arch/EXTRA_LIBS: link all staging library. Signed-off-by: cuiziwei <cuiziwei@xiaomi.com> --- arch/x86/src/Makefile | 14 ++++++++++++++ arch/x86_64/src/Makefile | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/arch/x86/src/Makefile b/arch/x86/src/Makefile index 76e5b1abfb..53e6d701b8 100644 --- a/arch/x86/src/Makefile +++ b/arch/x86/src/Makefile @@ -53,6 +53,20 @@ OBJS = $(AOBJS) $(COBJS) # Override in Make.defs if linker is not 'ld' +$(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)) + LDSTARTGROUP ?= --start-group LDENDGROUP ?= --end-group LDFLAGS += $(addprefix -T,$(call CONVERT_PATH,$(ARCHSCRIPT))) -static diff --git a/arch/x86_64/src/Makefile b/arch/x86_64/src/Makefile index c436a6996e..59029876bd 100644 --- a/arch/x86_64/src/Makefile +++ b/arch/x86_64/src/Makefile @@ -53,6 +53,20 @@ BIN = libarch$(LIBEXT) # Override in Make.defs if linker is not 'ld' +$(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)) + LDSTARTGROUP ?= --start-group LDENDGROUP ?= --end-group