[packages/kernel-tools] Rel 2
arekm
arekm at pld-linux.org
Sun Aug 23 01:27:17 CEST 2026
commit a9b47a8f5408462e1d2500427c62638fc73a0114
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Sun Aug 23 01:27:08 2026 +0200
Rel 2
kernel-tools-perf-libunwind-word.patch | 203 +++++++++++++++++++++++++++++++++
kernel-tools.spec | 4 +-
2 files changed, 206 insertions(+), 1 deletion(-)
---
diff --git a/kernel-tools.spec b/kernel-tools.spec
index 633be62..20330c1 100644
--- a/kernel-tools.spec
+++ b/kernel-tools.spec
@@ -23,7 +23,7 @@ Summary: Assortment of tools for the Linux kernel
Summary(pl.UTF-8): Zestaw narzędzi dla jądra Linuksa
Name: kernel-tools
Version: %{basever}%{postver}
-Release: 1
+Release: 2
License: GPL v2
Group: Applications/System
Source0: https://www.kernel.org/pub/linux/kernel/v7.x/linux-%{basever}.tar.xz
@@ -40,6 +40,7 @@ Patch2: regex.patch
Patch3: %{name}-perf-update.patch
Patch4: %{name}-perf-gtk2.patch
Patch5: %{name}-perf-slang.patch
+Patch6: %{name}-perf-libunwind-word.patch
URL: https://www.kernel.org/
BuildRequires: asciidoc
BuildRequires: bison
@@ -435,6 +436,7 @@ cd linux-%{basever}
%patch -P3 -p1
%patch -P4 -p1
%patch -P5 -p1
+%patch -P6 -p1
%{__sed} -i -e 's#libexec/perf-core#%{_lib}/perf-core#g' tools/perf/Makefile.config
diff --git a/kernel-tools-perf-libunwind-word.patch b/kernel-tools-perf-libunwind-word.patch
new file mode 100644
index 0000000..2ce1d5c
--- /dev/null
+++ b/kernel-tools-perf-libunwind-word.patch
@@ -0,0 +1,203 @@
+libunwind's unw_word_t is 32-bit on x32 and on the 32-bit remote-unwind targets,
+so unw_get_reg() writing into a uint64_t is a type error there and would leave
+the upper half uninitialized.
+--- linux-7.2/tools/perf/util/libunwind-arch/libunwind-arm64.c.orig
++++ linux-7.2/tools/perf/util/libunwind-arch/libunwind-arm64.c
+@@ -267,7 +267,7 @@
+
+ ret = unw_step(ui->cursor);
+ if (ret > 0) {
+- uint64_t ip;
++ unw_word_t ip;
+
+ unw_get_reg(ui->cursor, UNW_REG_IP, &ip);
+
+@@ -280,7 +280,7 @@
+ */
+ --ip;
+ }
+- ui->ips[ui->cur_ip++] = ip;
++ ui->ips[ui->cur_ip++] = (uint64_t)ip;
+ }
+ return ret;
+ #else
+--- linux-7.2/tools/perf/util/libunwind-arch/libunwind-arm.c.orig
++++ linux-7.2/tools/perf/util/libunwind-arch/libunwind-arm.c
+@@ -268,7 +268,7 @@
+
+ ret = unw_step(ui->cursor);
+ if (ret > 0) {
+- uint64_t ip;
++ unw_word_t ip;
+
+ unw_get_reg(ui->cursor, UNW_REG_IP, &ip);
+
+@@ -281,7 +281,7 @@
+ */
+ --ip;
+ }
+- ui->ips[ui->cur_ip++] = ip;
++ ui->ips[ui->cur_ip++] = (uint64_t)ip;
+ }
+ return ret;
+ #else
+--- linux-7.2/tools/perf/util/libunwind-arch/libunwind-i386.c.orig
++++ linux-7.2/tools/perf/util/libunwind-arch/libunwind-i386.c
+@@ -290,7 +290,7 @@
+
+ ret = unw_step(ui->cursor);
+ if (ret > 0) {
+- uint64_t ip;
++ unw_word_t ip;
+
+ unw_get_reg(ui->cursor, UNW_REG_IP, &ip);
+
+@@ -303,7 +303,7 @@
+ */
+ --ip;
+ }
+- ui->ips[ui->cur_ip++] = ip;
++ ui->ips[ui->cur_ip++] = (uint64_t)ip;
+ }
+ return ret;
+ #else
+--- linux-7.2/tools/perf/util/libunwind-arch/libunwind-loongarch.c.orig
++++ linux-7.2/tools/perf/util/libunwind-arch/libunwind-loongarch.c
+@@ -275,7 +275,7 @@
+
+ ret = unw_step(ui->cursor);
+ if (ret > 0) {
+- uint64_t ip;
++ unw_word_t ip;
+
+ unw_get_reg(ui->cursor, UNW_REG_IP, &ip);
+
+@@ -288,7 +288,7 @@
+ */
+ --ip;
+ }
+- ui->ips[ui->cur_ip++] = ip;
++ ui->ips[ui->cur_ip++] = (uint64_t)ip;
+ }
+ return ret;
+ #else
+--- linux-7.2/tools/perf/util/libunwind-arch/libunwind-mips.c.orig
++++ linux-7.2/tools/perf/util/libunwind-arch/libunwind-mips.c
+@@ -277,7 +277,7 @@
+
+ ret = unw_step(ui->cursor);
+ if (ret > 0) {
+- uint64_t ip;
++ unw_word_t ip;
+
+ unw_get_reg(ui->cursor, UNW_REG_IP, &ip);
+
+@@ -290,7 +290,7 @@
+ */
+ --ip;
+ }
+- ui->ips[ui->cur_ip++] = ip;
++ ui->ips[ui->cur_ip++] = (uint64_t)ip;
+ }
+ return ret;
+ #else
+--- linux-7.2/tools/perf/util/libunwind-arch/libunwind-ppc32.c.orig
++++ linux-7.2/tools/perf/util/libunwind-arch/libunwind-ppc32.c
+@@ -281,7 +281,7 @@
+
+ ret = unw_step(ui->cursor);
+ if (ret > 0) {
+- uint64_t ip;
++ unw_word_t ip;
+
+ unw_get_reg(ui->cursor, UNW_REG_IP, &ip);
+
+@@ -294,7 +294,7 @@
+ */
+ --ip;
+ }
+- ui->ips[ui->cur_ip++] = ip;
++ ui->ips[ui->cur_ip++] = (uint64_t)ip;
+ }
+ return ret;
+ #else
+--- linux-7.2/tools/perf/util/libunwind-arch/libunwind-ppc64.c.orig
++++ linux-7.2/tools/perf/util/libunwind-arch/libunwind-ppc64.c
+@@ -281,7 +281,7 @@
+
+ ret = unw_step(ui->cursor);
+ if (ret > 0) {
+- uint64_t ip;
++ unw_word_t ip;
+
+ unw_get_reg(ui->cursor, UNW_REG_IP, &ip);
+
+@@ -294,7 +294,7 @@
+ */
+ --ip;
+ }
+- ui->ips[ui->cur_ip++] = ip;
++ ui->ips[ui->cur_ip++] = (uint64_t)ip;
+ }
+ return ret;
+ #else
+--- linux-7.2/tools/perf/util/libunwind-arch/libunwind-riscv.c.orig
++++ linux-7.2/tools/perf/util/libunwind-arch/libunwind-riscv.c
+@@ -275,7 +275,7 @@
+
+ ret = unw_step(ui->cursor);
+ if (ret > 0) {
+- uint64_t ip;
++ unw_word_t ip;
+
+ unw_get_reg(ui->cursor, UNW_REG_IP, &ip);
+
+@@ -288,7 +288,7 @@
+ */
+ --ip;
+ }
+- ui->ips[ui->cur_ip++] = ip;
++ ui->ips[ui->cur_ip++] = (uint64_t)ip;
+ }
+ return ret;
+ #else
+--- linux-7.2/tools/perf/util/libunwind-arch/libunwind-s390.c.orig
++++ linux-7.2/tools/perf/util/libunwind-arch/libunwind-s390.c
+@@ -277,7 +277,7 @@
+
+ ret = unw_step(ui->cursor);
+ if (ret > 0) {
+- uint64_t ip;
++ unw_word_t ip;
+
+ unw_get_reg(ui->cursor, UNW_REG_IP, &ip);
+
+@@ -290,7 +290,7 @@
+ */
+ --ip;
+ }
+- ui->ips[ui->cur_ip++] = ip;
++ ui->ips[ui->cur_ip++] = (uint64_t)ip;
+ }
+ return ret;
+ #else
+--- linux-7.2/tools/perf/util/libunwind-arch/libunwind-x86_64.c.orig
++++ linux-7.2/tools/perf/util/libunwind-arch/libunwind-x86_64.c
+@@ -298,7 +298,7 @@
+
+ ret = unw_step(ui->cursor);
+ if (ret > 0) {
+- uint64_t ip;
++ unw_word_t ip;
+
+ unw_get_reg(ui->cursor, UNW_REG_IP, &ip);
+
+@@ -311,7 +311,7 @@
+ */
+ --ip;
+ }
+- ui->ips[ui->cur_ip++] = ip;
++ ui->ips[ui->cur_ip++] = (uint64_t)ip;
+ }
+ return ret;
+ #else
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/kernel-tools.git/commitdiff/a9b47a8f5408462e1d2500427c62638fc73a0114
More information about the pld-cvs-commit
mailing list