diff options
author | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2011-10-25 00:37:10 +0000 |
---|---|---|
committer | joseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d> | 2011-10-25 00:37:10 +0000 |
commit | 4bbe4e2185c5484328182720ff7b3bb4f9593bff (patch) | |
tree | cd67e40a74928c0f58d4f5b79d2e260e4099fee7 /libc/sysdeps/unix/i386/sysdep.S | |
parent | 91b4be71461f78cabe1fb5f164cea71b60e9e98a (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.S | 43 |
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 |