This patch set teaches libbpf to enhance BPF verifier log with human-readable and relevant information about failed CO-RE relocation. Patch #9 is the main one with the new logic. See relevant commit messages for some more details. All the other patches are either fixing various bugs detected while working on this feature, most prominently a bug with libbpf not handling CO-RE relocations for SEC("?...") programs, or are refactoring libbpf internals to allow for easier reuse of CO-RE relo lookup and formatting logic. Andrii Nakryiko (10): libbpf: fix anonymous type check in CO-RE logic libbpf: drop unhelpful "program too large" guess libbpf: fix logic for finding matching program for CO-RE relocation libbpf: avoid joining .BTF.ext data with BPF programs by section name selftests/bpf: add CO-RE relos and SEC("?...") to linked_funcs selftests libbpf: record subprog-resolved CO-RE relocations unconditionally libbpf: refactor CO-RE relo human description formatting routine libbpf: simplify bpf_core_parse_spec() signature libbpf: fix up verifier log for unguarded failed CO-RE relos selftests/bpf: add libbpf's log fixup logic selftests tools/lib/bpf/btf.c | 9 +- tools/lib/bpf/libbpf.c | 252 ++++++++++++++---- tools/lib/bpf/libbpf_internal.h | 7 + tools/lib/bpf/relo_core.c | 104 ++++---- tools/lib/bpf/relo_core.h | 6 + .../selftests/bpf/prog_tests/linked_funcs.c | 6 + .../selftests/bpf/prog_tests/log_fixup.c | 114 ++++++++ .../selftests/bpf/progs/linked_funcs1.c | 7 +- .../selftests/bpf/progs/linked_funcs2.c | 7 +- .../selftests/bpf/progs/test_log_fixup.c | 38 +++ tools/testing/selftests/bpf/test_progs.h | 11 + 11 files changed, 464 insertions(+), 97 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/log_fixup.c create mode 100644 tools/testing/selftests/bpf/progs/test_log_fixup.c -- 2.30.2