Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934267AbcLARtE (ORCPT ); Thu, 1 Dec 2016 12:49:04 -0500 Received: from mail-vk0-f54.google.com ([209.85.213.54]:35804 "EHLO mail-vk0-f54.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758747AbcLARtC (ORCPT ); Thu, 1 Dec 2016 12:49:02 -0500 MIME-Version: 1.0 In-Reply-To: <20161201130025.GA16430@krava> References: <20161128024346.17371-1-pefoley2@pefoley.com> <20161128113928.GD9072@krava> <20161128150024.GG2267@redhat.com> <20161128165859.GC30148@krava> <20161128194046.GB2361@redhat.com> <20161129142808.GA10972@krava> <20161129143314.GC2361@redhat.com> <20161129143935.GA22691@krava> <20161129144904.GD2361@redhat.com> <20161201130025.GA16430@krava> From: Peter Foley Date: Thu, 1 Dec 2016 09:48:40 -0800 Message-ID: Subject: Re: [PATCHv3] tools build: Make fixdep parsing wait for last target To: Jiri Olsa Cc: Arnaldo Carvalho de Melo , LKML , wangnan0@huawei.com Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1996 Lines: 60 On Thu, Dec 1, 2016 at 5:00 AM, Jiri Olsa wrote: > ok, so v3 actually ;-) > > the v2 was tricky for the case when fixdep is not available, > so I decided to go with Peter's fix and fixing 'fixdep' tool > to properly parse out the target in case we hit the ccache > error.. we need to be able to do it anyway > > please apply this patch before Peter's so we keep clean bisect > > thanks, > jirka > > > --- > The fixdep tool among other things replaces the target of > the object in the gcc generated dependency output file. > > The parsing code assumes there's only single target in the > rule but this is not always the case as described in here: > https://gcc.gnu.org/ml/gcc-help/2016-11/msg00099.html > > Making the fixdep code smart enough to skip all the possible > targets. > > Link: http://lkml.kernel.org/n/tip-anlmi1osaky314m1gu3skdnz@git.kernel.org > Signed-off-by: Jiri Olsa > --- > tools/build/fixdep.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/tools/build/fixdep.c b/tools/build/fixdep.c > index 1521d36cef0d..734d1547cbae 100644 > --- a/tools/build/fixdep.c > +++ b/tools/build/fixdep.c > @@ -49,7 +49,7 @@ static void parse_dep_file(void *map, size_t len) > char *end = m + len; > char *p; > char s[PATH_MAX]; > - int is_target; > + int is_target, has_target = 0; > int saw_any_target = 0; > int is_first_dep = 0; > > @@ -67,7 +67,8 @@ static void parse_dep_file(void *map, size_t len) > if (is_target) { > /* The /next/ file is the first dependency */ > is_first_dep = 1; > - } else { > + has_target = 1; > + } else if (has_target) { > /* Save this token/filename */ > memcpy(s, m, p-m); > s[p - m] = 0; > -- > 2.7.4 > Acked-by: Peter Foley