diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-03-06 11:39:36 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-03-06 11:39:36 +0000 |
commit | ac16e90592f0b9842e193e2ebe0b3756f0b4361d (patch) | |
tree | 0b993b3126a76f47b80cf7254916627be7b55a67 /sysdeps | |
parent | a788b6c2163aa8b7c526a61542d01b7cbbc8859e (diff) | |
download | glibc-ac16e90592f0b9842e193e2ebe0b3756f0b4361d.tar.gz glibc-ac16e90592f0b9842e193e2ebe0b3756f0b4361d.tar.xz glibc-ac16e90592f0b9842e193e2ebe0b3756f0b4361d.zip |
Update.
1998-03-06 11:35 Ulrich Drepper <drepper@cygnus.com> * posix/wordexp-test.c: Change testsuite so that it can run even for ~root != /root. 1998-03-06 Andreas Jaeger <aj@arthur.rhein-neckar.de> * math/libm-test.c (catanh_test): Change epsilon for gcc 2.8.1. 1998-03-05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/sysv/linux/i386/sysdep.h (SYSCALL_ERROR_HANDLER): Don't store into global errno if we already store through __errno_location. * sysdeps/unix/i386/sysdep.S: Likewise. * sysdeps/unix/alpha/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/brk.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h: Likewise. Add missing return to SYSCALL_ERROR_HANDLER for (!_LIBC_REENTRANT && PIC). 1998-03-05 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/generic/sysdep.h (L): Remove definition. * sysdeps/i386/sysdep.h (L): Define it here instead. 1998-03-05 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * nss/getXXbyYY_r.c: Check __nss_not_use_nscd_* variable for running nscd. * nscd/nscd_getgr_r.c: Set __nss_not_use_nscd_group variable. * nscd/nscd_getpw_r.c: Set __nss_not_use_nscd_passwd variable. * nscd/nscd_proto.h: Declare __nss_not_use_nscd_* variables.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/generic/sysdep.h | 5 | ||||
-rw-r--r-- | sysdeps/i386/sysdep.h | 5 | ||||
-rw-r--r-- | sysdeps/unix/alpha/sysdep.S | 3 | ||||
-rw-r--r-- | sysdeps/unix/i386/sysdep.S | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/sysdep.h | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/brk.S | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/clone.S | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h | 19 |
8 files changed, 17 insertions, 32 deletions
diff --git a/sysdeps/generic/sysdep.h b/sysdeps/generic/sysdep.h index 2ba01f4240..276188f188 100644 --- a/sysdeps/generic/sysdep.h +++ b/sysdeps/generic/sysdep.h @@ -41,8 +41,3 @@ #ifndef END #define END(sym) #endif - -/* Local label name for asm code. */ -#ifndef L -#define L(name) name -#endif diff --git a/sysdeps/i386/sysdep.h b/sysdeps/i386/sysdep.h index 563e7dd009..af04c4a229 100644 --- a/sysdeps/i386/sysdep.h +++ b/sysdeps/i386/sysdep.h @@ -120,4 +120,9 @@ lose: SYSCALL_PIC_SETUP \ #define SYSCALL_PIC_SETUP /* Nothing. */ #endif +/* Local label name for asm code. */ +#ifndef L +#define L(name) name +#endif + #endif /* ASSEMBLER */ diff --git a/sysdeps/unix/alpha/sysdep.S b/sysdeps/unix/alpha/sysdep.S index d79c48a9bf..53fc454eb6 100644 --- a/sysdeps/unix/alpha/sysdep.S +++ b/sysdeps/unix/alpha/sysdep.S @@ -48,9 +48,6 @@ __syscall_error: .mask 0x4000001, -16 .prologue 1 - /* Store into the "real" variable. */ - stl v0, errno - /* Find our per-thread errno address */ jsr ra, __errno_location diff --git a/sysdeps/unix/i386/sysdep.S b/sysdeps/unix/i386/sysdep.S index b296bb707a..ff1fc0f431 100644 --- a/sysdeps/unix/i386/sysdep.S +++ b/sysdeps/unix/i386/sysdep.S @@ -39,8 +39,9 @@ syscall_error: notb: #endif #ifndef PIC +#ifndef _LIBC_REENTRANT movl %eax, C_SYMBOL_NAME(errno) -#ifdef _LIBC_REENTRANT +#else pushl %eax call __errno_location popl %ecx @@ -49,14 +50,13 @@ notb: #else /* The caller has pushed %ebx and then set it up to point to the GOT before calling us through the PLT. */ +#ifndef _LIBC_REENTRANT movl C_SYMBOL_NAME(errno@GOT)(%ebx), %ecx -#ifndef _LIBC_REENTRANT /* Pop %ebx value saved before jumping here. */ popl %ebx movl %eax, (%ecx) #else - movl %eax, (%ecx) pushl %eax call C_SYMBOL_NAME(__errno_location@PLT) popl %ecx diff --git a/sysdeps/unix/sysv/linux/i386/sysdep.h b/sysdeps/unix/sysv/linux/i386/sysdep.h index 4ebcc6c852..713bd44524 100644 --- a/sysdeps/unix/sysv/linux/i386/sysdep.h +++ b/sysdeps/unix/sysv/linux/i386/sysdep.h @@ -74,8 +74,6 @@ syscall_error: \ xorl %edx, %edx; \ addl $_GLOBAL_OFFSET_TABLE_+[.-0b], %ebx; \ subl %eax, %edx; \ - movl errno@GOT(%ebx), %ecx; \ - movl %edx, (%ecx); \ pushl %edx; \ call __errno_location@PLT; \ popl %ecx; \ diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S index abdd7e6604..333f9916f8 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/brk.S @@ -75,7 +75,9 @@ ENTRY(__brk) /* What a horrible way to die. */ .Lerr0: set ENOMEM, %o0 -.Lerr1: sethi %hi(errno), %g1 +.Lerr1: +#ifndef _LIBC_REENTRANT + sethi %hi(errno), %g1 or %g1, %lo(errno), %g1 #ifdef PIC ldx [%l7+%g1], %g1 @@ -83,7 +85,7 @@ ENTRY(__brk) #else st %o0, [%g4+%g1] #endif -#ifdef _LIBC_REENTRANT +#else call __errno_location mov %o0,%l1 st %l1, [%o0] diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S index a5cb1a4c4a..a16f9b7c9b 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/clone.S @@ -53,6 +53,7 @@ __libc_clone: ret restore 99: +#ifndef _LIBC_REENTRANT #ifdef PIC call 1f sethi %hi(_GLOBAL_OFFSET_TABLE_-(99b-.)), %l7 @@ -68,7 +69,7 @@ __libc_clone: set EINVAL, %i0 st %i0, [%g2+%lo(errno)] #endif -#ifdef _LIBC_REENTRANT +#else call __errno_location nop st %i0, [%o0] diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h index c880e4a2dc..1a3736201c 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h @@ -46,17 +46,7 @@ #ifdef PIC # ifdef _LIBC_REENTRANT # define SYSCALL_ERROR_HANDLER \ - .global C_SYMBOL_NAME(errno); \ - .type C_SYMBOL_NAME(errno),@object; \ save %sp,-160,%sp; \ - 101: call 102f; \ - sethi %hi(_GLOBAL_OFFSET_TABLE_-(101b-.)),%g2; \ - 102: or %g2,%lo(_GLOBAL_OFFSET_TABLE_-(101b-.)),%g2; \ - sethi %hi(errno),%i1; \ - add %g2,%o7,%l7; \ - or %i1,%lo(errno),%i1; \ - ldx [%l7+%i1],%g2; \ - st %i0,[%g2]; \ call __errno_location; \ nop; \ st %i0,[%o0]; \ @@ -76,17 +66,14 @@ or %o1,%lo(errno),%o1; \ mov %g3,%o7; \ ldx [%l7+%o1],%g2; \ - st %o0,[%g2] + st %o0,[%g2]; \ + retl; \ + sub %g0,1,%i0 # endif #else # ifdef _LIBC_REENTRANT # define SYSCALL_ERROR_HANDLER \ - .global C_SYMBOL_NAME(errno); \ - .type C_SYMBOL_NAME(errno),@object; \ save %sp,-160,%sp; \ - sethi %hi(errno),%g1; \ - or %g1,%lo(errno),%g1; \ - st %i0,[%g1+%g4]; \ call __errno_location; \ nop; \ st %i0,[%o0]; \ |