From: Alexei Starovoitov <ast@xxxxxxxxxx> Split CO-RE processing logic from libbpf into separate file with an interface that doesn't dependend on libbpf internal details. As the next step relo_core.c will be compiled with libbpf and with the kernel. The _internal_ interface between libbpf/CO-RE and kernel/CO-RE will be: int bpf_core_apply_relo_insn(const char *prog_name, struct bpf_insn *insn, int insn_idx, const struct bpf_core_relo *relo, int relo_idx, const struct btf *local_btf, struct bpf_core_cand_list *cands); where bpf_core_relo and bpf_core_cand_list are simple types prepared by kernel and libbpf. Though diff stat shows a lot of lines inserted/deleted they are moved lines. Pls review with diff.colorMoved. Alexei Starovoitov (4): libbpf: Cleanup the layering between CORE and bpf_program. libbpf: Split bpf_core_apply_relo() into bpf_program indepdent helper. libbpf: Move CO-RE types into relo_core.h. libbpf: Split CO-RE logic into relo_core.c. tools/lib/bpf/Build | 2 +- tools/lib/bpf/libbpf.c | 1344 +------------------------------ tools/lib/bpf/libbpf_internal.h | 81 +- tools/lib/bpf/relo_core.c | 1326 ++++++++++++++++++++++++++++++ tools/lib/bpf/relo_core.h | 102 +++ 5 files changed, 1473 insertions(+), 1382 deletions(-) create mode 100644 tools/lib/bpf/relo_core.c create mode 100644 tools/lib/bpf/relo_core.h -- 2.30.2