bpftool: Add `gen object` command to perform BPF static linking
authorAndrii Nakryiko <andrii@kernel.org>
Thu, 18 Mar 2021 19:40:33 +0000 (12:40 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Thu, 18 Mar 2021 23:14:23 +0000 (16:14 -0700)
commitd80b2fcbe0a023619e0fc73112f2a02c2662f6ab
tree5a232c9c067b8af8ef6a1789d09d55a64f4a15cc
parentc41226654550b0a8aa75e91ce0a1cdb6ce2316ee
bpftool: Add `gen object` command to perform BPF static linking

Add `bpftool gen object <output-file> <input_file>...` command to statically
link multiple BPF ELF object files into a single output BPF ELF object file.

This patch also updates bash completions and man page. Man page gets a short
section on `gen object` command, but also updates the skeleton example to show
off workflow for BPF application with two .bpf.c files, compiled individually
with Clang, then resulting object files are linked together with `gen object`,
and then final object file is used to generate usable BPF skeleton. This
should help new users understand realistic workflow w.r.t. compiling
mutli-file BPF application.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Reviewed-by: Quentin Monnet <quentin@isovalent.com>
Link: https://lore.kernel.org/bpf/20210318194036.3521577-10-andrii@kernel.org
tools/bpf/bpftool/Documentation/bpftool-gen.rst
tools/bpf/bpftool/bash-completion/bpftool
tools/bpf/bpftool/gen.c