On Wed, Sep 9, 2020 at 9:25 AM Quentin Monnet <quentin@xxxxxxxxxxxxx> wrote: > > Bpftool has a number of features that can be included or left aside > during compilation. This includes: > > - Support for libbfd, providing the disassembler for JIT-compiled > programs. > - Support for BPF skeletons, used for profiling programs or iterating on > the PIDs of processes associated with BPF objects. > > In order to make it easy for users to understand what features were > compiled for a given bpftool binary, print the status of the two > features above when showing the version number for bpftool ("bpftool -V" > or "bpftool version"). Document this in the main manual page. Example > invocations: > > $ bpftool version > ./bpftool v5.9.0-rc1 > features: libbfd, skeletons > > $ bpftool -p version > { > "version": "5.9.0-rc1", > "features": { > "libbfd": true, > "skeletons": true > } > } > > Some other parameters are optional at compilation > ("DISASM_FOUR_ARGS_SIGNATURE", LIBCAP support) but they do not impact > significantly bpftool's behaviour from a user's point of view, so their > status is not reported. > > Available commands and supported program types depend on the version > number, and are therefore not reported either. Note that they are > already available, albeit without JSON, via bpftool's help messages. > > v3: > - Use a simple list instead of boolean values for plain output. > > v2: > - Fix JSON (object instead or array for the features). > > Signed-off-by: Quentin Monnet <quentin@xxxxxxxxxxxxx> > --- Acked-by: Andrii Nakryiko <andriin@xxxxxx> > tools/bpf/bpftool/Documentation/bpftool.rst | 8 ++++- > tools/bpf/bpftool/main.c | 33 +++++++++++++++++++-- > 2 files changed, 38 insertions(+), 3 deletions(-) > [...]