Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

btf: move pahole check in scripts/link-vmlinux.sh to lib/Kconfig.debug

When DEBUG_INFO_DWARF5 is selected, pahole 1.21+ is required to enable
DEBUG_INFO_BTF.

When DEBUG_INFO_DWARF4 or DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is selected,
DEBUG_INFO_BTF can be enabled without pahole installed, but a build error
will occur in scripts/link-vmlinux.sh:

LD .tmp_vmlinux1
BTF: .tmp_vmlinux1: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF

We did not guard DEBUG_INFO_BTF by PAHOLE_VERSION when previously
discussed [1].

However, commit 613fe1692377 ("kbuild: Add CONFIG_PAHOLE_VERSION")
added CONFIG_PAHOLE_VERSION after all. Now several CONFIG options, as
well as the combination of DEBUG_INFO_BTF and DEBUG_INFO_DWARF5, are
guarded by PAHOLE_VERSION.

The remaining compile-time check in scripts/link-vmlinux.sh now appears
to be an awkward inconsistency.

This commit adopts Nathan's original work.

[1]: https://lore.kernel.org/lkml/20210111180609.713998-1-natechancellor@gmail.com/

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Alan Maguire <alan.maguire@oracle.com>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Reviewed-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/r/20240913173759.1316390-2-masahiroy@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>

authored by

Masahiro Yamada and committed by
Alexei Starovoitov
42450f7a c980dc9c

+4 -14
+4 -2
lib/Kconfig.debug
··· 379 379 depends on !DEBUG_INFO_SPLIT && !DEBUG_INFO_REDUCED 380 380 depends on !GCC_PLUGIN_RANDSTRUCT || COMPILE_TEST 381 381 depends on BPF_SYSCALL 382 + depends on PAHOLE_VERSION >= 116 382 383 depends on !DEBUG_INFO_DWARF5 || PAHOLE_VERSION >= 121 383 384 # pahole uses elfutils, which does not have support for Hexagon relocations 384 385 depends on !HEXAGON 385 386 help 386 387 Generate deduplicated BTF type information from DWARF debug info. 387 - Turning this on expects presence of pahole tool, which will convert 388 - DWARF type info into equivalent deduplicated BTF type info. 388 + Turning this on requires pahole v1.16 or later (v1.21 or later to 389 + support DWARF 5), which will convert DWARF type info into equivalent 390 + deduplicated BTF type info. 389 391 390 392 config PAHOLE_HAS_SPLIT_BTF 391 393 def_bool PAHOLE_VERSION >= 119