From: Andrii Nakryiko <andrii@xxxxxxxxxx> Add bulk BTF type data copying API, btf__add_btf(), to libbpf. This API is useful for tools that are manipulating BPF, such as pahole. They abstract away the details of implementing a pretty mundane, but important to get right, details of handling all possible BTF kinds, as well as, importantly, adjusting BTF type IDs and copying/deduplicating strings and string offsets, referenced from copied BTF types. Also, being a batch API, it's possible to improve the efficiency by preallocating necessary memory more efficiently. This API is going to be used by pahole to implement efficient parallelized BTF encoding. Cc: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> Andrii Nakryiko (3): libbpf: add API that copies all BTF types from one BTF object to another selftests/bpf: refactor btf_write selftest to reuse BTF generation logic selftests/bpf: test new btf__add_btf() API tools/lib/bpf/btf.c | 114 +++++++++++++- tools/lib/bpf/btf.h | 22 +++ tools/lib/bpf/libbpf.map | 1 + .../selftests/bpf/prog_tests/btf_write.c | 141 +++++++++++++++++- 4 files changed, 270 insertions(+), 8 deletions(-) -- 2.30.2