From f95e3e1b6683c69c420e5b05bb23e7134c034cf3 Mon Sep 17 00:00:00 2001 From: Tony Ambardar Date: Wed, 28 Feb 2024 15:04:57 -0800 Subject: [PATCH] tools/dwarves: update to v1.27 Update to the latest upstream version and add a patch that enables pahole reproducible builds if SOURCE_DATE_EPOCH is defined in the environment. This patch helps avoid BTF-related module loading problems with packages built separately from the kernel such as mac80211 or kselftests-bpf, e.g.: [ 16.858856] BPF: type_id=1185 bits_offset=0 [ 16.859099] BPF: [ 16.859199] BPF: Invalid name [ 16.859352] BPF: [ 16.859612] failed to validate module [cfg80211] BTF: -22 [ 17.015178] PPP generic driver version 2.4.2 [ 17.052703] NET: Registered PF_PPPOX protocol family [ 17.348722] BPF: type_id=1185 bits_offset=0 [ 17.348912] BPF: [ 17.348996] BPF: Invalid name [ 17.349106] BPF: [ 17.349220] failed to validate module [cfg80211] BTF: -22 [ 17.472070] kmodloader: 3 modules could not be probed [ 17.473133] kmodloader: - cfg80211 - 0 [ 17.473762] kmodloader: dependency not loaded cfg80211 [ 17.474421] kmodloader: - mac80211 - 1 [ 17.474988] kmodloader: dependency not loaded mac80211 [ 17.475632] kmodloader: dependency not loaded cfg80211 [ 17.476263] kmodloader: - mac80211_hwsim - 2 root@OpenWrt:/usr/libexec/kselftests-bpf# insmod bpf_testmod.ko [ 4735.776792] missing module BTF, cannot register kfuncs [ 4735.777371] missing module BTF, cannot register kfuncs [ 4735.777955] missing module BTF, cannot register kfuncs [ 4735.778452] missing module BTF, cannot register kfuncs Release Notes: https://lore.kernel.org/bpf/ZmjBHWw-Q5hKBiwA@x1/ Signed-off-by: Tony Ambardar --- tools/dwarves/Makefile | 4 ++-- .../dwarves/patches/100-reproducible-builds.patch | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 tools/dwarves/patches/100-reproducible-builds.patch diff --git a/tools/dwarves/Makefile b/tools/dwarves/Makefile index 16dc765f586e45..bcb16dd3da36b1 100644 --- a/tools/dwarves/Makefile +++ b/tools/dwarves/Makefile @@ -3,12 +3,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dwarves -PKG_VERSION:=1.26 +PKG_VERSION:=1.27 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:=https://fedorapeople.org/~acme/dwarves/ -PKG_HASH:=1d8c9a1c2d42e06cc121a70a39c4f621fd28f15c476ed1b7c7b226f41fdd32df +PKG_HASH:=ef7f21f1c6016896d03a01f05cab225151f9068e19cc8cddc6e754b2b5cbe279 PKG_MAINTAINER:=Tony Ambardar PKG_LICENSE:=GPL-2.0-only diff --git a/tools/dwarves/patches/100-reproducible-builds.patch b/tools/dwarves/patches/100-reproducible-builds.patch new file mode 100644 index 00000000000000..6f035b87baa215 --- /dev/null +++ b/tools/dwarves/patches/100-reproducible-builds.patch @@ -0,0 +1,14 @@ +diff --git a/pahole.c b/pahole.c +index 954498d..5f13a7a 100644 +--- a/pahole.c ++++ b/pahole.c +@@ -3723,6 +3723,9 @@ int main(int argc, char *argv[]) + goto out; + } + ++ if (getenv("SOURCE_DATE_EPOCH")) ++ conf_load.reproducible_build = true; ++ + if (dwarves__init()) { + fputs("pahole: insufficient memory\n", stderr); + goto out;