On 3/25/20 10:26 PM, Liu Yiding wrote:
Hi, Andrii.
I noticed you had added runqslower tool to tools/bpf, so drop this
problem to you.
Now i failed to run bpf tests since i can't build runqslower.
Testing env: "Debian GNU/Linux 9 (stretch)"
kernel: 5.6.0-rc5
gcc: gcc 6.3
clang: clang-11.
Description: Build runqslower failed due to build error "incomplete
type" and libbpf show unsupported BTF_KIND:7.
Whole build log please see the attatchment.
Error info
```
root@vm-snb-144 ~/linus/tools/bpf# make
Auto-detecting system features:
... libbfd: [ on ]
... disassembler-four-args: [ OFF ]
[snip]
INSTALL bpftool
LINK bpf_asm
GEN vmlinux.h
libbpf: unsupported BTF_KIND:7 (Many unsupported errors)
libbpf: unsupported BTF_KIND:7
libbpf: unsupported BTF_KIND:7
Would you be able to share BTF of vmlinux that is used to generate
vmlinux.h? Please run in verbose mode: `make V=1` and search for
`bpftool btf dump file` command. It should point either to
/sys/kernel/btf/vmlinux or some other location, depending on how things
are set up on your side.
If it's /sys/kernel/btf/vmlinux, you can just `cat
/sys/kernel/btf/vmlinux > my_btf.bin`. If it's some other file, easiest
would be to just share that file. If not, it's possible to extract .BTF
ELF section, let me know if you need help with that.
[snip]
(Many incomplete type errors)
.output/vmlinux.h:8401:18: error: field has incomplete type 'struct
idt_bits'
struct idt_bits bits;
^
.output/vmlinux.h:8396:8: note: forward declaration of 'struct idt_bits'
struct idt_bits;
^
.output/vmlinux.h:8598:21: error: field has incomplete type 'struct
trace_entry'
struct trace_entry ent;
^
.output/vmlinux.h:8595:8: note: forward declaration of 'struct trace_entry'
struct trace_entry;
^
.output/vmlinux.h:9006:25: error: array has incomplete element type
'struct cyc2ns_data'
struct cyc2ns_data data[2];
^
.output/vmlinux.h:3669:8: note: forward declaration of 'struct cyc2ns_data'
struct cyc2ns_data;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
Makefile:56: recipe for target '.output/runqslower.bpf.o' failed
make[1]: *** [.output/runqslower.bpf.o] Error 1
Makefile:119: recipe for target 'runqslower' failed
make: *** [runqslower] Error 2
```