[packages/kernel-tools] Rel 4; follow fedora way (changes in 7.2 broke too many things); disable x32 here on x86_64

arekm arekm at pld-linux.org
Sun Aug 23 02:39:51 CEST 2026


commit 19819cfd6724b8abae888746c368d68e56b09dc1
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Sun Aug 23 02:39:40 2026 +0200

    Rel 4; follow fedora way (changes in 7.2 broke too many things); disable x32 here on x86_64

 kernel-tools-perf-libunwind-word.patch | 203 ---------------------------------
 kernel-tools.spec                      |  40 +------
 2 files changed, 4 insertions(+), 239 deletions(-)
---
diff --git a/kernel-tools.spec b/kernel-tools.spec
index eece216..800085f 100644
--- a/kernel-tools.spec
+++ b/kernel-tools.spec
@@ -9,7 +9,7 @@
 %bcond_without	cpupower	# cpupower tools
 %bcond_without	perf		# perf tools
 %bcond_without	gtk		# GTK+ 2.x perf support
-%bcond_without	libunwind	# libunwind perf support
+%bcond_with	libunwind	# libunwind unwinder in perf (default: libdw only)
 %bcond_without	multilib	# multilib perf support
 %bcond_without	usbip		# usbip utils
 
@@ -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:	3
+Release:	4
 License:	GPL v2
 Group:		Applications/System
 Source0:	https://www.kernel.org/pub/linux/kernel/v7.x/linux-%{basever}.tar.xz
@@ -40,7 +40,6 @@ Patch2:		regex.patch
 Patch3:		%{name}-perf-update.patch
 Patch4:		%{name}-perf-gtk2.patch
 Patch5:		%{name}-perf-slang.patch
-Patch6:		%{name}-perf-libunwind-word.patch
 Patch7:		%{name}-iio-float16.patch
 URL:		https://www.kernel.org/
 BuildRequires:	asciidoc
@@ -72,7 +71,6 @@ BuildRequires:	clang >= 12.0.1
 BuildRequires:	elfutils-devel >= 0.158
 %if %{with multilib}
 BuildRequires:	gcc-multilib-32
-BuildRequires:	gcc-multilib-x32
 %endif
 BuildRequires:	libbpf-devel
 BuildRequires:	libcap-devel
@@ -267,31 +265,6 @@ przez nowe wersje jądra Linuksa.
 Ten pakiet zawiera narzędzie perf-read-vdso32 do odczytu VDSO dla
 binariów 32-bitowych w trybie 64-bitowym.
 
-%package perf-vdsox32
-Summary:	perf profiler tool - VDSO x32 ABI reader
-Summary(pl.UTF-8):	Narzędzie profilujące perf - odczyt VDSO dla ABI x32
-Group:		Applications/System
-Requires:	%{name}-perf = %{version}-%{release}
-
-%description perf-vdsox32
-Perf is a profiler tool for Linux 2.6+ based systems that abstracts
-away CPU hardware differences in Linux performance measurements and
-presents a simple commandline interface. Perf is based on the
-perf_events interface exported by recent versions of the Linux kernel.
-
-This package contains perf-read-vdso32 tool for reading the x32 mode
-32-bit compatibility VDSO in 64-bit mode.
-
-%description perf-vdsox32 -l pl.UTF-8
-Perf to narzędzie profilujące dla systemów opartych na Linuksie 2.6+,
-odseparowujące od różnic sprzętowych między pomiarami wydajności w
-zależności od procesora oraz udostępniające prosty interfejs linii
-poleceń. Perf jest oparty na interfejsie perf_events eksportowanym
-przez nowe wersje jądra Linuksa.
-
-Ten pakiet zawiera narzędzie perf-read-vdso32 do odczytu VDSO dla
-binariów ABI x32 w trybie 64-bitowym.
-
 %package perf-gtk
 Summary:	perf profiler tool (GTK+ 2 GUI)
 Summary(pl.UTF-8):	Narzędzie profilujące perf (interfejs graficzny GTK+ 2)
@@ -437,7 +410,6 @@ cd linux-%{basever}
 %patch -P3 -p1
 %patch -P4 -p1
 %patch -P5 -p1
-%patch -P6 -p1
 %patch -P7 -p1
 
 %{__sed} -i -e 's#libexec/perf-core#%{_lib}/perf-core#g' tools/perf/Makefile.config
@@ -502,7 +474,7 @@ CXXFLAGS="%{rpmcxxflags}" \
 %{__make} -C tools/perf all man \
 %ifarch %{x8664}
 	IS_X86_64=1 \
-	%{!?with_multilib:NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1} \
+	NO_PERF_READ_VDSOX32=1 %{!?with_multilib:NO_PERF_READ_VDSO32=1} \
 %endif
 	%{?with_gtk:GTK2=1} \
 	%{?with_libunwind:LIBUNWIND=1} %{!?with_libunwind:NO_LIBUNWIND=1} \
@@ -630,7 +602,7 @@ CXXFLAGS="%{rpmcxxflags}" \
 %{__make} -C tools/perf install \
 %ifarch %{x8664}
 	IS_X86_64=1 \
-	%{!?with_multilib:NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX32=1} \
+	NO_PERF_READ_VDSOX32=1 %{!?with_multilib:NO_PERF_READ_VDSO32=1} \
 %endif
 	%{?with_gtk:GTK2=1} \
 	%{?with_libunwind:LIBUNWIND=1} %{!?with_libunwind:NO_LIBUNWIND=1} \
@@ -869,10 +841,6 @@ rm -rf $RPM_BUILD_ROOT
 %files perf-vdso32
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/perf-read-vdso32
-
-%files perf-vdsox32
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/perf-read-vdsox32
 %endif
 
 %if %{with gtk}
diff --git a/kernel-tools-perf-libunwind-word.patch b/kernel-tools-perf-libunwind-word.patch
deleted file mode 100644
index 2ce1d5c..0000000
--- a/kernel-tools-perf-libunwind-word.patch
+++ /dev/null
@@ -1,203 +0,0 @@
-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/19819cfd6724b8abae888746c368d68e56b09dc1



More information about the pld-cvs-commit mailing list