diff options
-rw-r--r-- | ChangeLog | 55 | ||||
-rw-r--r-- | localedata/ChangeLog | 7 | ||||
-rw-r--r-- | localedata/sort-test.sh | 6 | ||||
-rw-r--r-- | math/test-double.c | 29 | ||||
-rw-r--r-- | math/test-float.c | 29 | ||||
-rw-r--r-- | math/test-longdouble.c | 29 | ||||
-rw-r--r-- | sysdeps/libm-ieee754/k_standard.c | 42 | ||||
-rw-r--r-- | sysdeps/libm-ieee754/s_fpclassifyf.c | 4 | ||||
-rw-r--r-- | sysdeps/libm-ieee754/w_atan2.c | 2 | ||||
-rw-r--r-- | sysdeps/libm-ieee754/w_atan2f.c | 4 | ||||
-rw-r--r-- | sysdeps/libm-ieee754/w_atan2l.c | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/socketbits.h | 23 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/mman.h | 6 |
13 files changed, 197 insertions, 43 deletions
@@ -1,12 +1,30 @@ +1997-03-17 04:00 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/libmieee754/w_atan2.c: Don't ignore exception if library + type is SVID. + * sysdeps/libmieee754/w_atan2f.c: Likewise. + * sysdeps/libmieee754/w_atan2l.c: Likewise. + + * sysdeps/unix/sysv/linux/sys/mman.h (msync): Add descrption for + FLAGS parameter. + +1997-03-16 20:28 Philip Blundell <phil@london.uk.eu.org> + + * sysdeps/unix/sysv/linux/socketbits.h: Add more SOL_ values. + Change msg_iovlen and msg_controllen (in struct msghdr) to + `size_t' to keep in step with kernel. + 1997-03-16 18:43 Ulrich Drepper <drepper@cygnus.com> * manual/filesys.texi: Add documentation for scandir and alphasort. + * manual/examples/dir2.c: New example for scandir. * math/math.c (fpclassify): Correct stupid typos. * math/libm-test.c: New file. libm test suite by Andreas Jaeger. - - * nss/nss_files/files-hosts.c: Add gethostbyname2 imlementation. + * math/test/float.c: New file. Frontend for float tests. + * math/test/double.c: New file. Frontend for double tests. + * math/test/longdouble.c: New file. Frontend for long double tests. * posix/Makefile (routines): Add bsd-getpgrp. * posix/bsd-getpgrp.c: New file. @@ -17,7 +35,7 @@ * sysdeps/i386/huge_val.h: New file. ix87 specific infinity values. * sysdeps/m68k/huge_val.h: New file. m68k specific infinity values. - * sysdeps/generic/huge_val.h: Remove definition of long double + * sysdeps/ieee754/huge_val.h: Remove definition of long double definition. Make it the same as the double definition. * sysdeps/libm-i387/e_acos.S: Fix bug in FPU stack handling. @@ -29,9 +47,9 @@ * sysdeps/libm-i387/e_exp.S: Likewise. * sysdeps/libm-i387/e_expf.S: Likewise. * sysdeps/libm-i387/e_expl.S: Likewise. - * sysdeps/libm-i387/e_scalbn.S: Likewise. - * sysdeps/libm-i387/e_scalbnf.S: Likewise. - * sysdeps/libm-i387/e_scalbnl.S: Likewise. + * sysdeps/libm-i387/s_scalbn.S: Likewise. + * sysdeps/libm-i387/s_scalbnf.S: Likewise. + * sysdeps/libm-i387/s_scalbnl.S: Likewise. * sysdeps/libm-i387/e_log.S: Optimize branch code. * sysdeps/libm-i387/e_logf.S: Likewise. @@ -44,14 +62,14 @@ * sysdeps/libm-i387/e_powf.S: Likewise. * sysdeps/libm-i387/e_powl.S: Likewise. - * sysdeps/libm-i387/e_expm1.S: Change return value for -inf + * sysdeps/libm-i387/s_expm1.S: Change return value for -inf argument to -1.0. - * sysdeps/libm-i387/e_expm1f.S: Likewise. - * sysdeps/libm-i387/e_expm1l.S: Likewise. + * sysdeps/libm-i387/s_expm1f.S: Likewise. + * sysdeps/libm-i387/s_expm1l.S: Likewise. - * sysdeps/libm-i387/e_isinfl.c: Return -1 for -inf. + * sysdeps/libm-i387/s_isinfl.c: Return -1 for -inf. - * sysdeps/libm-i387/e_logbl.S: Correct return value. Discard first + * sysdeps/libm-i387/s_logbl.S: Correct return value. Discard first stack element after fxtract. * sysdeps/libm-ieee754/e_atan2l.c: New file. `long double' @@ -81,6 +99,8 @@ * sysdeps/libm-ieee754/w_pow.c: Distinguish error cases for x is +0 or -0. + * sysdeps/libm-ieee754/w_powf.c: Likewise. + * sysdeps/libm-ieee754/w_powl.c: Likewise. * sysdeps/posix/isfdtype.c: Add cast to prevent warning. @@ -113,7 +133,7 @@ * sysdeps/unix/sysv/linux/statbuf.h (struct stat): Change definition to use prescribed types for elements. (_STAT_VER): Change to value 3. - * sysdeps/unix/sysv/linux/alph/statbuf.h: Likewise. + * sysdeps/unix/sysv/linux/alpha/statbuf.h: Likewise. * sysdeps/unix/sysv/linux/Dist: Add kernel_stat.h. * sysdeps/unix/sysv/linux/alpha/Dist: Likewise. @@ -150,6 +170,7 @@ * nis/nss_nis/nis-hosts.c (_nss_nis_gethostbyname2_r): New functions. Compare result for correct address type. (_nss_nis_gethostbyname_r): Use _nss_nis_gethostbyname2_r. + * nss/nss_files/files-hosts.c: Likewise. Reported by Mirko Streckenbach <mirko@marian.hil.de>. 1997-02-17 01:40 Zlatko Calusic <zcalusic@srce.hr> @@ -182,7 +203,7 @@ Pretty print header. * Makerules (build-shlib): Also create symlink if library is versioned. - based on a patch by H.J. Lu <hjl@gnu.ai.mit.edu>. + Based on a patch by H.J. Lu <hjl@gnu.ai.mit.edu>. Remove special rule to libc.so symlink. 1997-03-11 20:16 Andreas Jaeger <aj@arthur.pfalz.de> @@ -198,7 +219,7 @@ 1997-03-10 18:16 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> - * ypclnt.c (__yp_bind): Fix possible buffer overflow. + * nis/ypclnt.c (__yp_bind): Fix possible buffer overflow. 1997-03-10 18:06 Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE> @@ -297,8 +318,6 @@ * mach/mach/error.h (mach_error_fn_t): Comment out declaration; it appears to be entirely unused dead code. - * stdio/stdio.h (freopen): Fix spelling error. - 1997-03-02 13:38 Miles Bader <miles@gnu.ai.mit.edu> * string/argz.h (__need_error_t): New macro, before including <errno.h> @@ -315,10 +334,10 @@ * configure.in: Substitute ASFLAGS_SO. * sysdeps/sparc/configure.in: New file. - * posix/unitstd.h: Add prototype for __euidaccess. + * posix/unistd.h: Add prototype for __euidaccess. * sysdeps/posix/euidaccess.c: Define as __euidaccess and make euidaccess weak alias. - * sysdeps/stubs/euidaccess.c: Likewise. + * sysdeps/stub/euidaccess.c: Likewise. * inet/rcmd.c: Use __ protected versions of non-standard functions. * locale/setlocale.c (setlocale): Don't set usage_count to diff --git a/localedata/ChangeLog b/localedata/ChangeLog index 12c5d5fcc8..7174a1afc3 100644 --- a/localedata/ChangeLog +++ b/localedata/ChangeLog @@ -1,6 +1,11 @@ +1997-03-17 03:32 Ulrich Drepper <drepper@cygnus.com> + + * sort-test.sh: Call localedef with additional environment variable + I18NPATH to point to not-yet-installed locale data files. + 1997-02-15 14:32 15:10 Andreas Jaeger <aj@arthur.pfalz.de> - * collate-test.c (main): change prototype definition to prevent + * collate-test.c (main): Change prototype definition to prevent warning. 1997-02-15 17:46 Ulrich Drepper <drepper@cygnus.com> diff --git a/localedata/sort-test.sh b/localedata/sort-test.sh index 8ac41fce92..8197ac09eb 100644 --- a/localedata/sort-test.sh +++ b/localedata/sort-test.sh @@ -11,9 +11,9 @@ for l in $lang; do cns=`echo $l | sed 's/\(.*\)[.][^.]*/\1/'` cn=locales/$cns fn=charmaps/`echo $l | sed 's/.*[.]\([^.]*\)/\1/'` - LD_LIBRARY_PATH=$common_objpfx $common_objpfx/elf/ld.so \ - $common_objpfx/locale/localedef --quiet -i $cn -f $fn \ - $common_objpfx/localedata/$cns + LD_LIBRARY_PATH=$common_objpfx I18NPATH=./locales ${common_objpfx}elf/ld.so \ + ${common_objpfx}locale/localedef --quiet -i $cn -f $fn \ + ${common_objpfx}localedata/$cns done # Run collation tests. diff --git a/math/test-double.c b/math/test-double.c new file mode 100644 index 0000000000..5f562a098f --- /dev/null +++ b/math/test-double.c @@ -0,0 +1,29 @@ +/* Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Andreas Jaeger <aj@arthur.pfalz.de>, 1997. + + 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. */ + +#define FUNC(function) function +#define MATHTYPE double +#define TEST_MSG "testing double (without inline functions)\n" +#define MATHCONST(x) x +#define CHOOSE(Clongdouble,Cdouble,Cfloat) Cdouble +#define PRINTF_EXPR "e" + +#define __NO_MATH_INLINES + +#include "libm-test.c" diff --git a/math/test-float.c b/math/test-float.c new file mode 100644 index 0000000000..fa9f2bcd9c --- /dev/null +++ b/math/test-float.c @@ -0,0 +1,29 @@ +/* Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Andreas Jaeger <aj@arthur.pfalz.de>, 1997. + + 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. */ + +#define FUNC(function) function ## f +#define MATHTYPE float +#define TEST_MSG "testing float (without inline functions)\n" +#define MATHCONST(x) x +#define CHOOSE(Clongdouble,Cdouble,Cfloat) Cfloat +#define PRINTF_EXPR "e" + +#define __NO_MATH_INLINES + +#include "libm-test.c" diff --git a/math/test-longdouble.c b/math/test-longdouble.c new file mode 100644 index 0000000000..9eebe5a5e9 --- /dev/null +++ b/math/test-longdouble.c @@ -0,0 +1,29 @@ +/* Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Andreas Jaeger <aj@arthur.pfalz.de>, 1997. + + 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. */ + +#define FUNC(function) function##l +#define MATHTYPE long double +#define TEST_MSG "testing long double (without inline functions)\n" +#define MATHCONST(x) x##L +#define CHOOSE(Clongdouble,Cdouble,Cfloat) Clongdouble +#define PRINTF_EXPR "Le" + +#define __NO_MATH_INLINES + +#include "libm-test.c" diff --git a/sysdeps/libm-ieee754/k_standard.c b/sysdeps/libm-ieee754/k_standard.c index 35026faa9d..ada1df1a99 100644 --- a/sysdeps/libm-ieee754/k_standard.c +++ b/sysdeps/libm-ieee754/k_standard.c @@ -18,6 +18,8 @@ static char rcsid[] = "$NetBSD: k_standard.c,v 1.6 1995/05/10 20:46:35 jtc Exp $ #include "math_private.h" #include <errno.h> +#include <assert.h> + #ifndef _USE_WRITE #include <stdio.h> /* fputs(), stderr */ #define WRITE2(u,v) fputs(u, stderr) @@ -109,7 +111,10 @@ static double zero = 0.0; /* used as const */ exc.type = DOMAIN; exc.name = type < 100 ? "acos" : (type < 200 ? "acosf" : "acosl");; - exc.retval = zero; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = NAN; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); else if (!__matherr(&exc)) { @@ -126,7 +131,10 @@ static double zero = 0.0; /* used as const */ exc.type = DOMAIN; exc.name = type < 100 ? "asin" : (type < 200 ? "asinf" : "asinl"); - exc.retval = zero; + if (_LIB_VERSION == _SVID_) + exc.retval = HUGE; + else + exc.retval = NAN; if(_LIB_VERSION == _POSIX_) __set_errno (EDOM); else if (!__matherr(&exc)) { @@ -145,7 +153,8 @@ static double zero = 0.0; /* used as const */ exc.type = DOMAIN; exc.name = type < 100 ? "atan2" : (type < 200 ? "atan2f" : "atan2l"); - exc.retval = zero; + assert (_LIB_VERSION == _SVID_); + exc.retval = HUGE; if(_LIB_VERSION == _POSIX_) __set_errno (EDOM); else if (!__matherr(&exc)) { @@ -399,7 +408,7 @@ static double zero = 0.0; /* used as const */ if (_LIB_VERSION == _SVID_) exc.retval = -HUGE; else - exc.retval = -HUGE_VAL; + exc.retval = NAN; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); else if (!__matherr(&exc)) { @@ -439,7 +448,7 @@ static double zero = 0.0; /* used as const */ if (_LIB_VERSION == _SVID_) exc.retval = -HUGE; else - exc.retval = -HUGE_VAL; + exc.retval = NAN; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); else if (!__matherr(&exc)) { @@ -500,7 +509,7 @@ static double zero = 0.0; /* used as const */ case 23: case 123: case 223: - /* 0**neg */ + /* -0**neg */ exc.type = DOMAIN; exc.name = type < 100 ? "pow" : (type < 200 ? "powf" : "powl"); if (_LIB_VERSION == _SVID_) @@ -516,6 +525,25 @@ static double zero = 0.0; /* used as const */ __set_errno (EDOM); } break; + case 43: + case 143: + case 243: + /* +0**neg */ + exc.type = DOMAIN; + exc.name = type < 100 ? "pow" : (type < 200 ? "powf" : "powl"); + if (_LIB_VERSION == _SVID_) + exc.retval = zero; + else + exc.retval = HUGE_VAL; + if (_LIB_VERSION == _POSIX_) + __set_errno (EDOM); + else if (!__matherr(&exc)) { + if (_LIB_VERSION == _SVID_) { + (void) WRITE2("pow(0,neg): DOMAIN error\n", 25); + } + __set_errno (EDOM); + } + break; case 24: case 124: case 224: @@ -842,6 +870,8 @@ static double zero = 0.0; /* used as const */ __set_errno (EDOM); } break; + + /* #### Last used is 43/143/243 ### */ } return exc.retval; } diff --git a/sysdeps/libm-ieee754/s_fpclassifyf.c b/sysdeps/libm-ieee754/s_fpclassifyf.c index 15bcfef4a6..a6b35cfe1b 100644 --- a/sysdeps/libm-ieee754/s_fpclassifyf.c +++ b/sysdeps/libm-ieee754/s_fpclassifyf.c @@ -35,8 +35,8 @@ __fpclassifyf (float x) retval = FP_ZERO; else if (wx < 0x1000000) retval = FP_SUBNORMAL; - else if (wx == 0x7f000000) - retval = wx > 0x7f000000 ? FP_NAN : FP_INFINITE; + else if (wx >= 0x7f800000) + retval = wx > 0x7f800000 ? FP_NAN : FP_INFINITE; return retval; } diff --git a/sysdeps/libm-ieee754/w_atan2.c b/sysdeps/libm-ieee754/w_atan2.c index 3f6032f977..801baa2347 100644 --- a/sysdeps/libm-ieee754/w_atan2.c +++ b/sysdeps/libm-ieee754/w_atan2.c @@ -35,7 +35,7 @@ static char rcsid[] = "$NetBSD: w_atan2.c,v 1.6 1995/05/10 20:48:39 jtc Exp $"; double z; z = __ieee754_atan2(y,x); if(_LIB_VERSION != _SVID_||__isnan(x)||__isnan(y)) return z; - if(x==0.0&&y==0.0) { + if(x==0.0&&y==0.0) return __kernel_standard(y,x,3); /* atan2(+-0,+-0) */ return z; #endif diff --git a/sysdeps/libm-ieee754/w_atan2f.c b/sysdeps/libm-ieee754/w_atan2f.c index 00b2ce7633..09caa06f00 100644 --- a/sysdeps/libm-ieee754/w_atan2f.c +++ b/sysdeps/libm-ieee754/w_atan2f.c @@ -37,7 +37,9 @@ static char rcsid[] = "$NetBSD: w_atan2f.c,v 1.3 1995/05/10 20:48:42 jtc Exp $"; #else float z; z = __ieee754_atan2f(y,x); - if(_LIB_VERSION == _IEEE_||__isnanf(x)||__isnanf(y)) return z; + if(_LIB_VERSION != _SVID_||__isnanf(x)||__isnanf(y)) return z; + if(x==0.0&&y==0.0) + return __kernel_standard(y,x,103); /* atan2(+-0,+-0) */ return z; #endif } diff --git a/sysdeps/libm-ieee754/w_atan2l.c b/sysdeps/libm-ieee754/w_atan2l.c index 437a04c760..2897c8c5f9 100644 --- a/sysdeps/libm-ieee754/w_atan2l.c +++ b/sysdeps/libm-ieee754/w_atan2l.c @@ -38,7 +38,9 @@ static char rcsid[] = "$NetBSD: $"; #else long double z; z = __ieee754_atan2l(y,x); - if(_LIB_VERSION == _IEEE_||__isnanl(x)||__isnanl(y)) return z; + if(_LIB_VERSION != _SVID_||__isnanl(x)||__isnanl(y)) return z; + if(x==0.0&&y==0.0) + return __kernel_standard(y,x,203); /* atan2(+-0,+-0) */ return z; #endif } diff --git a/sysdeps/unix/sysv/linux/socketbits.h b/sysdeps/unix/sysv/linux/socketbits.h index 38a8fb74d1..166971a384 100644 --- a/sysdeps/unix/sysv/linux/socketbits.h +++ b/sysdeps/unix/sysv/linux/socketbits.h @@ -83,8 +83,20 @@ enum __socket_type #define AF_INET6 PF_INET6 #define AF_MAX PF_MAX -/* Raw IP packet level. */ +/* Socket level values. */ +#define SOL_IP 0 +#define SOL_TCP 6 +#define SOL_UDP 17 +#define SOL_IPV6 41 +#define SOL_ICMPV6 58 #define SOL_RAW 255 +#define SOL_IPX 256 +#define SOL_AX25 257 +#define SOL_ATALK 258 +#define SOL_NETROM 259 +#define SOL_ROSE 260 +#define SOL_DECNET 261 +#define SOL_X25 262 /* Maximum queue length specifiable by listen. */ #define SOMAXCONN 128 @@ -120,21 +132,18 @@ struct msghdr /* XXX Should be type `size_t' according to POSIX.1g. */ struct iovec *msg_iov; /* Vector of data to send/receive into. */ - int msg_iovlen; /* Number of elements in the vector. */ - /* XXX Should be type `size_t' according to POSIX.1g. */ + size_t msg_iovlen; /* Number of elements in the vector. */ __ptr_t msg_control; /* Ancillary data (eg BSD filedesc passing). */ - int msg_controllen; /* Ancillary data buffer length. */ - /* XXX Should be type `size_t' according to POSIX.1g. */ + size_t msg_controllen; /* Ancillary data buffer length. */ int msg_flags; /* Flags on received message. */ }; /* Structure used for storage of ancillary data object information. */ struct cmsghdr { - int cmsg_len; /* Length of data in cmsg_data plus length + size_t cmsg_len; /* Length of data in cmsg_data plus length of cmsghdr structure. */ - /* XXX Should be type `size_t' according to POSIX.1g. */ int cmsg_level; /* Originating protocol. */ int cmsg_type; /* Protocol specific type. */ #if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2 diff --git a/sysdeps/unix/sysv/linux/sys/mman.h b/sysdeps/unix/sysv/linux/sys/mman.h index eadb1f1f52..367b9062b3 100644 --- a/sysdeps/unix/sysv/linux/sys/mman.h +++ b/sysdeps/unix/sysv/linux/sys/mman.h @@ -1,5 +1,5 @@ -/* Definitions for BSD-style memory management. Linux version. - Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. +/* Definitions for POSIX-style memory management. Linux version. + Copyright (C) 1994, 1995, 1996, 1997 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 @@ -66,7 +66,7 @@ extern int mprotect __P ((__caddr_t __addr, size_t __len, int __prot)); /* Synchronize the region starting at ADDR and extending LEN bytes with the file it maps. Filesystem operations on a file being mapped are - unpredictable before this is done. */ + unpredictable before this is done. Flags are from the MS_* set. */ extern int msync __P ((__caddr_t __addr, size_t __len, int __flags)); /* Advise the system about particular usage patterns the program follows |