Messages in this thread | | | From | Peter Foley <> | Date | Thu, 1 Dec 2016 09:48:40 -0800 | Subject | Re: [PATCHv3] tools build: Make fixdep parsing wait for last target |
| |
On Thu, Dec 1, 2016 at 5:00 AM, Jiri Olsa <jolsa@redhat.com> 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 <jolsa@kernel.org> > --- > 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 <pefoley2@pefoley.com>
| |