Message ID | 20211222174905.71902-3-flaniel@linux.microsoft.com |
---|---|
State | Accepted |
Headers | show |
Series | Enable BTF headers for Linux kernel | expand |
Hello, On Wed, 22 Dec 2021 18:49:05 +0100 Francis Laniel <flaniel@linux.microsoft.com> wrote: > 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> Thanks, applied, with one change. > diff --git a/package/pahole/Config.in.host b/package/pahole/Config.in.host > index e427629632..521874961b 100644 > --- a/package/pahole/Config.in.host > +++ b/package/pahole/Config.in.host > @@ -3,4 +3,6 @@ config BR2_PACKAGE_HOST_PAHOLE > help > Pahole and other DWARF utils. > > + Select this if you want to build a kernel with CONFIG_DEBUG_INFO_BTF set. > + I've dropped this, because it's not really this option that should be enabled if the kernel is configured with CONFIG_DEBUG_INFO_BTF, but the BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE option. Thanks for your contribution! Best regards, Thomas
Hi. Le jeudi 13 janvier 2022, 22:41:26 CET Thomas Petazzoni a écrit : > Hello, > > On Wed, 22 Dec 2021 18:49:05 +0100 > > Francis Laniel <flaniel@linux.microsoft.com> wrote: > > 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> > > Thanks, applied, with one change. > > > diff --git a/package/pahole/Config.in.host b/package/pahole/Config.in.host > > index e427629632..521874961b 100644 > > --- a/package/pahole/Config.in.host > > +++ b/package/pahole/Config.in.host > > @@ -3,4 +3,6 @@ config BR2_PACKAGE_HOST_PAHOLE > > > > help > > > > Pahole and other DWARF utils. > > > > + Select this if you want to build a kernel with CONFIG_DEBUG_INFO_BTF > > set. + > > I've dropped this, because it's not really this option that should be > enabled if the kernel is configured with CONFIG_DEBUG_INFO_BTF, but the > BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE option. Your modification made the thing clearer, thank you for it! > Thanks for your contribution! You are welcome! I thank you for the merge! > Best regards, Best regards. > Thomas
diff --git a/linux/Config.in b/linux/Config.in index 6c30100921..ef86cbc021 100644 --- a/linux/Config.in +++ b/linux/Config.in @@ -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" diff --git a/linux/linux.mk b/linux/linux.mk index 61fdc0c76c..acb2464e8d 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -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), diff --git a/package/pahole/Config.in.host b/package/pahole/Config.in.host index e427629632..521874961b 100644 --- a/package/pahole/Config.in.host +++ b/package/pahole/Config.in.host @@ -3,4 +3,6 @@ config BR2_PACKAGE_HOST_PAHOLE help Pahole and other DWARF utils. + Select this if you want to build a kernel with CONFIG_DEBUG_INFO_BTF set. + https://git.kernel.org/pub/scm/devel/pahole/pahole.git
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> --- linux/Config.in | 12 ++++++++++++ linux/linux.mk | 12 ++++++++++++ package/pahole/Config.in.host | 2 ++ 3 files changed, 26 insertions(+)