Allow specifying "target-less" SEC() definitions for tracing BPF programs, both non-BTF-backed (kprobes, tracepoints, raw tracepoints) and BTF-backed (fentry/fexit, iter, lsm, etc). There are various situations where attach target cannot be known at compilation time, so libbpf's insistence on specifying something leads to users having to add random test like SEC("kprobe/whatever") and then specifying correct target at runtime using APIs like bpf_program__attach_kprobe(). So this patch set improves ergonomics by allowing simple SEC() definitions that define BPF program type and nothing else. Such programs won't be auto-attachable, of course, but they also won't fail skeleton auto-attachment, just like we do this for uprobes. Andrii Nakryiko (3): libbpf: allow "incomplete" basic tracing SEC() definitions libbpf: support target-less SEC() definitions for BTF-backed programs selftests/bpf: use target-less SEC() definitions in various tests tools/lib/bpf/libbpf.c | 118 ++++++++++++------ .../selftests/bpf/prog_tests/attach_probe.c | 10 ++ .../bpf/prog_tests/kprobe_multi_test.c | 14 +-- .../selftests/bpf/progs/kprobe_multi.c | 14 +++ .../selftests/bpf/progs/test_attach_probe.c | 23 +++- .../selftests/bpf/progs/test_module_attach.c | 2 +- 6 files changed, 135 insertions(+), 46 deletions(-) -- 2.30.2