summary refs log tree commit diff
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.tar.gz
glibc-a218c9cfe3cda7f6e427651cfcb0cd6d27ac933e.tar.xz
glibc-a218c9cfe3cda7f6e427651cfcb0cd6d27ac933e.zip
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 d65839fa6b..fdfcf7c580 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 bfec6fa155..dd7d34e30f 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