From 66c855560d4b79547861de48f04dff90387f918e Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Wed, 24 Apr 2024 04:51:28 -0700 Subject: Makerules: fix out-of-tree build error "Argument list too long" Make rule that announces and makes static libc archive can generate command line that is too long when a full path O= option is used. That breaks the build with the following message: make: /bin/sh: Argument list too long Use make $(file) construct to generate file list file and use that file as $(AR) argument instead. Signed-off-by: Max Filippov --- Makerules | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makerules b/Makerules index fe8a7916e..96f2a71ec 100644 --- a/Makerules +++ b/Makerules @@ -276,7 +276,7 @@ cmd_compile.mi= $(cmd_compile.m:-c=-E -dD) $(UCLIBC_EXTRA_CPPFLAGS) cmd_compile-m = $(CC) $^ -c -o $@ $(CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(notdir $(@D))) $(CFLAGS-$(notdir $@)) $(sort $(foreach d,$(^:$(top_srcdir)=),$(collect_multi_flags))) cmd_strip = $(STRIPTOOL) $(STRIP_FLAGS) $^ cmd_t_strip = $(STRIPTOOL) $(STRIP_FLAGS) $@ -cmd_ar = $(AR) $(ARFLAGS) $@ $(call objects_with_syms,,$^) +cmd_ar = $(AR) $(ARFLAGS) $@ @$@.list define do_ln @$(disp_ln) @@ -317,6 +317,7 @@ hcompile.u= @$(disp_hcompile.u); $(cmd_hcompile.u) hcompile.o= @$(disp_hcompile.o); $(cmd_hcompile.o) define do_ar + @$(file >$@.list,$(call objects_with_syms,,$^)) @$(disp_ar) ; $(cmd_ar) @$(do_t_strip) endef -- cgit v1.2.3