From ac16e90592f0b9842e193e2ebe0b3756f0b4361d Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Fri, 6 Mar 1998 11:39:36 +0000 Subject: Update. 1998-03-06 11:35 Ulrich Drepper * posix/wordexp-test.c: Change testsuite so that it can run even for ~root != /root. 1998-03-06 Andreas Jaeger * math/libm-test.c (catanh_test): Change epsilon for gcc 2.8.1. 1998-03-05 Andreas Schwab * 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 * sysdeps/generic/sysdep.h (L): Remove definition. * sysdeps/i386/sysdep.h (L): Define it here instead. 1998-03-05 Thorsten Kukuk * 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. --- sysdeps/unix/sysv/linux/i386/sysdep.h | 2 -- sysdeps/unix/sysv/linux/sparc/sparc64/brk.S | 6 ++++-- sysdeps/unix/sysv/linux/sparc/sparc64/clone.S | 3 ++- sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h | 19 +++---------------- 4 files changed, 9 insertions(+), 21 deletions(-) (limited to 'sysdeps/unix/sysv/linux') 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]; \ -- cgit 1.4.1