[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#989279: marked as done (unblock: klibc/2.0.8-6.1)



Your message dated Tue, 01 Jun 2021 20:02:58 +0000
with message-id <E1loAbK-0002ku-8P@respighi.debian.org>
and subject line unblock klibc
has caused the Debian Bug report #989279,
regarding unblock: klibc/2.0.8-6.1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
989279: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=989279
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: tg@mirbsd.de

Please unblock package klibc

[ Reason ]
The NMU contains a fix for #943425 (save/restore correct set of
registers across *{set,long}jmp) which is RC on s390x, which is
a release architecture.

[ Impact ]
klibc-built binaries on s390x can malfunction.

[ Tests ]
The mksh testsuite catches this. Today’s mksh upload’s buildd log
on s390x shows that the fix works. An S/390 expert provided the
correct set of registers to save/restore. I’ve compared it to the
glibc implementation afterwards, and it matches, so I believe it
to be correct.

[ Risks ]
klibc is rather critical; it’s part of booting and installing (so
this also needs an udeb unblock). The patch affects s390x only,
as far as I can tell, but I believe it necessary there.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
This will need an udeb unblock; what do I need to do for this?

unblock klibc/2.0.8-6.1
diff -Nru klibc-2.0.8/debian/changelog klibc-2.0.8/debian/changelog
--- klibc-2.0.8/debian/changelog	2021-04-30 03:05:23.000000000 +0200
+++ klibc-2.0.8/debian/changelog	2021-05-27 00:12:10.000000000 +0200
@@ -1,3 +1,11 @@
+klibc (2.0.8-6.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * {set,long}jmp [s390x]: save/restore the correct FPU registers
+    (f8‥f15 not f1/f3/f5/f7) (Closes: #943425)
+
+ -- Thorsten Glaser <tg@mirbsd.de>  Thu, 27 May 2021 00:12:10 +0200
+
 klibc (2.0.8-6) unstable; urgency=medium
 
   * Upload to unstable
diff -Nru klibc-2.0.8/debian/patches/0041-klibc-set-long-jmp-s390x-save-restore-the-correct-re.patch klibc-2.0.8/debian/patches/0041-klibc-set-long-jmp-s390x-save-restore-the-correct-re.patch
--- klibc-2.0.8/debian/patches/0041-klibc-set-long-jmp-s390x-save-restore-the-correct-re.patch	1970-01-01 01:00:00.000000000 +0100
+++ klibc-2.0.8/debian/patches/0041-klibc-set-long-jmp-s390x-save-restore-the-correct-re.patch	2021-05-27 00:11:57.000000000 +0200
@@ -0,0 +1,57 @@
+Description: {set,long}jmp [s390x]: save/restore the correct registers
+ The s390x ABI actually has FPU registers f8‥f15, not f1/f3/f5/f7,
+ to be saved. (Closes: Debian #943425)
+Author: mirabilos <tg@debian.org>
+Forwarded: https://lists.zytor.com/archives/klibc/2021-May/004620.html
+
+--- a/usr/include/arch/s390/klibc/archsetjmp.h
++++ b/usr/include/arch/s390/klibc/archsetjmp.h
+@@ -16,7 +16,7 @@ struct __jmp_buf {
+ 
+ struct __jmp_buf {
+ 	uint64_t __gregs[10]; /* general registers r6-r15 */
+-	uint64_t __fpregs[4]; /* fp registers f1, f3, f5, f7 */
++	uint64_t __fpregs[8]; /* fp registers f8-f15 */
+ };
+ 
+ #endif /* __s390x__ */
+--- a/usr/klibc/arch/s390/setjmp.S
++++ b/usr/klibc/arch/s390/setjmp.S
+@@ -38,10 +38,14 @@ longjmp:
+ 
+ setjmp:
+ 	stmg	%r6,%r15,0(%r2)		# save all general registers
+-	std	%f1,80(%r2)		# save fp registers f4 and f6
+-	std	%f3,88(%r2)
+-	std	%f5,96(%r2)
+-	std	%f7,104(%r2)
++	std	%f8,80(%r2)		# save fp registers f8 to f15
++	std	%f9,88(%r2)
++	std	%f10,96(%r2)
++	std	%f11,104(%r2)
++	std	%f12,112(%r2)
++	std	%f13,120(%r2)
++	std	%f14,128(%r2)
++	std	%f15,136(%r2)
+ 	lghi	%r2,0			# return 0
+ 	br	%r14
+ 
+@@ -54,10 +58,14 @@ setjmp:
+ longjmp:
+ 	lgr	%r1,%r2			# jmp_buf
+ 	lgr	%r2,%r3			# return value
+-	ld	%f7,104(%r1)		# restore all saved registers
+-	ld	%f5,96(%r1)
+-	ld	%f3,88(%r1)
+-	ld	%f1,80(%r1)
++	ld	%f15,136(%r1)		# restore all saved registers
++	ld	%f14,128(%r1)
++	ld	%f13,120(%r1)
++	ld	%f12,112(%r1)
++	ld	%f11,104(%r1)
++	ld	%f10,96(%r1)
++	ld	%f9,88(%r1)
++	ld	%f8,80(%r1)
+ 	lmg	%r6,%r15,0(%r1)
+ 	br	%r14			# return to restored address
+ 
diff -Nru klibc-2.0.8/debian/patches/series klibc-2.0.8/debian/patches/series
--- klibc-2.0.8/debian/patches/series	2021-04-30 02:38:31.000000000 +0200
+++ klibc-2.0.8/debian/patches/series	2021-05-27 00:09:21.000000000 +0200
@@ -10,3 +10,4 @@
 0037-klibc-calloc-Fail-if-multiplication-overflows.patch
 0039-klibc-cpio-Fix-possible-integer-overflow-on-32-bit-s.patch
 0040-klibc-cpio-Fix-possible-crash-on-64-bit-systems.patch
+0041-klibc-set-long-jmp-s390x-save-restore-the-correct-re.patch

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply to: