On Thu, Oct 7, 2021 at 5:03 PM <andrii.nakryiko@xxxxxxxxx> wrote: > > From: Andrii Nakryiko <andrii@xxxxxxxxxx> > > There isn't a good use case where anyone but libbpf itself needs to call > btf__finalize_data(). It was implemented for internal use and it's not > clear why it was made into public API in the first place. To function, it > requires active ELF data, which is stored inside bpf_object for the > duration of opening phase only. But the only BTF that needs bpf_object's > ELF is that bpf_object's BTF itself, which libbpf fixes up automatically > during bpf_object__open() operation anyways. There is no need for any > additional fix up and no reasonable scenario where it's useful and > appropriate. > > Thus, btf__finalize_data() is just an API atavism and is better removed. > So this patch marks it as deprecated immediately (v0.6+) and moves the > code from btf.c into libbpf.c where it's used in the context of > bpf_object opening phase. Such code co-location allows to make code > structure more straightforward and remove bpf_object__section_size() and > bpf_object__variable_offset() internal helpers from libbpf_internal.h, > making them static. Their naming is also adjusted to not create > a wrong illusion that they are some sort of method of bpf_object. They > are internal helpers and are called appropriately. > > This is part of libbpf 1.0 effort ([0]). > > [0] Closes: https://github.com/libbpf/libbpf/issues/276 > > Signed-off-by: Andrii Nakryiko <andrii@xxxxxxxxxx> Acked-by: Song Liu <songliubraving@xxxxxx>