ANDROID: kbuild: simplify cmd_mod
Modules with a large number of compilation units can exceed execv argument list resulting in E2BIG (Argument list too long) error. Fix this by replacing shell 'echo > file' into a more native $(file op filename[,text]) option. Bug: 175420575 Change-Id: I9bc495482f16f2c9b4e05a4cb5b2283ff0c0439d Signed-off-by: Mahesh Kumar Kalikot Veetil <mkalikot@codeaurora.org> Signed-off-by: Jeff Johnson <jjohnson@codeaurora.org>
This commit is contained in:

committed by
Todd Kjos

parent
b51f784248
commit
631b20dd6c
@@ -272,10 +272,11 @@ $(obj)/%.o: $(src)/%.c $(recordmcount_source) $(objtool_dep) FORCE
|
|||||||
$(call if_changed_rule,cc_o_c)
|
$(call if_changed_rule,cc_o_c)
|
||||||
$(call cmd,force_checksrc)
|
$(call cmd,force_checksrc)
|
||||||
|
|
||||||
cmd_mod = { \
|
cmd_mod = $(file >$@,\
|
||||||
echo $(if $($*-objs)$($*-y)$($*-m), $(addprefix $(obj)/, $($*-objs) $($*-y) $($*-m)), $(@:.mod=.o)); \
|
$(if $($*-objs)$($*-y)$($*-m), \
|
||||||
$(undefined_syms) echo; \
|
$(addprefix $(obj)/, $($*-objs) $($*-y) $($*-m)), \
|
||||||
} > $@
|
$(@:.mod=.o))) \
|
||||||
|
$(undefined_syms) echo >> $@
|
||||||
|
|
||||||
$(obj)/%.mod: $(obj)/%.o FORCE
|
$(obj)/%.mod: $(obj)/%.o FORCE
|
||||||
$(call if_changed,mod)
|
$(call if_changed,mod)
|
||||||
|
Reference in New Issue
Block a user