r3536 - in glibc-package/branches/eglibc-2.10/debian: . patches/hurd-i386
Author: aurel32
Date: 2009-05-26 07:02:18 +0000 (Tue, 26 May 2009)
New Revision: 3536
Modified:
glibc-package/branches/eglibc-2.10/debian/changelog
glibc-package/branches/eglibc-2.10/debian/patches/hurd-i386/local-atomic-no-multiple_threads.diff
Log:
- Update debian/patches/hurd-i386/local-atomic-no-multiple_threads.diff.
Modified: glibc-package/branches/eglibc-2.10/debian/changelog
===================================================================
--- glibc-package/branches/eglibc-2.10/debian/changelog 2009-05-26 06:35:17 UTC (rev 3535)
+++ glibc-package/branches/eglibc-2.10/debian/changelog 2009-05-26 07:02:18 UTC (rev 3536)
@@ -20,8 +20,9 @@
- Remove debian/patches/hurd-i386/cvs-get_pc_thunk.diff (merged).
- Remove debian/patches/hurd-i386/cvs-strerror_l.diff (merged).
- Remove debian/patches/hurd-i386/cvs-rtld.diff (merged).
- - Update patches/hurd-i386/local-tls-support.diff.
- - Update patches/hurd-i386/submitted-extern_inline.diff.
+ - Update debian/patches/hurd-i386/local-tls-support.diff.
+ - Update debian/patches/hurd-i386/submitted-extern_inline.diff.
+ - Update debian/patches/hurd-i386/local-atomic-no-multiple_threads.diff.
- Remove debian/patches/mips/cvs-context.diff (merged).
- Remove debian/patches/all/submitted-readme-version.diff (merged).
- Remove debian/patches/any/submitted-install-map-files.diff (merged).
Modified: glibc-package/branches/eglibc-2.10/debian/patches/hurd-i386/local-atomic-no-multiple_threads.diff
===================================================================
--- glibc-package/branches/eglibc-2.10/debian/patches/hurd-i386/local-atomic-no-multiple_threads.diff 2009-05-26 06:35:17 UTC (rev 3535)
+++ glibc-package/branches/eglibc-2.10/debian/patches/hurd-i386/local-atomic-no-multiple_threads.diff 2009-05-26 07:02:18 UTC (rev 3536)
@@ -1,10 +1,6 @@
On the Hurd we always at least start the sigthread anyway. Let's avoid forking
the file (which would mean having to maintain it)
----
- sysdeps/i386/i486/bits/atomic.h | 98 +++++++++++++---------------------------
- 1 file changed, 34 insertions(+), 64 deletions(-)
-
--- a/sysdeps/i386/i486/bits/atomic.h
+++ b/sysdeps/i386/i486/bits/atomic.h
@@ -87,35 +87,26 @@
@@ -220,21 +216,21 @@
#define catomic_decrement(mem) \
__arch_decrement_body (__arch_decrement_cprefix, __arch_c, mem)
-@@ -524,18 +497,15 @@
+@@ -505,24 +478,21 @@
if (sizeof (*mem) == 1) \
- __asm __volatile (lock "orb %b1, %0" \
+ __asm __volatile (lock "andb %b1, %0" \
: "=m" (*mem) \
- : "iq" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
+ : "iq" (mask), "m" (*mem)); \
else if (sizeof (*mem) == 2) \
- __asm __volatile (lock "orw %w1, %0" \
+ __asm __volatile (lock "andw %w1, %0" \
: "=m" (*mem) \
- : "ir" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
+ : "ir" (mask), "m" (*mem)); \
else if (sizeof (*mem) == 4) \
- __asm __volatile (lock "orl %1, %0" \
+ __asm __volatile (lock "andl %1, %0" \
: "=m" (*mem) \
- : "ir" (mask), "m" (*mem), \
- "i" (offsetof (tcbhead_t, multiple_threads))); \
@@ -242,11 +238,32 @@
else \
abort (); \
} while (0)
-@@ -543,6 +513,6 @@
- #define atomic_or(mem, mask) __arch_or_body (LOCK_PREFIX, mem, mask)
- #define __arch_or_cprefix \
+ #define __arch_cprefix \
- "cmpl $0, %%gs:%P3\n\tje 0f\n\tlock\n0:\t"
+ "lock\n\t"
- #define catomic_or(mem, mask) __arch_or_body (__arch_or_cprefix, mem, mask)
+ #define atomic_and(mem, mask) __arch_and_body (LOCK_PREFIX, mem, mask)
+
+@@ -534,18 +504,15 @@
+ if (sizeof (*mem) == 1) \
+ __asm __volatile (lock "orb %b1, %0" \
+ : "=m" (*mem) \
+- : "iq" (mask), "m" (*mem), \
+- "i" (offsetof (tcbhead_t, multiple_threads))); \
++ : "iq" (mask), "m" (*mem)); \
+ else if (sizeof (*mem) == 2) \
+ __asm __volatile (lock "orw %w1, %0" \
+ : "=m" (*mem) \
+- : "ir" (mask), "m" (*mem), \
+- "i" (offsetof (tcbhead_t, multiple_threads))); \
++ : "ir" (mask), "m" (*mem)); \
+ else if (sizeof (*mem) == 4) \
+ __asm __volatile (lock "orl %1, %0" \
+ : "=m" (*mem) \
+- : "ir" (mask), "m" (*mem), \
+- "i" (offsetof (tcbhead_t, multiple_threads))); \
++ : "ir" (mask), "m" (*mem)); \
+ else \
+ abort (); \
+ } while (0)
Reply to: