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: Sascha Hauer <s.hauer@pengutronix.de> Signed-off-by: Jan 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: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
					parent
					
						
							
								0eb5a35801
							
						
					
				
			
			
				commit
				
					
						c353acba28
					
				
			
		
					 1 changed files with 1 additions and 1 deletions
				
			
		|  | @ -209,7 +209,7 @@ endif | |||
| # >$< substitution to preserve $ when reloading .cmd file | ||||
| # note: when using inline perl scripts [perl -e '...$$t=1;...'] | ||||
| # 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. | ||||
| # PHONY targets skipped in both cases. | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Sascha Hauer
				Sascha Hauer