[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