diff options
author | Jakub Jelinek <jakub@redhat.com> | 2004-12-17 10:09:19 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2004-12-17 10:09:19 +0000 |
commit | 337cd636a17559b7fba33c480759a4e6187e0647 (patch) | |
tree | 6195524bb75b92e28500e9c4153265a409ede509 /sysdeps | |
parent | 6ec2d7443853bce3f0957712540be6b296c1a672 (diff) | |
download | glibc-337cd636a17559b7fba33c480759a4e6187e0647.tar.gz glibc-337cd636a17559b7fba33c480759a4e6187e0647.tar.xz glibc-337cd636a17559b7fba33c480759a4e6187e0647.zip |
Updated to fedora-glibc-20041217T0906 cvs/fedora-glibc-2_3_3-97
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/alpha/fpu/libm-test-ulps | 2 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_expl.c | 1 | ||||
-rw-r--r-- | sysdeps/powerpc/fpu/libm-test-ulps | 2 | ||||
-rw-r--r-- | sysdeps/s390/fpu/libm-test-ulps | 2 | ||||
-rw-r--r-- | sysdeps/sparc/sparc32/fpu/libm-test-ulps | 2 | ||||
-rw-r--r-- | sysdeps/sparc/sparc64/fpu/libm-test-ulps | 74 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/dl-osinfo.h | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/gethostid.c | 18 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S | 12 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S | 10 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc32/clone.S | 20 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/socket.S | 36 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h | 4 | ||||
-rw-r--r-- | sysdeps/x86_64/fpu/libm-test-ulps | 32 |
14 files changed, 177 insertions, 40 deletions
diff --git a/sysdeps/alpha/fpu/libm-test-ulps b/sysdeps/alpha/fpu/libm-test-ulps index 80942e98ec..7e8140cddc 100644 --- a/sysdeps/alpha/fpu/libm-test-ulps +++ b/sysdeps/alpha/fpu/libm-test-ulps @@ -1,7 +1,7 @@ # Begin of automatic generation # atan2 -Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994380": +Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112": float: 6 ifloat: 6 Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025": diff --git a/sysdeps/ieee754/ldbl-128/e_expl.c b/sysdeps/ieee754/ldbl-128/e_expl.c index e4cf8564bf..31ff16f8c0 100644 --- a/sysdeps/ieee754/ldbl-128/e_expl.c +++ b/sysdeps/ieee754/ldbl-128/e_expl.c @@ -66,6 +66,7 @@ #include <fenv.h> #include <inttypes.h> #include <math_private.h> +#include <stdlib.h> #include "t_expl.h" static const long double C[] = { diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps index 72c27265b4..6dd3940d22 100644 --- a/sysdeps/powerpc/fpu/libm-test-ulps +++ b/sysdeps/powerpc/fpu/libm-test-ulps @@ -10,7 +10,7 @@ ifloat: 3 Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772": float: 1 ifloat: 1 -Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994380": +Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112": float: 6 ifloat: 6 diff --git a/sysdeps/s390/fpu/libm-test-ulps b/sysdeps/s390/fpu/libm-test-ulps index e5f388e947..cfade822a3 100644 --- a/sysdeps/s390/fpu/libm-test-ulps +++ b/sysdeps/s390/fpu/libm-test-ulps @@ -10,7 +10,7 @@ ifloat: 3 Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772": float: 1 ifloat: 1 -Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994380": +Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112": float: 6 ifloat: 6 diff --git a/sysdeps/sparc/sparc32/fpu/libm-test-ulps b/sysdeps/sparc/sparc32/fpu/libm-test-ulps index 765ddc5572..979e0e2c91 100644 --- a/sysdeps/sparc/sparc32/fpu/libm-test-ulps +++ b/sysdeps/sparc/sparc32/fpu/libm-test-ulps @@ -10,7 +10,7 @@ ifloat: 3 Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772": float: 1 ifloat: 1 -Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994380": +Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112": float: 6 ifloat: 6 diff --git a/sysdeps/sparc/sparc64/fpu/libm-test-ulps b/sysdeps/sparc/sparc64/fpu/libm-test-ulps index d9e60f5e4c..4888dd2149 100644 --- a/sysdeps/sparc/sparc64/fpu/libm-test-ulps +++ b/sysdeps/sparc/sparc64/fpu/libm-test-ulps @@ -1,6 +1,11 @@ # Begin of automatic generation # atan2 +Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112": +float: 6 +ifloat: 6 +ildouble: 1 +ldouble: 1 Test "atan2 (-0.75, -1.0) == -2.49809154479650885165983415456218025": float: 3 ifloat: 3 @@ -130,9 +135,14 @@ double: 1 idouble: 1 # ccos +Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": +ildouble: 1 +ldouble: 1 Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": float: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Test "Real part of: ccos (0.75 + 1.25 i) == 1.38173873063425888530729933139078645 - 1.09193013555397466170919531722024128 i": double: 1 float: 1 @@ -146,9 +156,13 @@ ifloat: 1 Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": float: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i": float: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Test "Real part of: ccosh (0.75 + 1.25 i) == 0.408242591877968807788852146397499084 + 0.780365930845853240391326216300863152 i": double: 1 float: 1 @@ -195,11 +209,16 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +Test "Real part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i": +ildouble: 1 +ldouble: 1 Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i": double: 1 float: 5 idouble: 1 ifloat: 5 +ildouble: 1 +ldouble: 1 Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i": double: 1 float: 1 @@ -318,8 +337,8 @@ double: 2 float: 3 idouble: 2 ifloat: 3 -ildouble: 1 -ldouble: 1 +ildouble: 10 +ldouble: 10 Test "Real part of: cpow (2 + 0 i, 10 + 0 i) == 1024.0 + 0.0 i": ildouble: 2 ldouble: 2 @@ -342,11 +361,17 @@ ildouble: 1 ldouble: 1 # csin +Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i": +ildouble: 1 +ldouble: 1 Test "Real part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i": ildouble: 1 ldouble: 1 # csinh +Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i": +ildouble: 1 +ldouble: 1 Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i": double: 1 idouble: 1 @@ -376,6 +401,11 @@ ldouble: 1 Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": double: 1 idouble: 1 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i": +ildouble: 1 +ldouble: 1 Test "Imaginary part of: ctan (0.75 + 1.25 i) == 0.160807785916206426725166058173438663 + 0.975363285031235646193581759755216379 i": double: 1 idouble: 1 @@ -388,6 +418,11 @@ double: 1 float: 2 idouble: 1 ifloat: 2 +ildouble: 1 +ldouble: 1 +Test "Imaginary part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i": +ildouble: 1 +ldouble: 1 Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i": float: 1 ifloat: 1 @@ -644,11 +679,15 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1": double: 1 float: 2 idouble: 1 ifloat: 2 +ildouble: 1 +ldouble: 1 # log10 Test "log10 (0.75) == -0.124938736608299953132449886193870744": @@ -906,8 +945,8 @@ idouble: 1 # Maximal error of functions: Function: "atan2": -float: 3 -ifloat: 3 +float: 6 +ifloat: 6 ildouble: 1 ldouble: 1 @@ -996,20 +1035,28 @@ double: 1 float: 1 idouble: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Function: Imaginary part of "ccos": float: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Function: Real part of "ccosh": double: 1 float: 1 idouble: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Function: Imaginary part of "ccosh": float: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Function: Real part of "cexp": float: 1 @@ -1036,12 +1083,15 @@ ifloat: 3 Function: Real part of "clog10": float: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Function: Imaginary part of "clog10": double: 1 float: 5 idouble: 1 ifloat: 5 +ildouble: 1 ldouble: 1 Function: "cos": @@ -1057,8 +1107,8 @@ double: 2 float: 4 idouble: 2 ifloat: 4 -ildouble: 1 -ldouble: 1 +ildouble: 10 +ldouble: 10 Function: Imaginary part of "cpow": double: 2 @@ -1072,9 +1122,15 @@ Function: Real part of "csin": ildouble: 1 ldouble: 1 +Function: Imaginary part of "csin": +ildouble: 1 +ldouble: 1 + Function: Real part of "csinh": float: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Function: Imaginary part of "csinh": double: 1 @@ -1095,6 +1151,8 @@ ldouble: 1 Function: Real part of "ctan": double: 1 idouble: 1 +ildouble: 1 +ldouble: 1 Function: Imaginary part of "ctan": double: 1 @@ -1107,10 +1165,14 @@ double: 1 float: 2 idouble: 1 ifloat: 2 +ildouble: 1 +ldouble: 1 Function: Imaginary part of "ctanh": float: 1 ifloat: 1 +ildouble: 1 +ldouble: 1 Function: "erf": double: 1 diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h index 5abc3c47c8..abc67fcdcf 100644 --- a/sysdeps/unix/sysv/linux/dl-osinfo.h +++ b/sysdeps/unix/sysv/linux/dl-osinfo.h @@ -65,7 +65,7 @@ dl_fatal (const char *str) || (reslen = __read (fd, bufmem, sizeof (bufmem))) <= 0) \ /* This also didn't work. We give up since we cannot \ make sure the library can actually work. */ \ - FATAL ("FATAL: cannot determine library version\n"); \ + FATAL ("FATAL: cannot determine kernel version\n"); \ __close (fd); \ buf[MIN (reslen, (ssize_t) sizeof (bufmem) - 1)] = '\0'; \ } \ diff --git a/sysdeps/unix/sysv/linux/gethostid.c b/sysdeps/unix/sysv/linux/gethostid.c index c7f894033d..f44a9afbf2 100644 --- a/sysdeps/unix/sysv/linux/gethostid.c +++ b/sysdeps/unix/sysv/linux/gethostid.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1996,1998-2001,2003 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1998-2001,2003,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -33,6 +33,7 @@ sethostid (id) { int fd; ssize_t written; + int32_t id32 = id; /* Test for appropriate rights to set host ID. */ if (__libc_enable_secure) @@ -41,16 +42,23 @@ sethostid (id) return -1; } + /* Make sure the ID is not too large. Needed for bi-arch support. */ + if (id32 != id) + { + __set_errno (EOVERFLOW); + return -1; + } + /* Open file for writing. Everybody is allowed to read this file. */ fd = open_not_cancel (HOSTIDFILE, O_CREAT|O_WRONLY|O_TRUNC, 0644); if (fd < 0) return -1; - written = write_not_cancel (fd, &id, sizeof (id)); + written = write_not_cancel (fd, &id32, sizeof (id32)); close_not_cancel_no_status (fd); - return written != sizeof (id) ? -1 : 0; + return written != sizeof (id32) ? -1 : 0; } #else @@ -66,7 +74,7 @@ gethostid () size_t buflen; char *buffer; struct hostent hostbuf, *hp; - unsigned long int id; + int32_t id; struct in_addr in; int herr; int fd; @@ -110,6 +118,6 @@ gethostid () /* For the return value to be not exactly the IP address we do some bit fiddling. */ - return in.s_addr << 16 | in.s_addr >> 16; + return (int32_t) (in.s_addr << 16 | in.s_addr >> 16); } #endif diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S index 0f392366eb..61e0f8ed11 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S @@ -125,7 +125,7 @@ ENTRY(__novec_getcontext) stfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r3) stfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r3) stfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r3) - stfd fp29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r3) + stfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r3) mffs fp0 stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3) stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3) @@ -263,7 +263,7 @@ ENTRY(__getcontext) stfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r3) stfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r3) stfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r3) - stfd fp29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r3) + stfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r3) mffs fp0 stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3) stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3) @@ -275,17 +275,17 @@ ENTRY(__getcontext) ld r5,RTLD_GLOBAL_RO_DL_HWCAP_OFFSET(r5) # else ld r5,0(r5) /* Load extern _dl_hwcap. */ -# endif +# endif la r10,(SIGCONTEXT_V_RESERVE+8)(r3) la r9,(SIGCONTEXT_V_RESERVE+24)(r3) - + andis. r5,r5,(PPC_FEATURE_HAS_ALTIVEC >> 16) - + clrrdi r10,r10,4 beq L(has_no_vec) clrrdi r9,r9,4 mr r5,r10 /* Capture *v_regs value in r5. */ - + stvx v0,0,r10 stvx v1,0,r9 addi r10,r10,32 diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S index 6644c8abff..f99df951a2 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S @@ -125,7 +125,7 @@ ENTRY(__novec_swapcontext) stfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r3) stfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r3) stfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r3) - stfd fp29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r3) + stfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r3) mffs fp0 stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3) stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3) @@ -386,7 +386,7 @@ ENTRY(__swapcontext) stfd fp26,(SIGCONTEXT_FP_REGS+(PT_R26*8))(r3) stfd fp27,(SIGCONTEXT_FP_REGS+(PT_R27*8))(r3) stfd fp28,(SIGCONTEXT_FP_REGS+(PT_R28*8))(r3) - stfd fp29,(SIGCONTEXT_GP_REGS+(PT_R29*8))(r3) + stfd fp29,(SIGCONTEXT_FP_REGS+(PT_R29*8))(r3) mffs fp0 stfd fp30,(SIGCONTEXT_FP_REGS+(PT_R30*8))(r3) stfd fp31,(SIGCONTEXT_FP_REGS+(PT_R31*8))(r3) @@ -401,12 +401,12 @@ ENTRY(__swapcontext) #endif la r10,(SIGCONTEXT_V_RESERVE+8)(r3) la r9,(SIGCONTEXT_V_RESERVE+24)(r3) - + andis. r8,r8,(PPC_FEATURE_HAS_ALTIVEC >> 16) clrrdi r10,r10,4 beq L(has_no_vec) - + clrrdi r9,r9,4 mr r8,r10 /* Capture *v_regs value in r5. */ @@ -493,7 +493,7 @@ ENTRY(__swapcontext) mfvscr v0 mfspr r0,VRSAVE stvx v0,0,r10 - stw r0,0(9) + stw r0,0(r9) L(has_no_vec): /* diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S index 5bebe35628..66cdbf3ca7 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S @@ -1,4 +1,5 @@ -/* Copyright (C) 1996, 1997, 1998, 2000, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1996, 1997, 1998, 2000, 2003, 2004 + Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson (rth@tamu.edu). @@ -22,6 +23,10 @@ #include <asm/errno.h> #include <asm/unistd.h> +#include <tcb-offsets.h> + +#define CLONE_VM 0x00000100 +#define CLONE_THREAD 0x00010000 /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg, pid_t *ptid, void *tls, pid_t *ctid); */ @@ -69,6 +74,19 @@ __clone: .type __thread_start,@function __thread_start: +#ifdef RESET_PID + sethi %hi(CLONE_THREAD), %l0 + andcc %i2, %l0, %g0 + bne 1f + andcc %i2, CLONE_VM, %g0 + bne,a 2f + mov -1,%o0 + set __NR_getpid,%g1 + ta 0x10 +2: st %o0,[%g7 + PID] + st %o0,[%g7 + TID] +1: +#endif call %i0 mov %i3,%o0 call _exit,0 diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/socket.S b/sysdeps/unix/sysv/linux/sparc/sparc64/socket.S index 750c1258ed..575416ff3f 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/socket.S +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/socket.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 1998, 2002 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1998, 2002, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Miguel de Icaza <miguel@gnu.ai.mit.edu>, 1997. @@ -17,7 +17,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ -#include <sysdep.h> +#include <sysdep-cancel.h> #include <socketcall.h> #define P(a, b) P2(a, b) @@ -63,7 +63,12 @@ ENTRY (__socket) #endif #endif - mov P(SOCKOP_,socket), %o0 /* arg 1: socket subfunction */ +#if defined NEED_CANCELLATION && defined CENABLE + SINGLE_THREAD_P + cmp %g1, 0 + bne .Lsocket_cancel +#endif + mov P(SOCKOP_,socket), %o0 /* arg 1: socket subfunction */ add %sp, STACK_BIAS + 128, %o1 /* arg 2: parameter block */ LOADSYSCALL(socketcall) ta 0x6d @@ -73,6 +78,31 @@ ENTRY (__socket) retl nop +#if defined NEED_CANCELLATION && defined CENABLE +.Lsocket_cancel: + cfi_startproc + save %sp, -160, %sp + cfi_def_cfa_register (%fp) + cfi_window_save + cfi_register (%o7, %i7) + CENABLE + nop + mov %o0, %l0 + add %sp, 160 + STACK_BIAS + 128, %o1 + mov P(SOCKOP_,socket), %o0 + LOADSYSCALL(socketcall) + ta 0x6d + + bcs,pn %xcc, __syscall_error_handler2 + mov %o0, %l1 + CDISABLE + mov %l0, %o0 + jmpl %i7 + 8, %g0 + restore %g0, %l1, %o0 + cfi_endproc + SYSCALL_ERROR_HANDLER2 +#endif + SYSCALL_ERROR_HANDLER END (__socket) diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h index 37a68aaeba..3c6492aeca 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1997, 2000, 2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1997, 2000, 2002, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson <richard@gnu.ai.mit.edu>, 1997. @@ -85,7 +85,7 @@ SYSCALL_ERROR_HANDLER_ENTRY(__syscall_error_handler) \ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), %l7; \ call __sparc64.get_pic.l7; \ add %l7, %lo(_GLOBAL_OFFSET_TABLE_+4), %l7; \ - ldx [%l7 + errno], %l0; \ + ldx [%l7 + rtld_errno], %l0; \ st %i0, [%l0]; \ jmpl %i7+8, %g0; \ restore %g0, -1, %o0; \ diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps index 8b59bb2bde..b3ce8bfeee 100644 --- a/sysdeps/x86_64/fpu/libm-test-ulps +++ b/sysdeps/x86_64/fpu/libm-test-ulps @@ -32,7 +32,7 @@ ifloat: 3 Test "atan2 (1.390625, 0.9296875) == 0.981498387184244311516296577615519772": float: 1 ifloat: 1 -Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994380": +Test "atan2 (-0.00756827042671106339, -.001792735857538728036) == -1.80338464113663849327153994379639112": float: 6 ifloat: 6 @@ -155,6 +155,9 @@ ildouble: 1 ldouble: 1 # ccos +Test "Real part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": +double: 1 +idouble: 1 Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i": float: 1 ifloat: 1 @@ -323,6 +326,9 @@ idouble: 1 ifloat: 1 ildouble: 1 ldouble: 1 +Test "cos (0.80190127184058835) == 0.69534156199418473": +double: 1 +idouble: 1 # cpow Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i) == 0.331825439177608832276067945276730566 + 0.131338600281188544930936345230903032 i": @@ -383,6 +389,9 @@ ldouble: 1 Test "Imaginary part of: csin (0.75 + 1.25 i) == 1.28722291002649188575873510790565441 + 1.17210635989270256101081285116138863 i": float: 1 ifloat: 1 +Test "Imaginary part of: csin (-2 - 3 i) == -9.15449914691142957346729954460983256 + 4.16890695996656435075481305885375484 i": +double: 1 +idouble: 1 # csinh Test "Real part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i": @@ -482,15 +491,15 @@ ifloat: 1 double: 2 idouble: 2 Test "exp10 (0.75) == 5.62341325190349080394951039776481231": -ildouble: 1 -ldouble: 1 +ildouble: 2 +ldouble: 2 float: 1 ifloat: 1 double: 1 idouble: 1 Test "exp10 (3) == 1000": -ildouble: 3 -ldouble: 3 +ildouble: 8 +ldouble: 8 float: 2 ifloat: 2 double: 6 @@ -564,7 +573,9 @@ ifloat: 1 ildouble: 1 ldouble: 1 Test "j0 (8.0) == 0.171650807137553906090869407851972001": +double: 2 float: 1 +idouble: 2 ifloat: 1 # j1 @@ -609,7 +620,9 @@ ifloat: 1 ildouble: 1 ldouble: 1 Test "jn (0, 8.0) == 0.171650807137553906090869407851972001": +double: 2 float: 1 +idouble: 2 ifloat: 1 Test "jn (1, 10.0) == 0.0434727461688614366697487680258592883": float: 2 @@ -744,6 +757,9 @@ ldouble: 1 Test "sincos (pi/6, &sin_res, &cos_res) puts 0.86602540378443864676372317075293616 in cos_res": float: 1 ifloat: 1 +Test "sincos (0.80190127184058835, &sin_res, &cos_res) puts 0.69534156199418473 in cos_res": +double: 1 +idouble: 1 # tan Test "tan (pi/4) == 1": @@ -1117,7 +1133,9 @@ ildouble: 1 ldouble: 1 Function: Imaginary part of "csin": +double: 1 float: 1 +idouble: 1 ifloat: 1 Function: Real part of "csinh": @@ -1181,8 +1199,8 @@ ildouble: 1 ldouble: 1 Function: "exp10": -ildouble: 3 -ldouble: 3 +ildouble: 8 +ldouble: 8 float: 2 ifloat: 2 double: 6 |