diff options
author | Max Filippov <jcmvbkbc@gmail.com> | 2024-04-24 04:51:28 -0700 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2024-04-24 18:13:43 +0200 |
commit | 66c855560d4b79547861de48f04dff90387f918e (patch) | |
tree | 3b21c86053bcbf64ba8274169fe54916da2096c3 | |
parent | 1614cebc9e36580a90ad27295640a757af5d6dff (diff) |
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 <jcmvbkbc@gmail.com>
-rw-r--r-- | Makerules | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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 |