Expose, per kernel package set, a vmlinux.h extracted from that kernel's
BTF (bpftool btf dump on $dev/vmlinux). This is the pure equivalent of
systemd's vmlinux-h=generated, which reads /sys/kernel/btf/vmlinux, and
it lets BPF CO-RE consumers compile against the kernel they run on
instead of a synthetic one.
More on this: BPF CO-RE is not yet a complete solution for a stable BPF
ABI. At the time of writing, CO-RE is only about offset/type relocation.
The history of the kernel private ABI evolution has shown this is not
enough, e.g. task_struct->utime/stime jiffies → nsecs after 4.6.
Operational expertise of BPF CO-RE is not great at the moment as well:
BPF verifier bugs can lead to rejection of valid programs, see
https://ebpfchirp.substack.com/p/why-does-my-ebpf-program-work-on.
For reminders, BTF is arch independent, so cross builds are fine.