Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c353acba authored by Sascha Hauer's avatar Sascha Hauer Committed by Linus Torvalds
Browse files

kbuild: make: fix if_changed when command contains backslashes



The call if_changed mechanism does not work when the command contains
backslashes.  This basically is an issue with lzo and bzip2 compressed
kernels.  The compressed binaries do not contain the uncompressed image
size, so these use size_append to append the size.  This results in
backslashes in the executed command.  With this if_changed always
detects a change in the command and rebuilds the compressed image even
if nothing has changed.

Fix this by escaping backslashes in make-cmd

Signed-off-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: default avatarJan Luebbe <jlu@pengutronix.de>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Bernhard Walle <bernhard@bwalle.de>
Cc: Michal Marek <mmarek@suse.cz>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 0eb5a358
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -209,7 +209,7 @@ endif
# >$< substitution to preserve $ when reloading .cmd file
# >$< substitution to preserve $ when reloading .cmd file
# note: when using inline perl scripts [perl -e '...$$t=1;...']
# note: when using inline perl scripts [perl -e '...$$t=1;...']
# in $(cmd_xxx) double $$ your perl vars
# in $(cmd_xxx) double $$ your perl vars
make-cmd = $(subst \#,\\\#,$(subst $$,$$$$,$(call escsq,$(cmd_$(1)))))
make-cmd = $(subst \\,\\\\,$(subst \#,\\\#,$(subst $$,$$$$,$(call escsq,$(cmd_$(1))))))


# Find any prerequisites that is newer than target or that does not exist.
# Find any prerequisites that is newer than target or that does not exist.
# PHONY targets skipped in both cases.
# PHONY targets skipped in both cases.