r6854 - in glibc-package/trunk/debian: . patches patches/hurd-i386
Author: sthibault
Date: 2016-01-03 03:29:25 +0000 (Sun, 03 Jan 2016)
New Revision: 6854
Added:
glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread-sigstate.diff
Modified:
glibc-package/trunk/debian/changelog
glibc-package/trunk/debian/patches/series
Log:
* patches/hurd-i386/cvs-libpthread-sigstate.diff: New patch to fix spurious
signal blocking leading to sigill. Fixes rsyslog tests.
Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog 2016-01-02 13:53:21 UTC (rev 6853)
+++ glibc-package/trunk/debian/changelog 2016-01-03 03:29:25 UTC (rev 6854)
@@ -7,6 +7,10 @@
* Update French debconf translation, by Christian Perrier. Closes:
#809636.
+ [ Samuel Thibault ]
+ * patches/hurd-i386/cvs-libpthread-sigstate.diff: New patch to fix spurious
+ signal blocking leading to sigill. Fixes rsyslog tests.
+
-- Aurelien Jarno <aurel32@debian.org> Fri, 25 Dec 2015 03:38:46 +0100
glibc (2.21-6) unstable; urgency=medium
Added: glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread-sigstate.diff
===================================================================
--- glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread-sigstate.diff (rev 0)
+++ glibc-package/trunk/debian/patches/hurd-i386/cvs-libpthread-sigstate.diff 2016-01-03 03:29:25 UTC (rev 6854)
@@ -0,0 +1,57 @@
+commit 6106225fdc09f013ec4f7b1d7ec82780061c8a14
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Sun Jan 3 04:20:02 2016 +0100
+
+ Do not block unmaskable signals
+
+ * sysdeps/mach/hurd/pt-sigstate.c (__pthread_sigstate): Always remove
+ _SIG_CANT_MASK from blocked signals, like sigprocmask does.
+
+--- a/libpthread/sysdeps/mach/hurd/pt-sigstate.c
++++ b/libpthread/sysdeps/mach/hurd/pt-sigstate.c
+@@ -43,24 +43,27 @@ __pthread_sigstate (struct __pthread *thread, int how,
+ *oset = ss->blocked;
+
+ if (set)
+- switch (how)
+- {
+- case SIG_BLOCK:
+- ss->blocked |= *set;
+- break;
+-
+- case SIG_SETMASK:
+- ss->blocked = *set;
+- break;
+-
+- case SIG_UNBLOCK:
+- ss->blocked &= ~*set;
+- break;
+-
+- default:
+- err = EINVAL;
+- break;
+- }
++ {
++ switch (how)
++ {
++ case SIG_BLOCK:
++ ss->blocked |= *set;
++ break;
++
++ case SIG_SETMASK:
++ ss->blocked = *set;
++ break;
++
++ case SIG_UNBLOCK:
++ ss->blocked &= ~*set;
++ break;
++
++ default:
++ err = EINVAL;
++ break;
++ }
++ ss->blocked &= ~_SIG_CANT_MASK;
++ }
+
+ if (! err && clear_pending)
+ __sigemptyset (&ss->pending);
Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series 2016-01-02 13:53:21 UTC (rev 6853)
+++ glibc-package/trunk/debian/patches/series 2016-01-03 03:29:25 UTC (rev 6854)
@@ -168,6 +168,7 @@
hurd-i386/local-mach_print.diff
hurd-i386/cvs-hidden.diff
hurd-i386/cvs-libpthread-api.diff
+hurd-i386/cvs-libpthread-sigstate.diff
i386/local-biarch.diff
i386/local-cmov.diff
Reply to: