mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
2004-10-04 Roland McGrath <roland@redhat.com>
* include/errno.h [RTLD_PRIVATE_ERRNO] (errno): Rename the real symbol to rtld_errno. * sysdeps/generic/errno.c [RTLD_PRIVATE_ERRNO] (rtld_errno): Define it, and don't define any other errno names. * sysdeps/unix/alpha/sysdep.h [RTLD_PRIVATE_ERRNO]: Use rtld_errno in place of errno. * sysdeps/unix/i386/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/i386/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/ia64/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/m68k/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/s390/s390-32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/s390/s390-64/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sh/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/x86_64/sysdep.h: Likewise. * sysdeps/unix/x86_64/sysdep.S: Likewise.
This commit is contained in:
@ -14,8 +14,8 @@
|
|||||||
so a single (hidden) global variable is all it needs. */
|
so a single (hidden) global variable is all it needs. */
|
||||||
|
|
||||||
# undef errno
|
# undef errno
|
||||||
# define errno errno /* For #ifndef errno tests. */
|
# define errno rtld_errno
|
||||||
extern int errno attribute_hidden;
|
extern int rtld_errno attribute_hidden;
|
||||||
|
|
||||||
# else
|
# else
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@
|
|||||||
#if RTLD_PRIVATE_ERRNO
|
#if RTLD_PRIVATE_ERRNO
|
||||||
# define SYSCALL_ERROR_LABEL $syscall_error
|
# define SYSCALL_ERROR_LABEL $syscall_error
|
||||||
# define SYSCALL_ERROR_HANDLER \
|
# define SYSCALL_ERROR_HANDLER \
|
||||||
stl v0, errno(gp) !gprel; \
|
stl v0, rtld_errno(gp) !gprel; \
|
||||||
lda v0, -1; \
|
lda v0, -1; \
|
||||||
ret
|
ret
|
||||||
#elif defined(PIC)
|
#elif defined(PIC)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 2000, 2002
|
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 2000, 2002, 2004
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ notb:
|
|||||||
popl %ebx
|
popl %ebx
|
||||||
movl %eax, %gs:0(%ecx)
|
movl %eax, %gs:0(%ecx)
|
||||||
# elif RTLD_PRIVATE_ERRNO
|
# elif RTLD_PRIVATE_ERRNO
|
||||||
movl %eax, C_SYMBOL_NAME(errno@GOTOFF)(%ebx)
|
movl %eax, C_SYMBOL_NAME(rtld_errno@GOTOFF)(%ebx)
|
||||||
|
|
||||||
/* Pop %ebx value saved before jumping here. */
|
/* Pop %ebx value saved before jumping here. */
|
||||||
popl %ebx
|
popl %ebx
|
||||||
|
@ -136,7 +136,7 @@ __i686.get_pc_thunk.reg: \
|
|||||||
addl $_GLOBAL_OFFSET_TABLE_, %ecx; \
|
addl $_GLOBAL_OFFSET_TABLE_, %ecx; \
|
||||||
xorl %edx, %edx; \
|
xorl %edx, %edx; \
|
||||||
subl %eax, %edx; \
|
subl %eax, %edx; \
|
||||||
movl %edx, errno@GOTOFF(%ecx); \
|
movl %edx, rtld_errno@GOTOFF(%ecx); \
|
||||||
orl $-1, %eax; \
|
orl $-1, %eax; \
|
||||||
jmp L(pseudo_end);
|
jmp L(pseudo_end);
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ ENTRY(__syscall_error)
|
|||||||
* be fine. Otherwise, we would have to first load the global
|
* be fine. Otherwise, we would have to first load the global
|
||||||
* pointer register from __gp.
|
* pointer register from __gp.
|
||||||
*/
|
*/
|
||||||
addl r2=@gprel(errno),gp
|
addl r2=@gprel(rtld_errno),gp
|
||||||
;;
|
;;
|
||||||
st4 [r2]=r8
|
st4 [r2]=r8
|
||||||
mov r8=-1
|
mov r8=-1
|
||||||
|
@ -98,7 +98,7 @@
|
|||||||
# if RTLD_PRIVATE_ERRNO
|
# if RTLD_PRIVATE_ERRNO
|
||||||
# define SYSCALL_ERROR_HANDLER \
|
# define SYSCALL_ERROR_HANDLER \
|
||||||
SYSCALL_ERROR_LABEL: \
|
SYSCALL_ERROR_LABEL: \
|
||||||
lea (errno, %pc), %a0; \
|
lea (rtld_errno, %pc), %a0; \
|
||||||
neg.l %d0; \
|
neg.l %d0; \
|
||||||
move.l %d0, (%a0); \
|
move.l %d0, (%a0); \
|
||||||
move.l &-1, %d0; \
|
move.l &-1, %d0; \
|
||||||
|
@ -82,7 +82,7 @@ ENTRY(__syscall_error)
|
|||||||
st %r2,0(%r1)
|
st %r2,0(%r1)
|
||||||
lhi %r2,-1
|
lhi %r2,-1
|
||||||
br %r14
|
br %r14
|
||||||
1: .long errno - 0b
|
1: .long rtld_errno - 0b
|
||||||
# elif USE___THREAD
|
# elif USE___THREAD
|
||||||
# ifndef NOT_IN_libc
|
# ifndef NOT_IN_libc
|
||||||
# define SYSCALL_ERROR_ERRNO __libc_errno
|
# define SYSCALL_ERROR_ERRNO __libc_errno
|
||||||
|
@ -97,7 +97,7 @@
|
|||||||
st %r2,0(%r1); \
|
st %r2,0(%r1); \
|
||||||
lhi %r2,-1; \
|
lhi %r2,-1; \
|
||||||
br %r14; \
|
br %r14; \
|
||||||
2: .long errno-1b
|
2: .long rtld_errno-1b
|
||||||
# elif defined _LIBC_REENTRANT
|
# elif defined _LIBC_REENTRANT
|
||||||
# if USE___THREAD
|
# if USE___THREAD
|
||||||
# ifndef NOT_IN_libc
|
# ifndef NOT_IN_libc
|
||||||
|
@ -74,7 +74,7 @@ ENTRY(__syscall_error)
|
|||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
# if RTLD_PRIVATE_ERRNO
|
# if RTLD_PRIVATE_ERRNO
|
||||||
larl %r1,errno
|
larl %r1,rtld_errno
|
||||||
lcr %r2,%r2
|
lcr %r2,%r2
|
||||||
st %r2,0(%r1)
|
st %r2,0(%r1)
|
||||||
lghi %r2,-1
|
lghi %r2,-1
|
||||||
@ -100,7 +100,7 @@ ENTRY(__syscall_error)
|
|||||||
lcr %r2,%r2
|
lcr %r2,%r2
|
||||||
st %r2,0(%r1)
|
st %r2,0(%r1)
|
||||||
lghi %r2,-1
|
lghi %r2,-1
|
||||||
br %r14
|
br %r14
|
||||||
# else
|
# else
|
||||||
stmg %r13,%r15,104(%r15)
|
stmg %r13,%r15,104(%r15)
|
||||||
cfi_offset (%r15,-40)
|
cfi_offset (%r15,-40)
|
||||||
|
@ -101,7 +101,7 @@
|
|||||||
# if RTLD_PRIVATE_ERRNO
|
# if RTLD_PRIVATE_ERRNO
|
||||||
# define SYSCALL_ERROR_LABEL 0f
|
# define SYSCALL_ERROR_LABEL 0f
|
||||||
# define SYSCALL_ERROR_HANDLER \
|
# define SYSCALL_ERROR_HANDLER \
|
||||||
0: larl %r1,errno; \
|
0: larl %r1,rtld_errno; \
|
||||||
lcr %r2,%r2; \
|
lcr %r2,%r2; \
|
||||||
st %r2,0(%r1); \
|
st %r2,0(%r1); \
|
||||||
lghi %r2,-1; \
|
lghi %r2,-1; \
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/* Copyright (C) 1992, 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2002,
|
/* Copyright (C) 1992,1993,1995,1996,1997,1998,1999,2000,2002,2003,2004
|
||||||
2003, 2004 Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
This file is part of the GNU C Library.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
|
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
|
||||||
Changed by Kaz Kojima, <kkojima@rr.iij4u.or.jp>.
|
Changed by Kaz Kojima, <kkojima@rr.iij4u.or.jp>.
|
||||||
@ -109,7 +109,7 @@
|
|||||||
mov _IMM1,r0; \
|
mov _IMM1,r0; \
|
||||||
.align 2; \
|
.align 2; \
|
||||||
0: .long _GLOBAL_OFFSET_TABLE_; \
|
0: .long _GLOBAL_OFFSET_TABLE_; \
|
||||||
1: .long errno@GOTOFF
|
1: .long rtld_errno@GOTOFF
|
||||||
|
|
||||||
# elif defined _LIBC_REENTRANT
|
# elif defined _LIBC_REENTRANT
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler) \
|
|||||||
sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7; \
|
sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7; \
|
||||||
call __sparc_get_pic_l7; \
|
call __sparc_get_pic_l7; \
|
||||||
add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7; \
|
add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7; \
|
||||||
ld [%l7 + errno], %l0; \
|
ld [%l7 + rtld_errno], %l0; \
|
||||||
st %i0, [%l0]; \
|
st %i0, [%l0]; \
|
||||||
jmpl %i7+8, %g0; \
|
jmpl %i7+8, %g0; \
|
||||||
restore %g0, -1, %o0; \
|
restore %g0, -1, %o0; \
|
||||||
|
@ -118,7 +118,7 @@
|
|||||||
#elif RTLD_PRIVATE_ERRNO
|
#elif RTLD_PRIVATE_ERRNO
|
||||||
# define SYSCALL_ERROR_HANDLER \
|
# define SYSCALL_ERROR_HANDLER \
|
||||||
0: \
|
0: \
|
||||||
leaq errno(%rip), %rcx; \
|
leaq rtld_errno(%rip), %rcx; \
|
||||||
xorq %rdx, %rdx; \
|
xorq %rdx, %rdx; \
|
||||||
subq %rax, %rdx; \
|
subq %rax, %rdx; \
|
||||||
movl %edx, (%rcx); \
|
movl %edx, (%rcx); \
|
||||||
|
@ -67,7 +67,7 @@ notb:
|
|||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
# if RTLD_PRIVATE_ERRNO
|
# if RTLD_PRIVATE_ERRNO
|
||||||
leaq errno(%rip), %rcx
|
leaq rtld_errno(%rip), %rcx
|
||||||
movl %eax, (%rcx)
|
movl %eax, (%rcx)
|
||||||
# elif !defined _LIBC_REENTRANT
|
# elif !defined _LIBC_REENTRANT
|
||||||
movq C_SYMBOL_NAME(errno)@GOTPCREL(%rip), %rcx
|
movq C_SYMBOL_NAME(errno)@GOTPCREL(%rip), %rcx
|
||||||
|
Reference in New Issue
Block a user