Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 12 Dec 2002 18:26:13 +0000 (18:26 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 12 Dec 2002 18:26:13 +0000 (18:26 +0000)
2002-12-12  Ulrich Drepper  <drepper@redhat.com>

* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
access to __libc_locking_needed for PIC.

nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
sysdeps/unix/sysv/linux/i386/sysdep.h

index 5b2f6c6..377731d 100644 (file)
@@ -1,3 +1,8 @@
+2002-12-12  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
+       access to __libc_locking_needed for PIC.
+
 2002-12-12  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
index 9a124ab..1075909 100644 (file)
@@ -48,7 +48,13 @@ __lll_lock_wait:
 
        orl     $-1, %eax       /* Load -1.  */
 #ifndef UP
+# ifdef PIC
+       call    __i686.get_pc_thunk.bx
+       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       cmpl    $0, __libc_locking_needed@GOTOFF(%ebx)
+# else
        cmpl    $0, __libc_locking_needed
+# endif
        je,pt   0f
        lock
 0:
@@ -77,7 +83,13 @@ lll_unlock_wake_cb:
 
        movl    20(%esp), %ebx
 #ifndef UP
+# ifdef PIC
+       call    __i686.get_pc_thunk.bx
+       addl    $_GLOBAL_OFFSET_TABLE_, %ebx
+       cmpl    $0, __libc_locking_needed@GOTOFF(%ebx)
+# else
        cmpl    $0, __libc_locking_needed
+# endif
        je,pt   0f
        lock
 0:
@@ -182,3 +194,12 @@ __lll_timedwait_tid:
 6:     movl    $ETIMEDOUT, %eax
        jmp     3b
        .size   __lll_timedwait_tid,.-__lll_timedwait_tid
+
+
+       .section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits
+       .globl __i686.get_pc_thunk.bx
+       .hidden __i686.get_pc_thunk.bx
+       .type __i686.get_pc_thunk.bx,@function
+__i686.get_pc_thunk.bx:
+       movl    (%esp), %ebx
+       ret
index 395121e..7bf146e 100644 (file)
@@ -94,6 +94,7 @@
 __i686.get_pc_thunk.reg:                                                     \
   movl (%esp), %e##reg;                                                              \
   ret;                                                                       \
+  .size __i686.get_pc_thunk.reg, . - __i686.get_pc_thunk.reg;                \
   .previous;                                                                 \
   call __i686.get_pc_thunk.reg
 # endif