aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2002-12-25 08:56:55 +0000
committerUlrich Drepper <drepper@redhat.com>2002-12-25 08:56:55 +0000
commita218c9cfe3cda7f6e427651cfcb0cd6d27ac933e (patch)
treea728345bbc1cb63cf1bce63d09783b7a21764aab
parent015a2dc9c518d9eb87df84d1f8f7e64e80b7013b (diff)
downloadglibc-a218c9cfe3cda7f6e427651cfcb0cd6d27ac933e.zip
glibc-a218c9cfe3cda7f6e427651cfcb0cd6d27ac933e.tar.gz
glibc-a218c9cfe3cda7f6e427651cfcb0cd6d27ac933e.tar.bz2
Update.
2002-12-25 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement correct errno access for case that USE___THREAD is not defined.
-rw-r--r--nptl/ChangeLog5
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S22
2 files changed, 27 insertions, 0 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index d65839f..fdfcf7c 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,8 @@
+2002-12-25 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
+ correct errno access for case that USE___THREAD is not defined.
+
2002-12-24 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
index bfec6fa..dd7d34e 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
@@ -80,9 +80,15 @@ __new_sem_wait:
4:
#endif
addl $_GLOBAL_OFFSET_TABLE_, %ebx
+#if USE___THREAD
movl %gs:0, %edx
subl errno@gottpoff(%ebx), %edx
movl %eax, (%edx)
+#else
+ movl %eax, %edx
+ call __errno_location@plt
+ movl %edx, (%eax)
+#endif
orl $-1, %eax
popl %esi
popl %ebx
@@ -121,9 +127,14 @@ __new_sem_trywait:
3:
#endif
addl $_GLOBAL_OFFSET_TABLE_, %ecx
+#if USE___THREAD
movl %gs:0, %edx
subl errno@gottpoff(%ecx), %edx
movl $EAGAIN, (%edx)
+#else
+ call __errno_location@plt
+ movl $EAGAIN, (%eax)
+#endif
orl $-1, %eax
ret
.size __new_sem_trywait,.-__new_sem_trywait
@@ -226,9 +237,15 @@ sem_timedwait:
4:
#endif
addl $_GLOBAL_OFFSET_TABLE_, %ebx
+#if USE___THREAD
movl %gs:0, %edx
subl errno@gottpoff(%ebx), %edx
movl %eax, (%edx)
+#else
+ movl %eax, %edx
+ call __errno_location@plt
+ movl %edx, (%eax)
+#endif
addl $8, %esp
orl $-1, %eax
@@ -272,9 +289,14 @@ __new_sem_post:
4:
#endif
addl $_GLOBAL_OFFSET_TABLE_, %ebx
+#if USE___THREAD
movl %gs:0, %edx
subl errno@gottpoff(%ebx), %edx
movl $EINVAL, (%edx)
+#else
+ call __errno_location@plt
+ movl $EAGAIN, (%eax)
+#endif
orl $-1, %eax
popl %ebx