2023-05-03 09:45:06

by Florian Weimer

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

* 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.

Thanks,
Florian


2023-05-03 15:07:52

by Arnaldo Carvalho de Melo

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

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



2023-05-03 15:34:43

by Ian Rogers

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

On Wed, May 3, 2023 at 8:04 AM Arnaldo Carvalho de Melo <[email protected]> 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.

Thanks,
Ian

2023-05-03 16:48:31

by Florian Weimer

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

* Ian Rogers:

> On Wed, May 3, 2023 at 8:04 AM Arnaldo Carvalho de Melo <[email protected]> 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