Subject: Re: linux-next: build failure after merge of the tip tree

From: Arnaldo Carvalho de Melo <[email-masked]>
Date: Mon, 18 Apr 2016 10:24:02 -0300

Em Sun, Apr 17, 2016 at 03:04:05PM +0200, Jiri Olsa escreveu:
> On Sun, Apr 17, 2016 at 02:12:07PM +0200, Jiri Olsa wrote:
> > On Fri, Apr 15, 2016 at 06:28:31PM -0300, Arnaldo Carvalho de Melo wrote:
> > > Em Fri, Apr 15, 2016 at 06:15:42PM -0300, Arnaldo Carvalho de Melo escreveu:
> > > > Em Thu, Apr 14, 2016 at 12:14:18PM +1000, Stephen Rothwell escreveu:
> > > > > Hi all,
> > > > > 
> > > > > After merging the tip tree, today's linux-next build (powerpc64le perf)
> > > > > failed like this:
> > > > > 
> > > > > make[3]: *** No rule to make target '/home/sfr/next/perf/arch/x86/include/generated/asm/syscalls_64.c', needed by '/home/sfr/next/perf/util/syscalltbl.o'.  Stop.
> > > > > 
> > > > > (I build in /home/sfr/next/next with objects in /home/sfr/next/perf.)
> > > > > 
> > > > > Presumably caused by commit
> > > > > 
> > > > >   1b700c997500 ("perf tools: Build syscall table .c header from kernel's syscall_64.tbl")
> > > > > 
> > > > > I have reverted that commit for today (which fixes my build problem but
> > > > > may not be overall correct).
> > > > 
> > > > Right, I'm trying to figure out how to bet fix that, one way would be to
> > > > do:
> > > 
> > > Jiri, I think this is enough, i.e. I think we make sure, just like the
> > > kernel, that the archheaders target in tools/perf/arch/*/Makefile is
> > > called before doing all the other build, no?
> > > 
> > > I.e. when we get to build syscalltbl.o the syscalls_64.c file will be
> > > built already, limited testing seems to agree with this :-)
> > > 
> > > - Arnaldo
> > >  
> > > > diff --git a/tools/perf/util/Build b/tools/perf/util/Build
> > > > index 85a9ab62e23f..7fc4ac304ed6 100644
> > > > --- a/tools/perf/util/Build
> > > > +++ b/tools/perf/util/Build
> > > > @@ -150,7 +150,7 @@ CFLAGS_libstring.o     += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ET
> > > >  CFLAGS_hweight.o       += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
> > > >  CFLAGS_parse-events.o  += -Wno-redundant-decls
> > > >  
> > > > -$(OUTPUT)util/syscalltbl.o: util/syscalltbl.c arch/x86/entry/syscalls/syscall_64.tbl $(OUTPUT)arch/x86/include/generated/asm/syscalls_64.c FORCE
> > > > +$(OUTPUT)util/syscalltbl.o: util/syscalltbl.c FORCE
> > 
> > yep, having arch specific target in generic Build file is wrong
> > I'll have ppc64le available later today, I'll check on that
> 
> it looks ok, you can also now remove the whole syscalltbl.o override

Ok, so I'll add this and your Tested-by, ok?

- Arnaldo
 
> and archheaders needs to be called before the build starts,
> which is the case right now
> 
> thanks,
> jirka
> 
> 
> ---
> diff --git a/tools/perf/util/Build b/tools/perf/util/Build
> index 85a9ab62e23f..90229a88f969 100644
> --- a/tools/perf/util/Build
> +++ b/tools/perf/util/Build
> @@ -150,10 +150,6 @@ CFLAGS_libstring.o     += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ET
>  CFLAGS_hweight.o       += -Wno-unused-parameter -DETC_PERFCONFIG="BUILD_STR($(ETC_PERFCONFIG_SQ))"
>  CFLAGS_parse-events.o  += -Wno-redundant-decls
>  
> -$(OUTPUT)util/syscalltbl.o: util/syscalltbl.c arch/x86/entry/syscalls/syscall_64.tbl $(OUTPUT)arch/x86/include/generated/asm/syscalls_64.c FORCE
> -	$(call rule_mkdir)
> -	$(call if_changed_dep,cc_o_c)
> -
>  $(OUTPUT)util/kallsyms.o: ../lib/symbol/kallsyms.c FORCE
>  	$(call rule_mkdir)
>  	$(call if_changed_dep,cc_o_c)