Patches (1,2,3,6) add typeless and weak ksym support to gen_loader. It is follow up for the recent kfunc from modules series. The later patches (7,8) are misc fixes for selftests, and patch 4 for libbpf where we try to be careful to not end up with fds == 0, as libbpf assumes in various places that they are greater than 0. Patch 5 fixes up missing O_CLOEXEC in libbpf. Please look at patch 4 and 5 closely and whether I missed any other places that need a change. Changelog: ---------- v1 -> v2 v1: https://lore.kernel.org/bpf/20211006002853.308945-1-memxor@xxxxxxxxx * Remove redundant OOM checks in emit_bpf_kallsyms_lookup_name * Use designated initializer for sk_lookup fd array (Jakub) * Do fd check for all fd returning low level APIs (Andrii, Alexei) * Make Fixes: tag quote commit message, use selftests/bpf prefix (Song, Andrii) * Split typeless and weak ksym support into separate patches, expand commit message (Song) * Fix duplication in selftests stemming from use of LSKELS_EXTRA (Song) Kumar Kartikeya Dwivedi (8): bpf: Add bpf_kallsyms_lookup_name helper libbpf: Add typeless ksym support to gen_loader libbpf: Add weak ksym support to gen_loader libbpf: Ensure that BPF syscall fds are never 0, 1, or 2 libbpf: Use O_CLOEXEC uniformly when opening fds selftests/bpf: Add weak/typeless ksym test for light skeleton selftests/bpf: Fix fd cleanup in sk_lookup test selftests/bpf: Fix memory leak in test_ima include/linux/bpf.h | 1 + include/uapi/linux/bpf.h | 14 +++ kernel/bpf/syscall.c | 24 ++++ tools/include/uapi/linux/bpf.h | 14 +++ tools/lib/bpf/bpf.c | 28 ++--- tools/lib/bpf/bpf_gen_internal.h | 12 +- tools/lib/bpf/btf.c | 2 +- tools/lib/bpf/gen_loader.c | 119 ++++++++++++++++-- tools/lib/bpf/libbpf.c | 53 ++++---- tools/lib/bpf/libbpf_internal.h | 23 ++++ tools/lib/bpf/libbpf_probes.c | 2 +- tools/lib/bpf/linker.c | 4 +- tools/lib/bpf/ringbuf.c | 2 +- tools/lib/bpf/skel_internal.h | 34 ++++- tools/lib/bpf/xsk.c | 6 +- tools/testing/selftests/bpf/Makefile | 7 +- .../selftests/bpf/prog_tests/ksyms_btf.c | 35 +++++- .../selftests/bpf/prog_tests/ksyms_module.c | 40 +++++- .../bpf/prog_tests/ksyms_module_libbpf.c | 28 ----- .../selftests/bpf/prog_tests/sk_lookup.c | 14 ++- .../selftests/bpf/prog_tests/test_ima.c | 3 +- .../selftests/bpf/progs/test_ksyms_weak.c | 3 +- 22 files changed, 359 insertions(+), 109 deletions(-) delete mode 100644 tools/testing/selftests/bpf/prog_tests/ksyms_module_libbpf.c -- 2.33.0