On Fri, 4 Aug 2017 16:20:19 -0600, David Ahern wrote: > On 7/22/17 1:20 AM, Jakub Kicinski wrote: > > I put together this very simple tool with iproute2-like syntax: > > > > https://github.com/Netronome/bpf-tool > > > > These are available subcommands: > > > > Looking to add my code that pretty-prints instructions, but having > trouble building the tool. What bpf headers should be installed? e.g., > <bpf/bpf.h>. hunting and pecking now based on what is in the kernel tree. Hmm.. Did you run make install_headers? I think my commit message diverged from what the Makefile does. To keep things in line with tools/lib/traceevent/Makefile I made it a separate target. I just tested on fresh Fedora 26 w/ net-next: $ git rev-parse HEAD a54df682e559da9cf09b41779ee62bc9f11d3804 $ make headers_install INSTALL_HDR_PATH=/usr/ [...] $ cd tools/lib/bpf/ $ make -j 6 Auto-detecting system features: ... libelf: [ on ] ... bpf: [ on ] Warning: tools/include/uapi/linux/bpf.h differs from kernel CC libbpf.o CC bpf.o LD libbpf-in.o LINK libbpf.a LINK libbpf.so $ sudo make install prefix=/usr/ Password: Warning: tools/include/uapi/linux/bpf.h differs from kernel INSTALL libbpf.a INSTALL libbpf.so $ sudo make install_headers INSTALL headers $ cd ../bpf-tool $ make gcc -std=gnu99 -O2 -W -Wall -Wextra -Wno-unused-parameter -Wshadow -c -MMD -o bpf-map.o bpf-map.c gcc -std=gnu99 -O2 -W -Wall -Wextra -Wno-unused-parameter -Wshadow -c -MMD -o bpf-prog.o bpf-prog.c gcc -std=gnu99 -O2 -W -Wall -Wextra -Wno-unused-parameter -Wshadow -c -MMD -o bpf-common.o bpf-common.c gcc -std=gnu99 -O2 -W -Wall -Wextra -Wno-unused-parameter -Wshadow -c -MMD -o bpf-jit-disasm.o bpf-jit-disasm.c gcc -std=gnu99 -O2 -W -Wall -Wextra -Wno-unused-parameter -Wshadow -o bpftool bpf.o bpf-map.o bpf-prog.o bpf-common.o bpf-jit-disasm.o -lelf -lbpf -lelf -lbfd -lopcodes $ ./bpftool Usage: ./bpftool OBJECT { COMMAND | help } ./bpftool batch file FILE OBJECT := { program | map }