Subject: [PATCH] bpftool: fix broken compile on s390 for linux-next repository

From: Thomas Richter <[email-masked]>
Date: Wed, 12 Apr 2023 14:36:36 +0200

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 <[email-masked]>
---
 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);
 		}
-- 
2.39.2