2023-04-12 14:36 UTC+0200 ~ Thomas Richter <tmricht@xxxxxxxxxxxxx> > Commit 9fd496848b1c ("bpftool: Support inline annotations when dumping the CFG of a program") > breaks the build of the perf tool on s390 in the linux-next repository. > Here is the make output: > > make -C tools/perf > .... > btf_dumper.c: In function 'dotlabel_puts': > DEBUG: btf_dumper.c:838:25: error: '__fallthrough' undeclared \ > (first use in this function); did you mean 'fallthrough'? > DEBUG: 838 | __fallthrough; > DEBUG: | ^~~~~~~~~~~~~ > DEBUG: | fallthrough > DEBUG: btf_dumper.c:838:25: note: each undeclared identifier is reported \ > only once for each function it appears in > DEBUG: btf_dumper.c:837:25: warning: this statement may fall through \ > [-Wimplicit-fallthrough=] > DEBUG: 837 | putchar('\\'); > DEBUG: | ^~~~~~~~~~~~~ > DEBUG: btf_dumper.c:839:17: note: here > DEBUG: 839 | default: > DEBUG: | ^~~~~~~ > DEBUG: make[3]: *** [Makefile:247: /builddir/build/BUILD/kernel-6.2.fc37/\ > linux-6.2/tools/perf/util/bpf_skel/ \ > .tmp/bootstrap/btf_dumper.o] Error 1 > > The compile fails because symbol __fallthrough unknown, but symbol > fallthrough is known and works fine. > > Fix this and replace __fallthrough by fallthrough. > > With this change, the compile works. > > Output after: > > # make -C tools/perf > .... > CC util/bpf-filter.o > CC util/bpf-filter-flex.o > LD util/perf-in.o > LD perf-in.o > LINK perf > make: Leaving directory '/root/mirror-linux-next/tools/perf' > # > > Fixes: 9fd496848b1c ("bpftool: Support inline annotations when dumping the CFG of a program") > Signed-off-by: Thomas Richter <tmricht@xxxxxxxxxxxxx> > --- > tools/bpf/bpftool/btf_dumper.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/bpf/bpftool/btf_dumper.c b/tools/bpf/bpftool/btf_dumper.c > index 6c5e0e82da22..1b7f69714604 100644 > --- a/tools/bpf/bpftool/btf_dumper.c > +++ b/tools/bpf/bpftool/btf_dumper.c > @@ -835,7 +835,7 @@ static void dotlabel_puts(const char *s) > case '|': > case ' ': > putchar('\\'); > - __fallthrough; > + fallthrough; > default: > putchar(*s); > } Also reported by Sven Schnelle, and discussed at https://lore.kernel.org/all/yt9dttxlwal7.fsf@xxxxxxxxxxxxx/. This is for linux-next, it cannot go through bpf-next given that commit f7a858bffcdd ("tools: Rename __fallthrough to fallthrough") is not in there yet. Acked-by: Quentin Monnet <quentin@xxxxxxxxxxxxx> Thanks! Quentin