routine instead of an alias to __new_sem_post.
2007-10-17 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
routine instead of an alias to __new_sem_post.
+2007-10-17 Jakub Jelinek <jakub@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
+ routine instead of an alias to __new_sem_post.
+
2007-10-15 Jakub Jelinek <jakub@redhat.com>
* init.c (__pthread_initialize_minimal): Initialize word to appease
versioned_symbol(libpthread, __new_sem_post, sem_post, GLIBC_2_1)
#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
.global __old_sem_post
-__old_sem_post = __new_sem_post
+ .type __old_sem_post,@function
+__old_sem_post:
+ pushl %ebx
+
+ movl 8(%esp), %ebx
+ LOCK
+ addl $1, (%ebx)
+
+ movl $SYS_futex, %eax
+ movl $FUTEX_WAKE, %ecx
+ movl $1, %edx
+ ENTER_KERNEL
+
+ testl %eax, %eax
+ js 1b
+
+ xorl %eax, %eax
+ popl %ebx
+ ret
+ .size __old_sem_post,.-__old_sem_post
compat_symbol(libpthread, __old_sem_post, sem_post, GLIBC_2_0)
#endif