Commit 903922cf authored by Ihor Solodrai's avatar Ihor Solodrai Committed by Andrii Nakryiko
Browse files

lib/Kconfig.debug: Set the minimum required pahole version to v1.22

Subsequent patches in the series change vmlinux linking scripts to
unconditionally pass --btf_encode_detached to pahole, which was
introduced in v1.22 [1][2].

This change allows to remove PAHOLE_HAS_SPLIT_BTF Kconfig option and
other checks of older pahole versions.

[1] https://github.com/acmel/dwarves/releases/tag/v1.22
[2] https://lore.kernel.org/bpf/cbafbf4e-9073-4383-8ee6-1353f9e5869c@oracle.com/



Signed-off-by: default avatarIhor Solodrai <ihor.solodrai@linux.dev>
Signed-off-by: default avatarAndrii Nakryiko <andrii@kernel.org>
Tested-by: default avatarAlan Maguire <alan.maguire@oracle.com>
Acked-by: default avatarEduard Zingerman <eddyz87@gmail.com>
Acked-by: default avatarNicolas Schier <nsc@kernel.org>
Link: https://lore.kernel.org/bpf/20251219181825.1289460-1-ihor.solodrai@linux.dev
parent 90e5b38a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ bash 4.2 bash --version
binutils               2.30             ld -v
flex                   2.5.35           flex --version
bison                  2.0              bison --version
pahole                 1.16             pahole --version
pahole                 1.22             pahole --version
util-linux             2.10o            mount --version
kmod                   13               depmod -V
e2fsprogs              1.41.4           e2fsck -V
@@ -143,7 +143,7 @@ pahole

Since Linux 5.2, if CONFIG_DEBUG_INFO_BTF is selected, the build system
generates BTF (BPF Type Format) from DWARF in vmlinux, a bit later from kernel
modules as well.  This requires pahole v1.16 or later.
modules as well.  This requires pahole v1.22 or later.

It is found in the 'dwarves' or 'pahole' distro packages or from
https://fedorapeople.org/~acme/dwarves/.
+0 −1
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@ options should be enabled to use sched_ext:
    CONFIG_DEBUG_INFO_BTF=y
    CONFIG_BPF_JIT_ALWAYS_ON=y
    CONFIG_BPF_JIT_DEFAULT_ON=y
    CONFIG_PAHOLE_HAS_SPLIT_BTF=y
    CONFIG_PAHOLE_HAS_BTF_TAG=y

sched_ext is used only when the BPF scheduler is loaded and running.
+4 −9
Original line number Diff line number Diff line
@@ -388,18 +388,13 @@ config DEBUG_INFO_BTF
	depends on !DEBUG_INFO_SPLIT && !DEBUG_INFO_REDUCED
	depends on !GCC_PLUGIN_RANDSTRUCT || COMPILE_TEST
	depends on BPF_SYSCALL
	depends on PAHOLE_VERSION >= 116
	depends on DEBUG_INFO_DWARF4 || PAHOLE_VERSION >= 121
	depends on PAHOLE_VERSION >= 122
	# pahole uses elfutils, which does not have support for Hexagon relocations
	depends on !HEXAGON
	help
	  Generate deduplicated BTF type information from DWARF debug info.
	  Turning this on requires pahole v1.16 or later (v1.21 or later to
	  support DWARF 5), which will convert DWARF type info into equivalent
	  deduplicated BTF type info.

config PAHOLE_HAS_SPLIT_BTF
	def_bool PAHOLE_VERSION >= 119
	  Turning this on requires pahole v1.22 or later, which will convert
	  DWARF type info into equivalent deduplicated BTF type info.

config PAHOLE_HAS_BTF_TAG
	def_bool PAHOLE_VERSION >= 123
@@ -421,7 +416,7 @@ config PAHOLE_HAS_LANG_EXCLUDE
config DEBUG_INFO_BTF_MODULES
	bool "Generate BTF type information for kernel modules"
	default y
	depends on DEBUG_INFO_BTF && MODULES && PAHOLE_HAS_SPLIT_BTF
	depends on DEBUG_INFO_BTF && MODULES
	help
	  Generate compact split BTF type information for kernel modules.

+1 −8
Original line number Diff line number Diff line
@@ -7,14 +7,7 @@ JOBS := $(patsubst -j%,%,$(filter -j%,$(MAKEFLAGS)))

ifeq ($(call test-le, $(pahole-ver), 125),y)

# pahole 1.18 through 1.21 can't handle zero-sized per-CPU vars
ifeq ($(call test-le, $(pahole-ver), 121),y)
pahole-flags-$(call test-ge, $(pahole-ver), 118)	+= --skip_encoding_btf_vars
endif

pahole-flags-$(call test-ge, $(pahole-ver), 121)	+= --btf_gen_floats

pahole-flags-$(call test-ge, $(pahole-ver), 122)	+= -j$(JOBS)
pahole-flags-y                                  	+= --btf_gen_floats -j$(JOBS)

pahole-flags-$(call test-ge, $(pahole-ver), 125)	+= --skip_encoding_btf_inconsistent_proto --btf_gen_optimized

+0 −1
Original line number Diff line number Diff line
@@ -65,7 +65,6 @@ It's also recommended that you also include the following Kconfig options:
```
CONFIG_BPF_JIT_ALWAYS_ON=y
CONFIG_BPF_JIT_DEFAULT_ON=y
CONFIG_PAHOLE_HAS_SPLIT_BTF=y
CONFIG_PAHOLE_HAS_BTF_TAG=y
```