]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Updated to fedora-glibc-20041217T0906 cvs/fedora-glibc-2_3_3-97
authorJakub Jelinek <jakub@redhat.com>
Fri, 17 Dec 2004 10:09:19 +0000 (10:09 +0000)
committerJakub Jelinek <jakub@redhat.com>
Fri, 17 Dec 2004 10:09:19 +0000 (10:09 +0000)
26 files changed:
ChangeLog
fedora/branch.mk
fedora/glibc.spec.in
math/libm-test.inc
math/math.h
nptl/ChangeLog
nptl/sysdeps/sparc/tcb-offsets.sym
nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h [new file with mode: 0644]
nptl/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S [new file with mode: 0644]
nptl/tst-context1.c
nscd/Makefile
stdlib/tst-setcontext.c
sysdeps/alpha/fpu/libm-test-ulps
sysdeps/ieee754/ldbl-128/e_expl.c
sysdeps/powerpc/fpu/libm-test-ulps
sysdeps/s390/fpu/libm-test-ulps
sysdeps/sparc/sparc32/fpu/libm-test-ulps
sysdeps/sparc/sparc64/fpu/libm-test-ulps
sysdeps/unix/sysv/linux/dl-osinfo.h
sysdeps/unix/sysv/linux/gethostid.c
sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
sysdeps/unix/sysv/linux/sparc/sparc64/socket.S
sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
sysdeps/x86_64/fpu/libm-test-ulps

index f6404366cefb3b0c831e400b0aaafe9bec94b8f2..b1b83df7d753bac93b3142e3442bb0ddba4dc542 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,65 @@
+2004-12-17  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/sparc/sparc64/fpu/libm-test-ulps: Update.
+
+2004-12-17  Andreas Jaeger  <aj@suse.de>
+
+       * math/libm-test.inc (atan2_test): Compute value with 36 digits.
+       * sysdeps/alpha/fpu/libm-test-ulps: Adjust for changed result.
+       * sysdeps/powerpc/fpu/libm-test-ulps: Likewise.
+       * sysdeps/s390/fpu/libm-test-ulps: Likewise.
+       * sysdeps/sparc/sparc32/fpu/libm-test-ulps: Likewise.
+       * sysdeps/sparc/sparc64/fpu/libm-test-ulps: Likewise.
+       * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
+2004-12-16  Ulrich Drepper  <drepper@redhat.com>
+
+       * stdlib/tst-setcontext.c: Enlarge st1 and st2 arrays.
+
+2004-09-02  Steven Munroe  <sjmunroe@us.ibm.com>
+
+       [BZ #610]
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S
+       (__novec_getcontext): Fix typo in store of fp29.
+       (__getcontext): Fix typo in store of fp29.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S
+       (__novec_swapcontext): Fix typo in store of fp29.
+       (__swapcontext): Fix typo in store of fp29.
+
+2004-12-17  GOTO Masanori  <gotom@debian.or.jp>
+
+       * sysdeps/unix/sysv/linux/dl-osinfo.h (DL_SYSDEP_OSCHECK): Fix
+       vague message.
+
+2004-12-16  Roland McGrath  <roland@redhat.com>
+
+       * nscd/Makefile ($(objpfx)nscd): Don't depend on $(selinux-LIBS),
+       which is usually a -lselinux that make will resolve wrongly.
+
+2004-12-16  Andreas Jaeger  <aj@suse.de>
+
+       * math/math.h: Use #if defined to not receive warnings about
+       undefined symbols.
+
+2004-12-16  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S (__clone): Add support
+       for NPTL where the PID is stored at userlevel and needs to be reset
+       when CLONE_THREAD is not used.
+
+       * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep.h
+       (SYSCALL_ERROR_HANDLER): If RTLD_PRIVATE_ERRNO, use rtld_errno
+       instead of errno.
+       * sysdeps/unix/sysv/linux/sparc/sparc64/socket.S: Include
+       sysdep-cancel.h instead of sysdep.h.  Handle cancellation.
+       * sysdeps/sparc/sparc64/fpu/libm-test-ulps: Regenerate.
+
+       * sysdeps/ieee754/ldbl-128/e_expl.c: Include stdlib.h.
+
+2004-12-15  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/gethostid.c: Make bi-arch safe.
+
 2004-12-15  Steven Munroe  <sjmunroe@us.ibm.com>
 
        * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Correct stack
index e15a81f0a646c5208da53560ba9d12be4b1ab63f..0a343810de5bcc159e86571878a90bee7eef4dd3 100644 (file)
@@ -1,5 +1,5 @@
 # This file is updated automatically by Makefile.
 glibc-branch := fedora
 glibc-base := HEAD
-fedora-sync-date := 2004-12-15 20:56 UTC
-fedora-sync-tag := fedora-glibc-20041215T2056
+fedora-sync-date := 2004-12-17 09:06 UTC
+fedora-sync-tag := fedora-glibc-20041217T0906
index 6ebb656a309c86ebeb9c21aaef3fde0782785bed..0bfe5672b348f36e33ba612e6f25d305ed3aaac3 100644 (file)
@@ -1,4 +1,4 @@
-%define glibcrelease 96
+%define glibcrelease 97
 %define auxarches i586 i686 athlon sparcv9 alphaev6
 %define prelinkarches noarch
 %define nptlarches i386 i686 athlon x86_64 ia64 s390 s390x sparcv9 ppc ppc64
@@ -1265,6 +1265,11 @@ rm -f *.filelist*
 %endif
 
 %changelog
+* Fri Dec 17 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-97
+- update from CVS
+  - fix ppc64 getcontext and swapcontext (BZ#610)
+  - sparc/sparc64 fixes
+
 * Wed Dec 15 2004 Jakub Jelinek <jakub@redhat.com> 2.3.3-96
 - update from CVS
   - fix i686 __USE_STRING_INLINES strncat
index 77950e529adf717dd3b44df99edbc27443b5442a..60711fabdcfaf1a82828660434c75de2c3c40416 100644 (file)
@@ -943,7 +943,7 @@ atan2_test (void)
   TEST_ff_f (atan2, 0.390625L, .00029L, 1.57005392693128974780151246612928941L);
   TEST_ff_f (atan2, 1.390625L, 0.9296875L, 0.981498387184244311516296577615519772L);
 
-  TEST_ff_f (atan2, -0.00756827042671106339L, -.001792735857538728036L, -1.80338464113663849327153994380L);
+  TEST_ff_f (atan2, -0.00756827042671106339L, -.001792735857538728036L, -1.80338464113663849327153994379639112L);
 
   END (atan2);
 }
index 65fd715510c5faa02bc37546c829530a0dba1612..7f8a4815f46a8b515bbe6cf2a7096ad274621724 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for math functions.
-   Copyright (C) 1991-1993,1995-1999,2001,2002 Free Software Foundation, Inc.
+   Copyright (C) 1991-1993,1995-1999,2001,2002,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
@@ -132,7 +132,7 @@ extern int signgam;
 
 
 /* ISO C99 defines some generic macros which work on any data type.  */
-#if __USE_ISOC99
+#ifdef __USE_ISOC99
 
 /* Get the architecture specific values describing the floating-point
    evaluation.  The following symbols will get defined:
@@ -362,7 +362,7 @@ extern int matherr (struct exception *__exc);
 # define __NO_MATH_INLINES     1
 #endif
 
-#if __USE_ISOC99 && __GNUC_PREREQ(2,97)
+#if defined __USE_ISOC99 && __GNUC_PREREQ(2,97)
 /* ISO C99 defines some macros to compare number while taking care for
    unordered numbers.  Many FPUs provide special instructions to support
    these operations.  Generic support in GCC for these as builtins went
@@ -382,7 +382,7 @@ extern int matherr (struct exception *__exc);
 # include <bits/mathinline.h>
 #endif
 
-#if __USE_ISOC99
+#ifdef __USE_ISOC99
 /* If we've still got undefined comparison macros, provide defaults.  */
 
 /* Return nonzero value if X is greater than Y.  */
index fea9ec1ce40213ae6aca7ca28f63b29c7f7cca65..cf29e1ad925c9c78c11fe6284d3763e20a76b98f 100644 (file)
@@ -1,3 +1,15 @@
+2004-12-16  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
+       Increased PTHREAD_STACK_MIN.
+
+       * tst-context1.c (stacks): Use bigger stack size.
+
+2004-12-16  Jakub Jelinek  <jakub@redhat.com>
+
+       * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
+       * sysdeps/sparc/tcb-offsets.sym: Add TID.
+
 2004-12-15  Jakub Jelinek  <jakub@redhat.com>
 
        * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
index c6e230a31501f54545d10dd1a4069dae75ea5485..237f975b2583ad25a162a666eeeabdb79657192d 100644 (file)
@@ -3,3 +3,4 @@
 
 MULTIPLE_THREADS_OFFSET                offsetof (tcbhead_t, multiple_threads)
 PID                            offsetof (struct pthread, pid)
+TID                            offsetof (struct pthread, tid)
diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h b/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h
new file mode 100644 (file)
index 0000000..ae15ab6
--- /dev/null
@@ -0,0 +1,89 @@
+/* Minimum guaranteed maximum values for system limits.  Linux version.
+   Copyright (C) 1993-1998,2000,2002,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
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+/* The kernel header pollutes the namespace with the NR_OPEN symbol
+   and defines LINK_MAX although filesystems have different maxima.  A
+   similar thing is true for OPEN_MAX: the limit can be changed at
+   runtime and therefore the macro must not be defined.  Remove this
+   after including the header if necessary.  */
+#ifndef NR_OPEN
+# define __undef_NR_OPEN
+#endif
+#ifndef LINK_MAX
+# define __undef_LINK_MAX
+#endif
+#ifndef OPEN_MAX
+# define __undef_OPEN_MAX
+#endif
+
+/* The kernel sources contain a file with all the needed information.  */
+#include <linux/limits.h>
+
+/* Have to remove NR_OPEN?  */
+#ifdef __undef_NR_OPEN
+# undef NR_OPEN
+# undef __undef_NR_OPEN
+#endif
+/* Have to remove LINK_MAX?  */
+#ifdef __undef_LINK_MAX
+# undef LINK_MAX
+# undef __undef_LINK_MAX
+#endif
+/* Have to remove OPEN_MAX?  */
+#ifdef __undef_OPEN_MAX
+# undef OPEN_MAX
+# undef __undef_OPEN_MAX
+#endif
+
+/* The number of data keys per process.  */
+#define _POSIX_THREAD_KEYS_MAX 128
+/* This is the value this implementation supports.  */
+#define PTHREAD_KEYS_MAX       1024
+
+/* Controlling the iterations of destructors for thread-specific data.  */
+#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS    4
+/* Number of iterations this implementation does.  */
+#define PTHREAD_DESTRUCTOR_ITERATIONS  _POSIX_THREAD_DESTRUCTOR_ITERATIONS
+
+/* The number of threads per process.  */
+#define _POSIX_THREAD_THREADS_MAX      64
+/* We have no predefined limit on the number of threads.  */
+#undef PTHREAD_THREADS_MAX
+
+/* Maximum amount by which a process can descrease its asynchronous I/O
+   priority level.  */
+#define AIO_PRIO_DELTA_MAX     20
+
+/* Minimum size for a thread.  We are free to choose a reasonable value.  */
+#define PTHREAD_STACK_MIN      32768
+
+/* Maximum number of timer expiration overruns.  */
+#define DELAYTIMER_MAX 2147483647
+
+/* Maximum tty name length.  */
+#define TTY_NAME_MAX           32
+
+/* Maximum login name length.  This is arbitrary.  */
+#define LOGIN_NAME_MAX         256
+
+/* Maximum host name length.  */
+#define HOST_NAME_MAX          64
+
+/* Maximum message queue priority level.  */
+#define MQ_PRIO_MAX            32768
diff --git a/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S b/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/clone.S
new file mode 100644 (file)
index 0000000..da6197c
--- /dev/null
@@ -0,0 +1,2 @@
+#define RESET_PID
+#include <sysdeps/unix/sysv/linux/sparc/sparc32/clone.S>
index 1a019ad0002316fe3b90c6e2ba8cfd3511b17086..fcbeadeea03fe316125995594735c80af0c1cdb9 100644 (file)
@@ -37,7 +37,7 @@ typedef struct {
        unsigned long   guard[3];
    } tst_context_t;
 
-static char stacks[N][PTHREAD_STACK_MIN];
+static char stacks[N][2 * PTHREAD_STACK_MIN];
 static tst_context_t ctx[N][2];
 static volatile int failures;
 
@@ -110,7 +110,7 @@ tf (void *arg)
   printf ("%d: %s: before makecontext\n", n, __FUNCTION__);
 
   ctx[n][1].uctx.uc_stack.ss_sp = stacks[n];
-  ctx[n][1].uctx.uc_stack.ss_size = PTHREAD_STACK_MIN;
+  ctx[n][1].uctx.uc_stack.ss_size = sizeof (stacks[n]);
   ctx[n][1].uctx.uc_link = &ctx[n][0].uctx;
   makecontext (&ctx[n][1].uctx, (void (*) (void)) fct, 1, (long int) n);
 
index b21edc2b79f21543021da092d5d341158379cdc0..70a35198c2e0ca208c8490963c9d1529ef34d5e7 100644 (file)
@@ -123,10 +123,10 @@ $(objpfx)nscd_nischeck: $(objpfx)nscd_nischeck.o
 
 ifeq ($(build-shared),yes)
 $(objpfx)nscd: $(common-objpfx)rt/librt.so $(shared-thread-library) \
-              $(common-objpfx)nis/libnsl.so $(selinux-LIBS)
+              $(common-objpfx)nis/libnsl.so
 $(objpfx)nscd_nischeck: $(common-objpfx)nis/libnsl.so
 else
 $(objpfx)nscd: $(common-objpfx)rt/librt.a $(static-thread-library) \
-              $(common-objpfx)nis/libnsl.a $(selinux-LIBS)
+              $(common-objpfx)nis/libnsl.a
 $(objpfx)nscd_nischeck: $(common-objpfx)nis/libnsl.a
 endif
index c8f7fdb459ac414a8df4f14956fd49f20aed0f0e..7dff966e20011f15a639f41bf1d8efa94550241a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001,02 Free Software Foundation, Inc.
+/* Copyright (C) 2001,02, 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
@@ -27,7 +27,7 @@ static ucontext_t ctx[3];
 static int was_in_f1;
 static int was_in_f2;
 
-static char st2[8192];
+static char st2[32768];
 
 static void
 f1 (long a0, long a1, long a2, long a3)
@@ -72,8 +72,8 @@ f2 (void)
   was_in_f2 = 1;
 }
 
-void 
-test_stack(volatile int a, volatile int b, 
+void
+test_stack(volatile int a, volatile int b,
            volatile int c, volatile int d)
 {
   volatile int e = 5;
@@ -83,25 +83,25 @@ test_stack(volatile int a, volatile int b,
   /* Test for cases where getcontext is clobbering the callers
      stack, including parameters.  */
   getcontext(&uc);
-       
+
   if (a != 1)
     {
       printf ("%s: getcontext clobbers parm a\n", __FUNCTION__);
       exit (1);
     }
-       
+
   if (b != 2)
     {
       printf ("%s: getcontext clobbers parm b\n", __FUNCTION__);
       exit (1);
     }
-       
+
   if (c != 3)
     {
       printf ("%s: getcontext clobbers parm c\n", __FUNCTION__);
       exit (1);
     }
-       
+
   if (d != 4)
     {
       printf ("%s: getcontext clobbers parm d\n", __FUNCTION__);
@@ -113,7 +113,7 @@ test_stack(volatile int a, volatile int b,
       printf ("%s: getcontext clobbers varible e\n", __FUNCTION__);
       exit (1);
     }
-       
+
   if (f != 6)
     {
       printf ("%s: getcontext clobbers variable f\n", __FUNCTION__);
@@ -126,7 +126,7 @@ volatile int global;
 int
 main (void)
 {
-  char st1[8192];
+  char st1[32768];
 
   puts ("making contexts");
   if (getcontext (&ctx[1]) != 0)
@@ -137,7 +137,7 @@ main (void)
       printf ("%s: getcontext: %m\n", __FUNCTION__);
       exit (1);
     }
-  
+
   test_stack (1, 2, 3, 4);
 
   /* Play some tricks with this context.  */
index 80942e98eccd78cf7a6f8791b7b5f38332fa3f8b..7e8140cddc2a36e7d101c4664d47d981a9f74dc1 100644 (file)
@@ -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":
index e4cf8564bf6d5cb4c5fb1092760518ce52678a6e..31ff16f8c028ee36be613344336cb5417a163563 100644 (file)
@@ -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[] = {
index 72c27265b4e051b16779c79fe03aa5d24844d331..6dd3940d22f43016c541a8e2070812c73894b7f1 100644 (file)
@@ -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
 
index e5f388e94712a9b88a732030701759f812f2106c..cfade822a3d0f8b361781ccd1495a941cf666855 100644 (file)
@@ -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
 
index 765ddc55729dfdab2004c8a615ff56d8467925b7..979e0e2c914f5b4e9763c62b1f3cc005b8867c9b 100644 (file)
@@ -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
 
index d9e60f5e4c75e1236e397870e54d74e5b8662d46..4888dd21490b984c8d85bf1e81d909a18a98078f 100644 (file)
@@ -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
index 5abc3c47c84b60ee00d8f2f41c905e2fd052ea86..abc67fcdcf6f4007fb618ab99114d0cebdb9bb7f 100644 (file)
@@ -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';          \
          }                                                                   \
index c7f894033d1e68764bba10e38c1c758d3ff402a0..f44a9afbf225a0538d163f53aefb9dcf6d111126 100644 (file)
@@ -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
index 0f392366ebec16b98e2de051c139447e74a80f5d..61e0f8ed11dbce5780ba008d1cab957302612871 100644 (file)
@@ -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
index 6644c8abff49c5ca948155fdc27d230dfe9e57b9..f99df951a2643beae2ca917a2703ce3a71b71338 100644 (file)
@@ -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):
 /*
index 5bebe356286909513cd0f65eeb22250e7c54a5e4..66cdbf3ca78bf623e1b41b1fef9a04746b349fd5 100644 (file)
@@ -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).
 
 
 #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
index 750c1258ed743a03d0b7d01ec6bac56d82a9a595..575416ff3f62d7a98857c18dae8362fd7139f6a6 100644 (file)
@@ -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)
index 37a68aaebab20047137136f604e35cdd29a877df..3c6492aeca9c96226266fc80e846ab889d9cf732 100644 (file)
@@ -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;                                          \
index 8b59bb2bdeb47854ed03f6a0f6654429c7c5f6f0..b3ce8bfeee09877a105e9e0565c4c37ca0bec6bf 100644 (file)
@@ -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