From 7871c485de6b91d07f9c3364c9e5392fdf49847c Mon Sep 17 00:00:00 2001 From: Sami Tolvanen Date: Fri, 26 Jul 2019 12:47:52 +0800 Subject: [PATCH] ANDROID: kbuild: avoid excessively long argument lists With LTO, modules with a large number of compilation units maybe end up exceeding the for loop argument list in the shell. Reduce the probability for this happening by including only the modules that have exported symbols. Bug: 150234396 Change-Id: I4a289aff47e1444aca28d1bd00b125628f39bcd5 Suggested-by: Hsiu-Chang Chen Signed-off-by: Sami Tolvanen --- scripts/Makefile.build | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 2c81d790d79f..d8190fa3aaee 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -400,13 +400,12 @@ $(obj)/%/built-in.a: $(obj)/% ; # combine symversions for later processing quiet_cmd_update_lto_symversions = SYMVER $@ ifeq ($(CONFIG_LTO_CLANG) $(CONFIG_MODVERSIONS),y y) - cmd_update_lto_symversions = \ - rm -f $@.symversions; \ - for i in $(filter-out FORCE,$^); do \ - if [ -f $$i.symversions ]; then \ - cat $$i.symversions \ - >> $@.symversions; \ - fi; \ + cmd_update_lto_symversions = \ + rm -f $@.symversions; \ + for i in $(foreach n, \ + $(filter-out FORCE,$^), \ + $(if $(wildcard $(n).symversions),$(n))); do \ + cat $$i.symversions >> $@.symversions; \ done else cmd_update_lto_symversions = echo >/dev/null