summaryrefslogtreecommitdiff
path: root/libc/sysdeps/unix/i386/sysdep.S
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2011-10-25 00:37:10 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2011-10-25 00:37:10 +0000
commit4bbe4e2185c5484328182720ff7b3bb4f9593bff (patch)
treecd67e40a74928c0f58d4f5b79d2e260e4099fee7 /libc/sysdeps/unix/i386/sysdep.S
parent91b4be71461f78cabe1fb5f164cea71b60e9e98a (diff)
Merge changes between r15223 and r15532 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@15545 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/sysdeps/unix/i386/sysdep.S')
-rw-r--r--libc/sysdeps/unix/i386/sysdep.S43
1 files changed, 5 insertions, 38 deletions
diff --git a/libc/sysdeps/unix/i386/sysdep.S b/libc/sysdeps/unix/i386/sysdep.S
index 3bc872add..9f279e15b 100644
--- a/libc/sysdeps/unix/i386/sysdep.S
+++ b/libc/sysdeps/unix/i386/sysdep.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,1992,1993,1994,1995,1996,1997,2000,2002,2004,2005
+/* Copyright (C) 1991-1997,2000,2002,2004,2005,2011
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -46,57 +46,24 @@ syscall_error:
notb:
#endif
#ifndef PIC
-# if USE___THREAD
-# ifndef NO_TLS_DIRECT_SEG_REFS
+# ifndef NO_TLS_DIRECT_SEG_REFS
movl %eax, %gs:C_SYMBOL_NAME(errno@NTPOFF)
-# else
+# else
movl %gs:0, %ecx
movl %eax, C_SYMBOL_NAME(errno@NTPOFF)(%ecx)
-# endif
-# elif !defined _LIBC_REENTRANT
- movl %eax, C_SYMBOL_NAME(errno)
-# else
- pushl %eax
- PUSH_ERRNO_LOCATION_RETURN
- call BP_SYM (__errno_location)
- POP_ERRNO_LOCATION_RETURN
- popl %ecx
- movl %ecx, (%eax)
# endif
#else
/* The caller has pushed %ebx and then set it up to
point to the GOT before calling us through the PLT. */
-# if USE___THREAD
movl C_SYMBOL_NAME(errno@GOTNTPOFF)(%ebx), %ecx
/* Pop %ebx value saved before jumping here. */
popl %ebx
-# ifndef NO_TLS_DIRECT_SEG_REFS
+# ifndef NO_TLS_DIRECT_SEG_REFS
addl %gs:0, %ecx
movl %eax, (%ecx)
-# else
- movl %eax, %gs:0(%ecx)
-# endif
-# elif RTLD_PRIVATE_ERRNO
- movl %eax, C_SYMBOL_NAME(rtld_errno@GOTOFF)(%ebx)
-
- /* Pop %ebx value saved before jumping here. */
- popl %ebx
-# elif !defined _LIBC_REENTRANT
- movl C_SYMBOL_NAME(errno@GOT)(%ebx), %ecx
-
- /* Pop %ebx value saved before jumping here. */
- popl %ebx
- movl %eax, (%ecx)
# else
- pushl %eax
- PUSH_ERRNO_LOCATION_RETURN
- call C_SYMBOL_NAME (BP_SYM (__errno_location)@PLT)
- POP_ERRNO_LOCATION_RETURN
- popl %ecx
- /* Pop %ebx value saved before jumping here. */
- popl %ebx
- movl %ecx, (%eax)
+ movl %eax, %gs:0(%ecx)
# endif
#endif
movl $-1, %eax