libbpf: BTF is required when externs are present

BTF is required to get type information about extern variables.

Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20191219002837.3074619-4-andriin@fb.com
This commit is contained in:
Andrii Nakryiko 2019-12-18 16:28:36 -08:00 committed by Alexei Starovoitov
parent 8601fd4221
commit 630628cb7d

View file

@ -1887,7 +1887,8 @@ static void bpf_object__sanitize_btf_ext(struct bpf_object *obj)
static bool bpf_object__is_btf_mandatory(const struct bpf_object *obj)
{
return obj->efile.btf_maps_shndx >= 0;
return obj->efile.btf_maps_shndx >= 0 ||
obj->nr_extern > 0;
}
static int bpf_object__init_btf(struct bpf_object *obj,