On Mon, Nov 22, 2021 at 6:47 AM Kumar Kartikeya Dwivedi <memxor@xxxxxxxxx> wrote: > > Vinicius Costa Gomes reported [0] that build fails when > CONFIG_DEBUG_INFO_BTF is enabled and CONFIG_BPF_SYSCALL is disabled. > This leads to btf.c not being compiled, and then no symbol being present > in vmlinux for the declarations in btf.h. Since BTF is not useful > without enabling BPF subsystem, disallow this combination. > > However, theoretically disabling both now could still fail, as the > symbol for kfunc_btf_id_list variables is not available. This isn't a > problem as the compiler usually optimizes the whole register/unregister > call, but at lower optimization levels it can fail the build in linking > stage. > > Fix that by adding dummy variables so that modules taking address of > them still work, but the whole thing is a noop. > > [0]: https://lore.kernel.org/bpf/20211110205418.332403-1-vinicius.gomes@xxxxxxxxx > > Fixes: 14f267d95fe4 ("bpf: btf: Introduce helpers for dynamic BTF set registration") > Reported-by: Vinicius Costa Gomes <vinicius.gomes@xxxxxxxxx> > Signed-off-by: Kumar Kartikeya Dwivedi <memxor@xxxxxxxxx> Acked-by: Song Liu <songliubraving@xxxxxx>