Re: 4.9.208 regression in perf building

From: Jiri Olsa
Date: Sun Jan 05 2020 - 17:25:13 EST


On Sun, Jan 05, 2020 at 12:06:07PM -0800, Akemi Yagi wrote:
> On Sun, Jan 5, 2020 at 11:36 AM Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
> >
> > On Sun, Jan 05, 2020 at 10:21:25AM -0800, Akemi Yagi wrote:
> > > Adding Arnaldo and Jiri to the CC list.
> > >
> > > On Sun, Jan 5, 2020 at 9:01 AM Gordan Bobic <gordan@xxxxxxxxxxxxx> wrote:
> > > >
> > > > It looks like 4.9.208 introduces a build regression for perf:
> > > >
> > > > make -f /builddir/build/BUILD/kernel-4.9.208/linux-4.9.208-1.el7.x86_64/tools/build/Makefile.build
> > > > dir=. obj=perf
> > >
> > > > -c -o builtin-report.o builtin-report.c
> > > > builtin-report.c: In function âreport__setup_sample_typeâ:
> > > > builtin-report.c:296:6: error: âdwarf_callchain_usersâ undeclared
> > > > (first use in this function)
> > > > if (dwarf_callchain_users) {
> > > > ^
> > > > builtin-report.c:296:6: note: each undeclared identifier is reported
> > > > only once for each function it appears in
> > > > mv: cannot stat â./.builtin-report.o.tmpâ: No such file or directory
> > > > make[3]: *** [builtin-report.o] Error 1
> > > > make[2]: *** [perf-in.o] Error 2
> > > > make[1]: *** [sub-make] Error 2
> > > > make: *** [all] Error 2
> > > >
> > > > 4,9.207 works fine.
> > >
> > > The regression was caused by the following patch:
> > >
> > > https://lore.kernel.org/lkml/20191021133834.25998-7-acme@xxxxxxxxxx/
> > >
> > > To fix this, 'dwarf_callchain_users' needs to be declared.
> >
> > hum, I see it's declared in callchain.h which is included in builtin-report.c
> > also I can't see that same stuff like you have on line 296.. what sources are you on?
> >
> > could you please check with latest Arnaldo's perf/core?
> > git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git
> >
> > thanks,
> > jirka
>
> This is kernel 4.4.208 that was released today.
> 'dwarf_callchain_users' is not declared in this kernel. I'm afraid it
> was missed when the aforementioned patch was backported.

so 'dwarf_callchain_users' was introduced with:
eabad8c6856f perf unwind: Do not look just at the global callchain_param.record_mode

which wasn't backported to 4.4.y and it seems it will need more
dependencies to be applied properly

however if I revert aforementioned patch:
faece3af8072 perf report: Add warning when libunwind not compiled in

it compiles for me.. actualy I'm not sure why it went to stable,
it's just user info/warning

jirka