diff --git a/core/combo/select.mk b/core/combo/select.mk index 8234a8fcb1..506ad08e71 100644 --- a/core/combo/select.mk +++ b/core/combo/select.mk @@ -53,7 +53,7 @@ $(combo_var_prefix)GLOBAL_CFLAGS := -fno-exceptions -Wno-multichar $(combo_var_prefix)RELEASE_CFLAGS := -O2 -g -fno-strict-aliasing $(combo_var_prefix)GLOBAL_CPPFLAGS := $(combo_var_prefix)GLOBAL_LDFLAGS := -$(combo_var_prefix)GLOBAL_ARFLAGS := crsPD +$(combo_var_prefix)GLOBAL_ARFLAGS := cqsPD $(combo_var_prefix)GLOBAL_LD_DIRS := $(combo_var_prefix)EXECUTABLE_SUFFIX := diff --git a/core/definitions.mk b/core/definitions.mk index 46513351ac..e075c2dba4 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1167,16 +1167,16 @@ endef # $(1): the full path of the source static library. define _extract-and-include-single-target-whole-static-lib @echo "preparing StaticLib: $(PRIVATE_MODULE) [including $(1)]" -$(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\ - rm -rf $$ldir; \ - mkdir -p $$ldir; \ - filelist=; \ - for f in `$($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) t $(1)`; do \ - $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) p $(1) $$f > $$ldir/$$f; \ - filelist="$$filelist $$ldir/$$f"; \ - done ; \ - $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_ARFLAGS) \ - $(PRIVATE_ARFLAGS) $@ $$filelist +$(hide) \ + for f in `$($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) t $(1) | sort | uniq`; do \ + i=0; \ + for ff in `$($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) t $(1) $$f`; do \ + i=$$(($$i + 1)); \ + $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) xN $$i $(1) $$f; \ + $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) \ + $(PRIVATE_ARFLAGS) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_ARFLAGS) $@ $$f; \ + done ; \ + done ; endef @@ -1204,16 +1204,16 @@ endef # $(1): the full path of the source static library. define _extract-and-include-single-host-whole-static-lib @echo "preparing StaticLib: $(PRIVATE_MODULE) [including $(1)]" -$(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;\ - rm -rf $$ldir; \ - mkdir -p $$ldir; \ - filelist=; \ - for f in `$($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR) t $(1) | \grep '\.o$$'`; do \ - $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR) p $(1) $$f > $$ldir/$$f; \ - filelist="$$filelist $$ldir/$$f"; \ - done ; \ - $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_GLOBAL_ARFLAGS) \ - $(PRIVATE_ARFLAGS) $@ $$filelist +$(hide) \ + for f in `$($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR) t $(1) | \grep '\.o$$' | sort | uniq`; do \ + i=0; \ + for ff in `$($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR) t $(1) $$f`; do \ + i=$$(($$i + 1)); \ + $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR) xN $$i $(1) $$f; \ + $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_AR) \ + $(PRIVATE_ARFLAGS) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)HOST_GLOBAL_ARFLAGS) $@ $$f; \ + done ; \ + done ; endef