aboutsummaryrefslogtreecommitdiffstats
path: root/tools/bpf/bpftool/jit_disasm.c
diff options
context:
space:
mode:
authorStanislav Fomichev <sdf@google.com>2018-11-12 13:44:10 -0800
committerAlexei Starovoitov <ast@kernel.org>2018-11-16 20:45:01 -0800
commit29a9c10e4110e368443f0b606d71557edee7f2cc (patch)
tree0c3025388dcfa6221044a9ad532775ff30bf077b /tools/bpf/bpftool/jit_disasm.c
parentMerge branch 'socket-lookup-cg_sock' (diff)
downloadlinux-dev-29a9c10e4110e368443f0b606d71557edee7f2cc.tar.xz
linux-dev-29a9c10e4110e368443f0b606d71557edee7f2cc.zip
bpftool: make libbfd optional
Make it possible to build bpftool without libbfd. libbfd and libopcodes are typically provided in dev/dbg packages (binutils-dev in debian) which we usually don't have installed on the fleet machines and we'd like a way to have bpftool version that works without installing any additional packages. This excludes support for disassembling jit-ted code and prints an error if the user tries to use these features. Tested by: cat > FEATURES_DUMP.bpftool <<EOF feature-libbfd=0 feature-disassembler-four-args=1 feature-reallocarray=0 feature-libelf=1 feature-libelf-mmap=1 feature-bpf=1 EOF FEATURES_DUMP=$PWD/FEATURES_DUMP.bpftool make ldd bpftool | grep libbfd Signed-off-by: Stanislav Fomichev <sdf@google.com> Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/bpf/bpftool/jit_disasm.c')
-rw-r--r--tools/bpf/bpftool/jit_disasm.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/tools/bpf/bpftool/jit_disasm.c b/tools/bpf/bpftool/jit_disasm.c
index c75ffd9ce2bb..b2ed5ee1af5f 100644
--- a/tools/bpf/bpftool/jit_disasm.c
+++ b/tools/bpf/bpftool/jit_disasm.c
@@ -109,7 +109,7 @@ void disasm_print_insn(unsigned char *image, ssize_t len, int opcodes,
if (inf) {
bfdf->arch_info = inf;
} else {
- p_err("No libfd support for %s", arch);
+ p_err("No libbfd support for %s", arch);
return;
}
}
@@ -183,3 +183,9 @@ void disasm_print_insn(unsigned char *image, ssize_t len, int opcodes,
bfd_close(bfdf);
}
+
+int disasm_init(void)
+{
+ bfd_init();
+ return 0;
+}