Skip to content

Commit 9520a2b

Browse files
samitolvanenmasahir0y
authored andcommitted
kbuild: Require pahole <v1.28 or >v1.29 with GENDWARFKSYMS on X86
With CONFIG_GENDWARFKSYMS, __gendwarfksyms_ptr variables are added to the kernel in EXPORT_SYMBOL() to ensure DWARF type information is available for exported symbols in the TUs where they're actually exported. These symbols are dropped when linking vmlinux, but dangling references to them remain in DWARF. With CONFIG_DEBUG_INFO_BTF enabled on X86, pahole versions after commit 47dcb534e253 ("btf_encoder: Stop indexing symbols for VARs") and before commit 9810758003ce ("btf_encoder: Verify 0 address DWARF variables are in ELF section") place these symbols in the .data..percpu section, which results in an "Invalid offset" error in btf_datasec_check_meta() during boot, as all the variables are at zero offset and have non-zero size. If CONFIG_DEBUG_INFO_BTF_MODULES is enabled, this also results in a failure to load modules with: failed to validate module [$module] BTF: -22 As the issue occurs in pahole v1.28 and the fix was merged after v1.29 was released, require pahole <v1.28 or >v1.29 when GENDWARFKSYMS is enabled with DEBUG_INFO_BTF on X86. Reported-by: Paolo Pisati <paolo.pisati@canonical.com> Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
1 parent 82f2b0b commit 9520a2b

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

kernel/module/Kconfig

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,11 @@ config GENDWARFKSYMS
192192
depends on !DEBUG_INFO_REDUCED && !DEBUG_INFO_SPLIT
193193
# Requires ELF object files.
194194
depends on !LTO
195+
# To avoid conflicts with the discarded __gendwarfksyms_ptr symbols on
196+
# X86, requires pahole before commit 47dcb534e253 ("btf_encoder: Stop
197+
# indexing symbols for VARs") or after commit 9810758003ce ("btf_encoder:
198+
# Verify 0 address DWARF variables are in ELF section").
199+
depends on !X86 || !DEBUG_INFO_BTF || PAHOLE_VERSION < 128 || PAHOLE_VERSION > 129
195200
help
196201
Calculate symbol versions from DWARF debugging information using
197202
gendwarfksyms. Requires DEBUG_INFO to be enabled.

0 commit comments

Comments
 (0)