Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

libbpf: Deprecate btf_ext rec_size APIs

btf_ext__{func,line}_info_rec_size functions are used in conjunction
with already-deprecated btf_ext__reloc_{func,line}_info functions. Since
struct btf_ext is opaque to the user it was necessary to expose rec_size
getters in the past.

btf_ext__reloc_{func,line}_info were deprecated in commit 8505e8709b5ee
("libbpf: Implement generalized .BTF.ext func/line info adjustment")
as they're not compatible with support for multiple programs per
section. It was decided[0] that users of these APIs should implement their
own .btf.ext parsing to access this data, in which case the rec_size
getters are unnecessary. So deprecate them from libbpf 0.7.0 onwards.

[0] Closes: https://github.com/libbpf/libbpf/issues/277

Signed-off-by: Dave Marchevsky <davemarchevsky@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20220201014610.3522985-1-davemarchevsky@fb.com

authored by

Dave Marchevsky and committed by
Daniel Borkmann
5ee32ea2 0407a65f

+4 -2
+4 -2
tools/lib/bpf/btf.h
··· 168 168 const struct btf_ext *btf_ext, 169 169 const char *sec_name, __u32 insns_cnt, 170 170 void **line_info, __u32 *cnt); 171 - LIBBPF_API __u32 btf_ext__func_info_rec_size(const struct btf_ext *btf_ext); 172 - LIBBPF_API __u32 btf_ext__line_info_rec_size(const struct btf_ext *btf_ext); 171 + LIBBPF_API LIBBPF_DEPRECATED("btf_ext__reloc_func_info is deprecated; write custom func_info parsing to fetch rec_size") 172 + __u32 btf_ext__func_info_rec_size(const struct btf_ext *btf_ext); 173 + LIBBPF_API LIBBPF_DEPRECATED("btf_ext__reloc_line_info is deprecated; write custom line_info parsing to fetch rec_size") 174 + __u32 btf_ext__line_info_rec_size(const struct btf_ext *btf_ext); 173 175 174 176 LIBBPF_API int btf__find_str(struct btf *btf, const char *s); 175 177 LIBBPF_API int btf__add_str(struct btf *btf, const char *s);