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>
This commit is contained in:

committed by
Alexei Starovoitov

parent
ae9435f696
commit
29a9c10e41
@@ -147,8 +147,22 @@ int prog_parse_fd(int *argc, char ***argv);
|
||||
int map_parse_fd(int *argc, char ***argv);
|
||||
int map_parse_fd_and_info(int *argc, char ***argv, void *info, __u32 *info_len);
|
||||
|
||||
#ifdef HAVE_LIBBFD_SUPPORT
|
||||
void disasm_print_insn(unsigned char *image, ssize_t len, int opcodes,
|
||||
const char *arch, const char *disassembler_options);
|
||||
int disasm_init(void);
|
||||
#else
|
||||
static inline
|
||||
void disasm_print_insn(unsigned char *image, ssize_t len, int opcodes,
|
||||
const char *arch, const char *disassembler_options)
|
||||
{
|
||||
}
|
||||
static inline int disasm_init(void)
|
||||
{
|
||||
p_err("No libbfd support");
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
void print_data_json(uint8_t *data, size_t len);
|
||||
void print_hex_data_json(uint8_t *data, size_t len);
|
||||
|
||||
|
Reference in New Issue
Block a user