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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/18/23 10:55 AM, Thomas Richter wrote:
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;

The problem is however for current bpf-next, where this change breaks CI:

https://github.com/kernel-patches/bpf/actions/runs/4737651765/jobs/8410684531

  [...]
    CC      /tmp/work/bpf/bpf/tools/testing/selftests/bpf/tools/build/bpftool/feature.o
    CC      /tmp/work/bpf/bpf/tools/testing/selftests/bpf/tools/build/bpftool/disasm.o
  btf_dumper.c:838:4: error: use of undeclared identifier 'fallthrough'
                          fallthrough;
                          ^
  1 error generated.
  [...]

I would suggest as a clean path that'll work for both to just change from
fallthrough; into /* fallthrough */ as done in objtool, then we can also
work around BPF CI issue and merge this change in time.

  		default:
  			putchar(*s);
  		}





[Index of Archives]     [Linux Kernel]     [Linux USB Development]     [Yosemite News]     [Linux SCSI]

  Powered by Linux