-
Notifications
You must be signed in to change notification settings - Fork 4.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Backport buildroot patch to add BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE.
This config option permits indicating the Linux kernel needs pahole to be compiled. Thus, host-pahole will be built before the kernel. This is mandatory when using CONFIG_DEBUG_INFO_BTF. Signed-off-by: Francis Laniel <flaniel@microsoft.com>
- Loading branch information
Showing
2 changed files
with
75 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
72 changes: 72 additions & 0 deletions
72
deploy/iso/minikube-iso/0001-linux-add-BR2_LINUX_KERNEL_NEEDS_HOST_PAHOLE.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
From 2da2f359dba50aafef1202edda34374d99b77a14 Mon Sep 17 00:00:00 2001 | ||
From: Francis Laniel <flaniel@linux.microsoft.com> | ||
Date: Wed, 22 Dec 2021 18:49:05 +0100 | ||
Subject: [PATCH] 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> | ||
--- | ||
linux/Config.in | 12 ++++++++++++ | ||
linux/linux.mk | 12 ++++++++++++ | ||
2 files changed, 24 insertions(+) | ||
|
||
diff --git a/linux/Config.in b/linux/Config.in | ||
index 891e2cdcb6..582f37ba7c 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..dd2eebd446 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), | ||
-- | ||
2.25.1 | ||
|