Updated to fedora-glibc-20041217T0906

This commit is contained in:
Jakub Jelinek 2004-12-17 10:09:19 +00:00
parent 6ec2d74438
commit 337cd636a1
26 changed files with 371 additions and 63 deletions

View File

@ -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

View 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

View 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

View 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);
}

View 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. */

View 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.

View File

@ -3,3 +3,4 @@
MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
PID offsetof (struct pthread, pid)
TID offsetof (struct pthread, tid)

View File

@ -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

View File

@ -0,0 +1,2 @@
#define RESET_PID
#include <sysdeps/unix/sysv/linux/sparc/sparc32/clone.S>

View 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);

View 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

View 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. */

View 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":

View 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[] = {

View 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

View 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

View 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

View 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

View 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'; \
} \

View 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

View 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

View 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):
/*

View 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).
@ -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

View 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)

View 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; \

View 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