Re: [PATCH v2] perf: Avoid implicit function declarations in lexer/parse interface

From: Florian Weimer
Date: Wed May 03 2023 - 12:46:43 EST


* Ian Rogers:

> On Wed, May 3, 2023 at 8:04 AM Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:
>>
>> Em Wed, May 03, 2023 at 11:40:06AM +0200, Florian Weimer escreveu:
>> > * Florian Weimer:
>> > > * Arnaldo Carvalho de Melo:
>>
>> > >>> Thanks, applied. BTW b4 coulnd't find this message (nor the original):
>>
>> > > Yes, vger drops the message after accepting it for some reason, probably
>> > > something in the patch contents. I tried to resubmit from a completely
>> > > separate account, no luck.
>> > >
>> > >> Not so fast, removed it for now:
>> > >>
>> > >> CC /tmp/build/perf-tools-next/util/parse-events-bison.o
>> > >> In file included from util/pmu.y:14:
>> > >> /tmp/build/perf-tools-next/util/pmu-flex.h:496:1: error: unknown type name ‘YYSTYPE’
>> > >> 496 |
>> > >> | ^
>> > >> /tmp/build/perf-tools-next/util/pmu-flex.h:498:19: error: unknown type name ‘YYSTYPE’
>> > >> 498 |
>> > >> | ^
>> > >> /tmp/build/perf-tools-next/util/pmu-flex.h:546:17: error: unknown type name ‘YYSTYPE’
>> > >> 546 | extern int yylex \
>> > >> | ^~
>> > >> util/pmu-bison.c: In function ‘perf_pmu_parse’:
>> > >> /tmp/build/perf-tools-next/util/pmu-bison.c:69:25: error: implicit declaration of function ‘perf_pmu_lex’; did you mean ‘perf_pmu_free’? [-Werror=implicit-function-declaration]
>> > >> 69 | #define yylex perf_pmu_lex
>> > >> | ^~~~~~~~~~~~
>> > >> util/pmu-bison.c:1007:16: note: in expansion of macro ‘yylex’
>> > >
>> > > This appears to be related to some BPF filter stuff that is only in
>> > > perf-next, not mainline.
>> > >
>> > > Is this the right tree on which to base the patch?
>> > >
>> > > <https://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git/>
>> > >
>> > > Branch perf-tools-next?
>> >
>> > Sorry, it doesn't build even without my patch:
>> >
>> > make[4]: *** No rule to make target 'zip.h', needed by '/tmp/build/libbpf/staticobjs/libbpf.o'. Stop.
>>
>> I'm noticing this, but then I haven't merged with upstream yet, I bet
>> this is something upstream after merging the bpf branch... Nope, I just
>> did a test merge of what is in
>> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git perf-tools
>> with upstream and it builds without problems on:
>>
>> [acme@quaco perf-tools]$ head -2 /etc/os-release
>> NAME="Fedora Linux"
>> VERSION="37 (Workstation Edition)"
>> [acme@quaco perf-tools]$
>>
>> I'll check on f38 and rawhide.
>>
>> - Arnaldo
>
> The zip.c and zip.h in libbpf are new, perhaps it is a fixdeps issue?
> Perhaps doing a clean build and retrying will address the problem.

Yeah, it's that. I tried to reproduce the issue with a make command
similar to Arnaldo's, and forgot that *of course* O= overrides “git
clean”.

I'm now on 5d27a645f60940fdf589e4ff5351506a7f0fdbaa, can built it
cleanly, and will try to rebase my patch onto that.

Thanks,
Florian