From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1031154AbdADOkr (ORCPT ); Wed, 4 Jan 2017 09:40:47 -0500 Received: from mail-oi0-f68.google.com ([209.85.218.68]:34962 "EHLO mail-oi0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935199AbdADOjz (ORCPT ); Wed, 4 Jan 2017 09:39:55 -0500 Subject: Re: [PATCH] initramfs: Fix spurious rebuilds To: klondike , linux-kernel@vger.kernel.org, npiggin@gmail.com References: <20170104013732.26401-1-f.fainelli@gmail.com> Cc: torvalds@linux-foundation.org, pebolle@tiscali.nl, ppandit@redhat.com, mmarek@suse.cz, Andrew Morton From: Florian Fainelli Message-ID: Date: Wed, 4 Jan 2017 06:39:10 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 01/04/2017 05:34 AM, klondike wrote: > El 04/01/17 a las 02:37, Florian Fainelli escribió: >> Commit 35e669e1a254 ("initramfs: select builtin initram >> compression algorithm on KConfig instead of Makefile") makes suffix_y be >> a quote variable, which can be illustrated looking at the build output: >> >> GEN usr/initramfs_data.cpio".gz" >> >> Make sure that we do strip off double quotes from >> CONFIG_INITRAMFS_COMPRESSION, since the Makefile tracks targets with >> unquoted suffixes. >> >> Fixes: 35e669e1a254 ("initramfs: select builtin initram compression algorithm on KConfig instead of Makefile") >> Signed-off-by: Florian Fainelli >> --- >> This is against v4.10-rc2, thanks! >> >> usr/Makefile | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/usr/Makefile b/usr/Makefile >> index 17a513268325..a9ae8b493e2b 100644 >> --- a/usr/Makefile >> +++ b/usr/Makefile >> @@ -5,7 +5,7 @@ >> klibcdirs:; >> PHONY += klibcdirs >> >> -suffix_y = $(CONFIG_INITRAMFS_COMPRESSION) >> +suffix_y = $(subst ",,$(CONFIG_INITRAMFS_COMPRESSION)) >> AFLAGS_initramfs_data.o += -DINITRAMFS_IMAGE="usr/initramfs_data.cpio$(suffix_y)" >> >> # Generate builtin.o based on initramfs_data.o > > Hello, > > Thanks for the fix, when I tested the patch I checked that the correct > file was created and embedded but didn't check for spurious rebuilds. > > I'm CCing Nicholas Piggin as he sent another (larger version) of the > patch which also addresses a few other hacks in the Makefile, see > "[PATCH] kbuild: Fix dependency checking for initramfs build". I haven't > had time to check that second patch. Nick's patch [1] is a more elegant way to solve this, although it introduces more changes, so may be less suitable for a -rc fix? There are also some potential things that may or may not be relevant: +AFLAGS_initramfs_data.o += -DINITRAMFS_IMAGE=usr/$(datafile_y) INITRAMFS_IMAGE now gets defined without quotes, which may not be a problem, but does not seem necessary. -targets := initramfs_data.cpio.gz initramfs_data.cpio.bz2 \ - initramfs_data.cpio.lzma initramfs_data.cpio.xz \ - initramfs_data.cpio.lzo initramfs_data.cpio.lz4 \ - initramfs_data.cpio +targets := $(datafile_y) Humm that could actually cause some additional rebuild if you kept your initramfs image unchanged, but you are switching between compression algorithms selection, but that may fall under the premature optimization case. [1]: https://www.spinics.net/lists/linux-kbuild/msg14078.html -- Florian