r5897 - in glibc-package/branches/eglibc-2.18/debian: . patches patches/hurd-i386
Author: sthibault
Date: 2013-12-31 12:21:04 +0000 (Tue, 31 Dec 2013)
New Revision: 5897
Added:
glibc-package/branches/eglibc-2.18/debian/patches/hurd-i386/tg-sigstate_locking.diff
Modified:
glibc-package/branches/eglibc-2.18/debian/changelog
glibc-package/branches/eglibc-2.18/debian/patches/series
Log:
patches/hurd-i386/tg-sigstate_locking.diff: New patch to fix sigstate creation.
Modified: glibc-package/branches/eglibc-2.18/debian/changelog
===================================================================
--- glibc-package/branches/eglibc-2.18/debian/changelog 2013-12-31 12:18:03 UTC (rev 5896)
+++ glibc-package/branches/eglibc-2.18/debian/changelog 2013-12-31 12:21:04 UTC (rev 5897)
@@ -18,6 +18,8 @@
[ Samuel Thibault ]
* patches/hurd-i386/tg-nfds-poll.diff: New patch to fix poll call with big
array.
+ * patches/hurd-i386/tg-sigstate_locking.diff: New patch to fix sigstate
+ creation.
-- Adam Conrad <adconrad@ubuntu.com> Tue, 10 Dec 2013 01:59:47 -0700
Added: glibc-package/branches/eglibc-2.18/debian/patches/hurd-i386/tg-sigstate_locking.diff
===================================================================
--- glibc-package/branches/eglibc-2.18/debian/patches/hurd-i386/tg-sigstate_locking.diff (rev 0)
+++ glibc-package/branches/eglibc-2.18/debian/patches/hurd-i386/tg-sigstate_locking.diff 2013-12-31 12:21:04 UTC (rev 5897)
@@ -0,0 +1,34 @@
+From: Richard Braun <rbraun@sceen.net>
+Subject: [PATCH] Hurd: fix sigstate locking
+
+It looks like _hurd_thread_sigstate used to return with the sigstate
+lock held long ago, but since that's no longer the case, don't unlock
+something that isn't locked.
+
+Note that it's unlikely this change fixes anything in practice since
+its current implementation (on i386) makes this call a nop.
+
+* hurd/hurd/signal.h (_hurd_critical_section_lock): Don't unlock
+sigstate.
+
+---
+ hurd/hurd/signal.h | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h
+index d4079ef..13c5f0e 100644
+--- a/hurd/hurd/signal.h
++++ b/hurd/hurd/signal.h
+@@ -175,9 +175,8 @@ _hurd_critical_section_lock (void)
+ /* The thread variable is unset; this must be the first time we've
+ asked for it. In this case, the critical section flag cannot
+ possible already be set. Look up our sigstate structure the slow
+- way; this locks the sigstate lock. */
++ way. */
+ ss = *location = _hurd_thread_sigstate (__mach_thread_self ());
+- __spin_unlock (&ss->lock);
+ }
+
+ if (! __spin_try_lock (&ss->critical_section_lock))
+--
+tg: (9a079e2..) t/sigstate_locking (depends on: baseline)
Modified: glibc-package/branches/eglibc-2.18/debian/patches/series
===================================================================
--- glibc-package/branches/eglibc-2.18/debian/patches/series 2013-12-31 12:18:03 UTC (rev 5896)
+++ glibc-package/branches/eglibc-2.18/debian/patches/series 2013-12-31 12:21:04 UTC (rev 5897)
@@ -144,6 +144,7 @@
hurd-i386/cvs-libpthread-userstack.diff
hurd-i386/tg-libc_getspecific.diff
hurd-i386/tg-nfds-poll.diff
+hurd-i386/tg-sigstate_locking.diff
i386/local-biarch.diff
i386/local-cmov.diff
Reply to: