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

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: