Update.
authorUlrich Drepper <drepper@redhat.com>
Mon, 17 Mar 1997 03:04:18 +0000 (03:04 +0000)
committerUlrich Drepper <drepper@redhat.com>
Mon, 17 Mar 1997 03:04:18 +0000 (03:04 +0000)
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.

* manual/examples/dir2.c: New example for scandir.
* 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.
* sysdeps/ieee754/huge_val.h: Remove definition of long double
* sysdeps/libm-i387/s_scalbn.S: Likewise.
* sysdeps/libm-i387/s_scalbnf.S: Likewise.
* sysdeps/libm-i387/s_scalbnl.S: Likewise.
* sysdeps/libm-i387/s_expm1.S: Change return value for -inf
* sysdeps/libm-i387/s_expm1f.S: Likewise.
* sysdeps/libm-i387/s_expm1l.S: Likewise.
* sysdeps/libm-i387/s_isinfl.c: Return -1 for -inf.
* sysdeps/libm-i387/s_logbl.S: Correct return value.  Discard first
* sysdeps/libm-ieee754/w_powf.c: Likewise.
* sysdeps/libm-ieee754/w_powl.c: Likewise.
* sysdeps/unix/sysv/linux/alpha/statbuf.h: Likewise.
* nss/nss_files/files-hosts.c: Likewise.
Based on a patch by H.J. Lu <hjl@gnu.ai.mit.edu>.
* nis/ypclnt.c (__yp_bind): Fix possible buffer overflow.
* posix/unistd.h: Add prototype for __euidaccess.
* sysdeps/stub/euidaccess.c: Likewise.

13 files changed:
ChangeLog
localedata/ChangeLog
localedata/sort-test.sh
math/test-double.c [new file with mode: 0644]
math/test-float.c [new file with mode: 0644]
math/test-longdouble.c [new file with mode: 0644]
sysdeps/libm-ieee754/k_standard.c
sysdeps/libm-ieee754/s_fpclassifyf.c
sysdeps/libm-ieee754/w_atan2.c
sysdeps/libm-ieee754/w_atan2f.c
sysdeps/libm-ieee754/w_atan2l.c
sysdeps/unix/sysv/linux/socketbits.h
sysdeps/unix/sysv/linux/sys/mman.h

index 55f6b18..7219625 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
        * 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.
 
        * 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.
 
        * 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>
        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>
 
 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>
 
        * 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>
        * 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
index 12c5d5f..7174a1a 100644 (file)
@@ -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>
index 8ac41fc..8197ac0 100644 (file)
@@ -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 (file)
index 0000000..5f562a0
--- /dev/null
@@ -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 (file)
index 0000000..fa9f2bc
--- /dev/null
@@ -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 (file)
index 0000000..9eebe5a
--- /dev/null
@@ -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"
index 35026fa..ada1df1 100644 (file)
@@ -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;
 }
index 15bcfef..a6b35cf 100644 (file)
@@ -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;
 }
index 3f6032f..801baa2 100644 (file)
@@ -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
index 00b2ce7..09caa06 100644 (file)
@@ -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
 }
index 437a04c..2897c8c 100644 (file)
@@ -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
 }
index 38a8fb7..166971a 100644 (file)
@@ -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
index eadb1f1..367b906 100644 (file)
@@ -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