diff --git a/2590.patch b/2590.patch new file mode 100644 index 0000000..b890e68 --- /dev/null +++ b/2590.patch @@ -0,0 +1,38 @@ +From de5dba8c47ffe4e16fae17539270d55e1a8604d1 Mon Sep 17 00:00:00 2001 +From: Adrian Reber +Date: Fri, 7 Feb 2025 09:24:19 +0100 +Subject: [PATCH] vdso: handle s390x correctly +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +On s390x there is currently a build failure: + +criu/pie/util-vdso.c: In function ‘elf_symbol_lookup’: +criu/pie/util-vdso.c:313:31: error: initialization of ‘uint32_t *’ {aka ‘unsigned int *’} from incompatible pointer type ‘Hash_t *’ {aka ‘long unsigned int *’} [-Wincompatible-pointer-types] + 313 | uint32_t *h = bucket + nbucket + (j - sym_off); + | ^~~~~~ + +Replacing uint32_t with Hash_t which is defined behind a architecture +specific ifdef solves this error. + +Signed-off-by: Adrian Reber +--- + criu/pie/util-vdso.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/criu/pie/util-vdso.c b/criu/pie/util-vdso.c +index 9819335d81..d16fd85f43 100644 +--- a/criu/pie/util-vdso.c ++++ b/criu/pie/util-vdso.c +@@ -310,8 +310,8 @@ static unsigned long elf_symbol_lookup(uintptr_t mem, size_t size, + addr = mem + dyn_symtab->d_un.d_ptr - load->p_vaddr; + + if (use_gnu_hash) { +- uint32_t *h = bucket + nbucket + (j - sym_off); +- uint32_t hash_val; ++ Hash_t *h = bucket + nbucket + (j - sym_off); ++ Hash_t hash_val; + + symbol_hash |= 1; + do { diff --git a/criu.spec b/criu.spec index 56fcfc2..d066bc9 100644 --- a/criu.spec +++ b/criu.spec @@ -12,7 +12,7 @@ Name: criu Version: 3.19 -Release: 8%{?dist} +Release: 9%{?dist} Summary: Tool for Checkpoint/Restore in User-space License: GPL-2.0-only AND LGPL-2.1-only AND MIT URL: http://criu.org/ @@ -33,6 +33,8 @@ Patch3: https://patch-diff.githubusercontent.com/raw/checkpoint-restore/criu/pul Patch4: 2550.patch # vdso: switch from DT_HASH to DT_GNU_HASH (aarch64) #2570 Patch5: https://patch-diff.githubusercontent.com/raw/checkpoint-restore/criu/pull/2570.patch +# vdso: handle s390x correctly #2590 +Patch6: https://github.com/checkpoint-restore/criu/pull/2590.patch # Add protobuf-c as a dependency. # We use this patch because the protobuf-c package name @@ -120,6 +122,7 @@ This script can help to workaround the so called "PID mismatch" problem. %patch -P 3 -p1 %patch -P 4 -p1 %patch -P 5 -p1 +%patch -P 6 -p1 %patch -P 99 -p1 %build @@ -179,6 +182,9 @@ rm -f $RPM_BUILD_ROOT%{_libdir}/libcriu.a %doc %{_mandir}/man1/criu-ns.1* %changelog +* Fri Feb 07 2025 Adrian Reber - 3.19-9 +- Fix VDSO compile error on s390x + * Tue Feb 04 2025 Adrian Reber - 3.19-8 - Adapt patches to patches merged upstream - Fix running on aarch64