From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758308AbcIMR2Q (ORCPT ); Tue, 13 Sep 2016 13:28:16 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:34472 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755149AbcIMR2P (ORCPT ); Tue, 13 Sep 2016 13:28:15 -0400 Subject: Re: gen_initramfs_list.sh escaping problem or stale dependency file? To: Michal Marek References: <20160913072414.GA13667@sepie.suse.cz> Cc: linux-kernel@vger.kernel.org, sam@ravnborg.org, mmarek@suse.cz, joe@perches.com, lede-dev@lists.infradead.org, openwrt-devel@lists.openwrt.org From: Florian Fainelli Message-ID: <590da171-ad4a-bcdf-404d-3164ba346d8b@gmail.com> Date: Tue, 13 Sep 2016 10:28:12 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <20160913072414.GA13667@sepie.suse.cz> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 09/13/2016 12:24 AM, Michal Marek wrote: > On Mon, Sep 12, 2016 at 05:12:15PM -0700, Florian Fainelli wrote: >> Hi, >> >> I have a root filesystem embedding filenames that look like these: >> >> /lib/data/: >> >> these are essentially files that can be matched against an USB >> vendor/product id in an easy way. >> >> Now, the fun part is that this is only a problem when doing the >> following (using OpenWrt/LEDE as a build system): >> >> 1: >> - set CONFIG_INITRAMFS_SOURCE="" >> - build kernel modules >> - build my user-space tools >> - build the kernel image >> - reconfigure the kernel to now use an initramfs >> - build the kernel w/ initramfs >> >> and then back to step 1 with the kernel build, would I hit this error: >> >> usr/Makefile:64: *** multiple target patterns. Stop. > [...] >> Which sorts of make sense here because the file name contains a ":" >> which is not escaped, so GNU Make tries to interpret it. >> >> Now the part that does not quite make sense to me is why this file is >> even relevant here considering that the first thing we do is set >> CONFIG_INITRAMFS_SOURCE="" to disable the initramfs basically. > > It is possible that we read usr/Makefile twice for some reason. But the > real problem is the lack of escaping. Can you try the following > (untested) patch? This patch works for me: Tested-by: Florian Fainelli Kind of surprising that this has not showed up before, but maybe people don't really go through the same steps while re-configuring/re-building their kernels Thanks Michal! > > > diff --git a/scripts/gen_initramfs_list.sh b/scripts/gen_initramfs_list.sh > index 17fa901418ae..5d3188e74101 100755 > --- a/scripts/gen_initramfs_list.sh > +++ b/scripts/gen_initramfs_list.sh > @@ -97,7 +97,10 @@ print_mtime() { > } > > list_parse() { > - [ ! -L "$1" ] && echo "$1 \\" || : > + if [ -L "$1" ]; then > + return > + fi > + echo "$1" | sed 's/\([:%]\)/\\\1/g; s/$/ \\/' > } > > # for each file print a line in following format > > Thanks, > Michal > -- Florian