Don't use __libc_locking_needed, use multiple_threads field in TCB.
authordrepper <drepper>
Fri, 13 Dec 2002 10:53:45 +0000 (10:53 +0000)
committerdrepper <drepper>
Fri, 13 Dec 2002 10:53:45 +0000 (10:53 +0000)
nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S

index 65e39e7..27275e3 100644 (file)
@@ -18,6 +18,7 @@
    02111-1307 USA.  */
 
 #include <sysdep.h>
+#include <tls.h>
 
        .text
 
@@ -48,13 +49,7 @@ __lll_lock_wait:
 
        orl     $-1, %eax       /* Load -1.  */
 #ifndef UP
-# ifdef PIC
-       call    __i686.get_pc_thunk.dx
-       addl    $_GLOBAL_OFFSET_TABLE_, %edx
-       cmpl    $0, __libc_locking_needed@GOTOFF(%edx)
-# else
-       cmpl    $0, __libc_locking_needed
-# endif
+       cmpl    $0, %gs:MULTIPLE_THREADS_OFFSET
        je,pt   0f
        lock
 0:
@@ -83,13 +78,7 @@ lll_unlock_wake_cb:
 
        movl    20(%esp), %ebx
 #ifndef UP
-# ifdef PIC
-       call    __i686.get_pc_thunk.dx
-       addl    $_GLOBAL_OFFSET_TABLE_, %edx
-       cmpl    $0, __libc_locking_needed@GOTOFF(%edx)
-# else
-       cmpl    $0, __libc_locking_needed
-# endif
+       cmpl    $0, %gs:MULTIPLE_THREADS_OFFSET
        je,pt   0f
        lock
 0: