linux: add BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE

CONFIG_DEBUG_BTF_INFO relies on pahole, so kernel DWARF are converted to BTF.
If CONFIG_DEBUG_BTF_INFO is set and BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE not,
an error message is shown and .config is not written.

Signed-off-by: Francis Laniel <flaniel@linux.microsoft.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2022.02.x
Francis Laniel 2021-12-22 18:49:05 +01:00 committed by Thomas Petazzoni
parent ddba0ef6b1
commit 2da2f359db
2 changed files with 24 additions and 0 deletions

View File

@ -470,6 +470,18 @@ config BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF
CONFIG_UNWINDER_ORC=y, please install libelf-dev,
libelf-devel or elfutils-libelf-devel".
config BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE
bool "Needs host pahole"
help
Some Linux kernel configuration options (such as
CONFIG_DEBUG_INFO_BTF) require building a host program
called pahole. Enabling this option will ensure host-pahole
gets built before the Linux kernel.
Enable this option if you get a Linux kernel build failure
such as "BTF: .tmp_vmlinux.btf: pahole (pahole) is not
available".
# Linux extensions
source "linux/Config.ext.in"

View File

@ -114,6 +114,17 @@ ifeq ($(BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF),y)
LINUX_DEPENDENCIES += host-elfutils host-pkgconf
endif
ifeq ($(BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE),y)
LINUX_DEPENDENCIES += host-pahole
else
define LINUX_FIXUP_CONFIG_PAHOLE_CHECK
if grep -q "^CONFIG_DEBUG_INFO_BTF=y" $(KCONFIG_DOT_CONFIG); then \
echo "To use CONFIG_DEBUG_INFO_BTF, enable host-pahole (BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE)" 1>&2; \
exit 1; \
fi
endef
endif
# If host-uboot-tools is selected by the user, assume it is needed to
# create a custom image
ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS),y)
@ -324,6 +335,7 @@ define LINUX_KCONFIG_FIXUP_CMDS
$(call KCONFIG_DISABLE_OPT,$(opt))
)
$(LINUX_FIXUP_CONFIG_ENDIANNESS)
$(LINUX_FIXUP_CONFIG_PAHOLE_CHECK)
$(if $(BR2_arm)$(BR2_armeb),
$(call KCONFIG_ENABLE_OPT,CONFIG_AEABI))
$(if $(BR2_powerpc)$(BR2_powerpc64)$(BR2_powerpc64le),