]> git.eshelyaron.com Git - emacs.git/commitdiff
Update from Gnulib
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 30 Jun 2018 00:31:04 +0000 (17:31 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 30 Jun 2018 00:32:35 +0000 (17:32 -0700)
This incorporates:
2018-06-29 regex: glibc does not use intprops.h
2018-06-28 regex: port to recently proposed glibc regex merge
2018-06-25 Continue to use spaces for indentation, not tabs
2018-06-25 manywarnings: Don't enable -Wjump-misses-init by default
2018-06-25 acl-internal.h: remove _GL_ATTRIBUTE_CONST on void function
2018-06-24 manywarnings: accommodate GCC 9: remove -Wchkp and -Wabi
2018-06-24 maint: clarify comments about sticky EOF
2018-06-24 af_alg: avoid hangs when reading from streams
2018-06-17 crypto: use byteswap
2018-06-17 getloadavg: Return 0 on MS-Windows without Cygwi
2018-06-17 getloadavg: Allow building on MS-Windows without Cygwin
* build-aux/config.guess, build-aux/config.sub, doc/misc/texinfo.tex:
* lib/acl-internal.c, lib/acl-internal.h, lib/get-permissions.c:
* lib/getloadavg.c, lib/gettimeofday.c, lib/md5.c, lib/pselect.c:
* lib/set-permissions.c, lib/sha1.c, lib/sha256.c, lib/sha512.c:
* lib/time.in.h, m4/getloadavg.m4, m4/gnulib-common.m4:
* m4/manywarnings.m4, m4/pthread_sigmask.m4, m4/vararrays.m4:
Copy from Gnulib.

20 files changed:
build-aux/config.guess
build-aux/config.sub
doc/misc/texinfo.tex
lib/acl-internal.c
lib/acl-internal.h
lib/get-permissions.c
lib/getloadavg.c
lib/gettimeofday.c
lib/md5.c
lib/pselect.c
lib/set-permissions.c
lib/sha1.c
lib/sha256.c
lib/sha512.c
lib/time.in.h
m4/getloadavg.m4
m4/gnulib-common.m4
m4/manywarnings.m4
m4/pthread_sigmask.m4
m4/vararrays.m4

index 883a6713bf0350955aa7b8e2781b92c65f0c0121..445c406836e2e427a30ecc53bab1c501c30bf4f6 100755 (executable)
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-05-19'
+timestamp='2018-06-26'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -894,8 +894,8 @@ EOF
        # other systems with GNU libc and userland
        echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
        exit ;;
-    i*86:Minix:*:*)
-       echo "$UNAME_MACHINE"-pc-minix
+    *:Minix:*:*)
+       echo "$UNAME_MACHINE"-unknown-minix
        exit ;;
     aarch64:Linux:*:*)
        echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
index f38250f1daa021840e4b2ff24a2236033282f06a..d1f5b549034905ad3fb686701d6249b4a2464a42 100755 (executable)
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-05-19'
+timestamp='2018-05-24'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -149,8 +149,30 @@ case $1 in
                esac
                ;;
        *-*)
-               basic_machine=$field1
-               os=$field2
+               # Second component is usually, but not always the OS
+               case $field2 in
+                       # Prevent following clause from handling this valid os
+                       sun*os*)
+                               basic_machine=$field1
+                               os=$field2
+                               ;;
+                       # Manufacturers
+                       dec* | mips* | sequent* | encore* | pc532* | sgi* | sony* \
+                       | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+                       | unicom* | ibm* | next | hp | isi* | apollo | altos* \
+                       | convergent* | ncr* | news | 32* | 3600* | 3100* | hitachi* \
+                       | c[123]* | convex* | sun | crds | omron* | dg | ultra | tti* \
+                       | harris | dolphin | highlevel | gould | cbm | ns | masscomp \
+                       | apple | axis | knuth | cray | microblaze* \
+                       | sim | cisco | oki | wec | wrs | winbond)
+                               basic_machine=$field1-$field2
+                               os=
+                               ;;
+                       *)
+                               basic_machine=$field1
+                               os=$field2
+                               ;;
+               esac
                ;;
        *)
                # Convert single-component short-hands not valid as part of
@@ -540,110 +562,6 @@ case $1 in
                ;;
 esac
 
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-       sun*os*)
-               # Prevent following clause from handling this invalid input.
-               ;;
-       dec* | mips* | sequent* | encore* | pc532* | sgi* | sony* | \
-       att* | 7300* | 3300* | delta* | motorola* | sun[234]* | \
-       unicom* | ibm* | next | hp | isi* | apollo | altos* | \
-       convergent* | ncr* | news | 32* | 3600* | 3100* | hitachi* |\
-       c[123]* | convex* | sun | crds | omron* | dg | ultra | tti* | \
-       harris | dolphin | highlevel | gould | cbm | ns | masscomp | \
-       apple | axis | knuth | cray | microblaze*)
-               os=
-               basic_machine=$1
-               ;;
-       bluegene*)
-               os=cnk
-               ;;
-       sim | cisco | oki | wec | winbond)
-               os=
-               basic_machine=$1
-               ;;
-       scout)
-               ;;
-       wrs)
-               os=vxworks
-               basic_machine=$1
-               ;;
-       chorusos*)
-               os=chorusos
-               basic_machine=$1
-               ;;
-       chorusrdb)
-               os=chorusrdb
-               basic_machine=$1
-               ;;
-       hiux*)
-               os=hiuxwe2
-               ;;
-       sco6)
-               os=sco5v6
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       sco5)
-               os=sco3.2v5
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       sco4)
-               os=sco3.2v4
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       sco3.2.[4-9]*)
-               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       sco3.2v[4-9]*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       sco5v6*)
-               # Don't forget version if it is 3.2v4 or newer.
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       sco*)
-               os=sco3.2v2
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       udk*)
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       isc)
-               os=isc2.2
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       clix*)
-               basic_machine=clipper-intergraph
-               ;;
-       isc*)
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
-               ;;
-       lynx*178)
-               os=lynxos178
-               ;;
-       lynx*5)
-               os=lynxos5
-               ;;
-       lynx*)
-               os=lynxos
-               ;;
-       ptx*)
-               basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
-               ;;
-       psos*)
-               os=psos
-               ;;
-       mint | mint[0-9]*)
-               basic_machine=m68k-atari
-               os=mint
-               ;;
-esac
-
 # Decode aliases for certain CPU-COMPANY combinations.
 case $basic_machine in
        # Recognize the basic CPU types without company name.
@@ -1377,6 +1295,9 @@ case $os in
        auroraux)
                os=auroraux
                ;;
+       bluegene*)
+               os=cnk
+               ;;
        solaris1 | solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
                ;;
@@ -1393,26 +1314,57 @@ case $os in
        es1800*)
                os=ose
                ;;
+       # Some version numbers need modification
+       chorusos*)
+               os=chorusos
+               ;;
+       isc)
+               os=isc2.2
+               ;;
+       sco6)
+               os=sco5v6
+               ;;
+       sco5)
+               os=sco3.2v5
+               ;;
+       sco4)
+               os=sco3.2v4
+               ;;
+       sco3.2.[4-9]*)
+               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+               ;;
+       sco3.2v[4-9]* | sco5v6*)
+               # Don't forget version if it is 3.2v4 or newer.
+               ;;
+       scout)
+               # Don't match below
+               ;;
+       sco*)
+               os=sco3.2v2
+               ;;
+       psos*)
+               os=psos
+               ;;
        # Now accept the basic system types.
        # The portable systems comes first.
        # Each alternative MUST end in a * to match a version number.
        # sysv* is not here because it comes later, after sysvr4.
        gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
-            | *vms* | sco* | esix* | isc* | aix* | cnk* | sunos | sunos[34]*\
+            | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
             | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
             | sym* | kopensolaris* | plan9* \
             | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
             | aos* | aros* | cloudabi* | sortix* \
             | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
             | clix* | riscos* | uniplus* | iris* | rtu* | xenix* \
-            | hiux* | knetbsd* | mirbsd* | netbsd* \
+            | knetbsd* | mirbsd* | netbsd* \
             | bitrig* | openbsd* | solidbsd* | libertybsd* \
             | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
             | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
             | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
             | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
-            | chorusos* | chorusrdb* | cegcc* | glidix* \
-            | cygwin* | msys* | pe* | psos* | moss* | proelf* | rtems* \
+            | chorusrdb* | cegcc* | glidix* \
+            | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
             | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
             | linux-newlib* | linux-musl* | linux-uclibc* \
             | uxpv* | beos* | mpeix* | udk* | moxiebox* \
@@ -1436,6 +1388,9 @@ case $os in
                        ;;
                esac
                ;;
+       hiux*)
+               os=hiuxwe2
+               ;;
        nto-qnx*)
                ;;
        nto*)
@@ -1445,20 +1400,23 @@ case $os in
            | windows* | osx | abug | netware* | os9* \
            | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
                ;;
-       mac*)
-               os=`echo "$os" | sed -e 's|mac|macos|'`
-               ;;
        linux-dietlibc)
                os=linux-dietlibc
                ;;
        linux*)
                os=`echo $os | sed -e 's|linux|linux-gnu|'`
                ;;
-       sunos5*)
-               os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+       lynx*178)
+               os=lynxos178
                ;;
-       sunos6*)
-               os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+       lynx*5)
+               os=lynxos5
+               ;;
+       lynx*)
+               os=lynxos
+               ;;
+       mac*)
+               os=`echo "$os" | sed -e 's|mac|macos|'`
                ;;
        opened*)
                os=openedition
@@ -1466,6 +1424,12 @@ case $os in
        os400*)
                os=os400
                ;;
+       sunos5*)
+               os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+               ;;
+       sunos6*)
+               os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+               ;;
        wince*)
                os=wince
                ;;
@@ -1599,6 +1563,9 @@ case $basic_machine in
        c8051-*)
                os=elf
                ;;
+       clipper-intergraph)
+               os=clix
+               ;;
        hexagon-*)
                os=elf
                ;;
@@ -1744,6 +1711,9 @@ case $basic_machine in
        *-atari*)
                os=mint
                ;;
+       *-wrs)
+               os=vxworks
+               ;;
        *)
                os=none
                ;;
@@ -1789,6 +1759,9 @@ case $basic_machine in
                        genix*)
                                vendor=ns
                                ;;
+                       clix*)
+                               vendor=intergraph
+                               ;;
                        mvs* | opened*)
                                vendor=ibm
                                ;;
index aa4f256437e2e08a4f7ce6800c4ddceccf26290d..d7f7f53a348081043d31393ea89584e7a90c368b 100644 (file)
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2018-03-10.14}
+\def\texinfoversion{2018-06-02.09}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
@@ -1528,6 +1528,9 @@ output) for that.)}
       \startlink attr{/Border [0 0 0]}%
         user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
     \endgroup}
+  % \pdfgettoks - Surround page numbers in #1 with @pdflink.  #1 may
+  % be a simple number, or a list of numbers in the case of an index
+  % entry.
   \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
   \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
   \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
index 383c5ddb6f6f25205894c333d870e2e7f93a61a4..c62adb0d9d5886764eabbb0942888ae1057caba6 100644 (file)
@@ -355,7 +355,7 @@ acl_nontrivial (int count, struct acl_entry *entries)
       struct acl_entry *ace = &entries[i];
 
       if (ace->uid != ACL_NSUSER && ace->gid != ACL_NSGROUP)
-       return 1;
+        return 1;
     }
   return 0;
 }
index 6c65e65e5e7032f7b2b9be6c4ec6a537aea10ff8..0669d83c4695ea47bf5a4876c143fef68d4f94cb 100644 (file)
@@ -293,10 +293,6 @@ struct permission_context {
 
 int get_permissions (const char *, int, mode_t, struct permission_context *);
 int set_permissions (struct permission_context *, const char *, int);
-void free_permission_context (struct permission_context *)
-#if ! (defined USE_ACL && (HAVE_ACL_GET_FILE || defined GETACL))
-    _GL_ATTRIBUTE_CONST
-#endif
-  ;
+void free_permission_context (struct permission_context *);
 
 _GL_INLINE_HEADER_END
index bb1af5dbdfc71b285f549acb0d3557e6d95738f4..83ba2639a1762b0721c2315c86d4fa579385ddd5 100644 (file)
@@ -31,7 +31,7 @@
 
 int
 get_permissions (const char *name, int desc, mode_t mode,
-                struct permission_context *ctx)
+                 struct permission_context *ctx)
 {
   memset (ctx, 0, sizeof *ctx);
   ctx->mode = mode;
@@ -57,7 +57,7 @@ get_permissions (const char *name, int desc, mode_t mode,
     {
       ctx->default_acl = acl_get_file (name, ACL_TYPE_DEFAULT);
       if (ctx->default_acl == NULL)
-       return -1;
+        return -1;
     }
 
 # if HAVE_ACL_TYPE_NFS4  /* FreeBSD */
@@ -115,16 +115,16 @@ get_permissions (const char *name, int desc, mode_t mode,
       int ret;
 
       if (desc != -1)
-       ret = facl (desc, ACE_GETACLCNT, 0, NULL);
+        ret = facl (desc, ACE_GETACLCNT, 0, NULL);
       else
-       ret = acl (name, ACE_GETACLCNT, 0, NULL);
+        ret = acl (name, ACE_GETACLCNT, 0, NULL);
       if (ret < 0)
-       {
-         if (errno == ENOSYS || errno == EINVAL)
-           ret = 0;
-         else
-           return -1;
-       }
+        {
+          if (errno == ENOSYS || errno == EINVAL)
+            ret = 0;
+          else
+            return -1;
+        }
       ctx->ace_count = ret;
 
       if (ctx->ace_count == 0)
@@ -138,15 +138,15 @@ get_permissions (const char *name, int desc, mode_t mode,
         }
 
       if (desc != -1)
-       ret = facl (desc, ACE_GETACL, ctx->ace_count, ctx->ace_entries);
+        ret = facl (desc, ACE_GETACL, ctx->ace_count, ctx->ace_entries);
       else
-       ret = acl (name, ACE_GETACL, ctx->ace_count, ctx->ace_entries);
+        ret = acl (name, ACE_GETACL, ctx->ace_count, ctx->ace_entries);
       if (ret < 0)
         {
           if (errno == ENOSYS || errno == EINVAL)
             {
-             free (ctx->ace_entries);
-             ctx->ace_entries = NULL;
+              free (ctx->ace_entries);
+              ctx->ace_entries = NULL;
               ctx->ace_count = 0;
               break;
             }
@@ -154,10 +154,10 @@ get_permissions (const char *name, int desc, mode_t mode,
             return -1;
         }
       if (ret <= ctx->ace_count)
-       {
-         ctx->ace_count = ret;
-         break;
-       }
+        {
+          ctx->ace_count = ret;
+          break;
+        }
       /* Huh? The number of ACL entries has increased since the last call.
          Repeat.  */
       free (ctx->ace_entries);
@@ -170,20 +170,20 @@ get_permissions (const char *name, int desc, mode_t mode,
       int ret;
 
       if (desc != -1)
-       ret = facl (desc, GETACLCNT, 0, NULL);
+        ret = facl (desc, GETACLCNT, 0, NULL);
       else
-       ret = acl (name, GETACLCNT, 0, NULL);
+        ret = acl (name, GETACLCNT, 0, NULL);
       if (ret < 0)
-       {
-         if (errno == ENOSYS || errno == ENOTSUP || errno == EOPNOTSUPP)
-           ret = 0;
-         else
-           return -1;
-       }
+        {
+          if (errno == ENOSYS || errno == ENOTSUP || errno == EOPNOTSUPP)
+            ret = 0;
+          else
+            return -1;
+        }
       ctx->count = ret;
 
       if (ctx->count == 0)
-       break;
+        break;
 
       ctx->entries = (aclent_t *) malloc (ctx->count * sizeof (aclent_t));
       if (ctx->entries == NULL)
@@ -193,26 +193,26 @@ get_permissions (const char *name, int desc, mode_t mode,
         }
 
       if (desc != -1)
-       ret = facl (desc, GETACL, ctx->count, ctx->entries);
+        ret = facl (desc, GETACL, ctx->count, ctx->entries);
       else
-       ret = acl (name, GETACL, ctx->count, ctx->entries);
+        ret = acl (name, GETACL, ctx->count, ctx->entries);
       if (ret < 0)
-       {
-         if (errno == ENOSYS || errno == ENOTSUP || errno == EOPNOTSUPP)
-           {
-             free (ctx->entries);
-             ctx->entries = NULL;
-             ctx->count = 0;
-             break;
-           }
-         else
-           return -1;
-       }
+        {
+          if (errno == ENOSYS || errno == ENOTSUP || errno == EOPNOTSUPP)
+            {
+              free (ctx->entries);
+              ctx->entries = NULL;
+              ctx->count = 0;
+              break;
+            }
+          else
+            return -1;
+        }
       if (ret <= ctx->count)
-       {
-         ctx->count = ret;
-         break;
-       }
+        {
+          ctx->count = ret;
+          break;
+        }
       /* Huh? The number of ACL entries has increased since the last call.
          Repeat.  */
       free (ctx->entries);
index 702338fb9e9b2a8f4bf05e5d096920909ef6aeca..435d10a6b101132585157e4177196e1a2ae6fc35 100644 (file)
@@ -68,7 +68,7 @@
    UMAX
    UMAX4_3
    VMS
-   WINDOWS32                    No-op for Windows95/NT.
+   _WIN32                       Native Windows (possibly also defined on Cygwin)
    __linux__                    Linux: assumes /proc file system mounted.
                                 Support from Michael K. Johnson.
    __CYGWIN__                   Cygwin emulates linux /proc/loadavg.
 
 # include "intprops.h"
 
+# if defined _WIN32 && ! defined __CYGWIN__
+#  define WINDOWS32
+# endif
+
 # if !defined (BSD) && defined (ultrix)
 /* Ultrix behaves like BSD on Vaxen.  */
 #  define BSD
 #  define LDAV_SYMBOL "avenrun"
 # endif
 
-# include <unistd.h>
+# ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+# endif
 
 /* LOAD_AVE_TYPE should only get defined if we're going to use the
    nlist method.  */
index d598b2f7f563a36c46be55bbf97bf541a572b3c3..fd44f45ca3c224a6fb217b56c25bf4a0f4e0a2a9 100644 (file)
@@ -45,7 +45,7 @@ initialize (void)
   if (kernel32 != NULL)
     {
       GetSystemTimePreciseAsFileTimeFunc =
-       (GetSystemTimePreciseAsFileTimeFuncType) GetProcAddress (kernel32, "GetSystemTimePreciseAsFileTime");
+        (GetSystemTimePreciseAsFileTimeFuncType) GetProcAddress (kernel32, "GetSystemTimePreciseAsFileTime");
     }
   initialized = TRUE;
 }
index 577aab46d7a2bea9c6804e89354f648b58720662..554d421c7bf96c279bdf581816b25771e43df8bd 100644 (file)
--- a/lib/md5.c
+++ b/lib/md5.c
@@ -52,9 +52,9 @@
 # define md5_buffer __md5_buffer
 #endif
 
+#include <byteswap.h>
 #ifdef WORDS_BIGENDIAN
-# define SWAP(n)                                                        \
-    (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
+# define SWAP(n) bswap_32 (n)
 #else
 # define SWAP(n) (n)
 #endif
@@ -170,6 +170,14 @@ md5_stream (FILE *stream, void *resblock)
       /* Read block.  Take care for partial reads.  */
       while (1)
         {
+          /* Either process a partial fread() from this loop,
+             or the fread() in afalg_stream may have gotten EOF.
+             We need to avoid a subsequent fread() as EOF may
+             not be sticky.  For details of such systems, see:
+             https://sourceware.org/bugzilla/show_bug.cgi?id=1190  */
+          if (feof (stream))
+            goto process_partial_block;
+
           n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
 
           sum += n;
@@ -189,12 +197,6 @@ md5_stream (FILE *stream, void *resblock)
                 }
               goto process_partial_block;
             }
-
-          /* We've read at least one byte, so ignore errors.  But always
-             check for EOF, since feof may be true even though N > 0.
-             Otherwise, we could end up calling fread after EOF.  */
-          if (feof (stream))
-            goto process_partial_block;
         }
 
       /* Process buffer with BLOCKSIZE bytes.  Note that
index 40758251ef3eeedcac0007230cdf9b97618fac19..33b2719561fca4b8060763b9ea00a96c7d1c07c4 100644 (file)
@@ -83,9 +83,9 @@ pselect (int nfds, fd_set *restrict rfds,
 
 int
 rpl_pselect (int nfds, fd_set *restrict rfds,
-            fd_set *restrict wfds, fd_set *restrict xfds,
+             fd_set *restrict wfds, fd_set *restrict xfds,
              struct timespec const *restrict timeout,
-            sigset_t const *restrict sigmask)
+             sigset_t const *restrict sigmask)
 {
   int i;
 
index 4b7371c9b4ba8b0dcd0e39d503b2342521144629..d42335aa502e28e697611d307c707ef34ede1587 100644 (file)
@@ -229,14 +229,14 @@ set_acls_from_mode (const char *name, int desc, mode_t mode, bool *must_chmod)
       if (ret < 0 && errno != EINVAL && errno != ENOTSUP)
         {
           if (errno == ENOSYS)
-           {
-             *must_chmod = true;
-             return 0;
-           }
+            {
+              *must_chmod = true;
+              return 0;
+            }
           return -1;
         }
       if (ret == 0)
-       return 0;
+        return 0;
     }
 #  endif
 
@@ -256,18 +256,18 @@ set_acls_from_mode (const char *name, int desc, mode_t mode, bool *must_chmod)
 
     if (desc != -1)
       ret = facl (desc, SETACL,
-                 sizeof (entries) / sizeof (aclent_t), entries);
+                  sizeof (entries) / sizeof (aclent_t), entries);
     else
       ret = acl (name, SETACL,
-                sizeof (entries) / sizeof (aclent_t), entries);
+                 sizeof (entries) / sizeof (aclent_t), entries);
     if (ret < 0)
       {
-       if (errno == ENOSYS || errno == EOPNOTSUPP)
-         {
-           *must_chmod = true;
-           return 0;
-         }
-       return -1;
+        if (errno == ENOSYS || errno == EOPNOTSUPP)
+          {
+            *must_chmod = true;
+            return 0;
+          }
+        return -1;
       }
     return 0;
   }
@@ -483,7 +483,7 @@ context_acl_from_mode (struct permission_context *ctx)
 
 static int
 set_acls (struct permission_context *ctx, const char *name, int desc,
-         int from_mode, bool *must_chmod, bool *acls_set)
+          int from_mode, bool *must_chmod, bool *acls_set)
 {
   int ret = 0;
 
@@ -503,43 +503,43 @@ set_acls (struct permission_context *ctx, const char *name, int desc,
   if (! ctx->acls_not_supported)
     {
       if (ret == 0 && from_mode)
-       {
-         if (ctx->acl)
-           acl_free (ctx->acl);
-         ctx->acl = acl_from_mode (ctx->mode);
-         if (ctx->acl == NULL)
-           ret = -1;
-       }
+        {
+          if (ctx->acl)
+            acl_free (ctx->acl);
+          ctx->acl = acl_from_mode (ctx->mode);
+          if (ctx->acl == NULL)
+            ret = -1;
+        }
 
       if (ret == 0 && ctx->acl)
-       {
-         if (HAVE_ACL_SET_FD && desc != -1)
-           ret = acl_set_fd (desc, ctx->acl);
-         else
-           ret = acl_set_file (name, ACL_TYPE_ACCESS, ctx->acl);
-         if (ret != 0)
-           {
-             if (! acl_errno_valid (errno))
-               {
-                 ctx->acls_not_supported = true;
-                 if (from_mode || acl_access_nontrivial (ctx->acl) == 0)
-                   ret = 0;
-               }
-           }
-         else
-           {
-             *acls_set = true;
-             if (S_ISDIR(ctx->mode))
-               {
-                 if (! from_mode && ctx->default_acl &&
-                     acl_default_nontrivial (ctx->default_acl))
-                   ret = acl_set_file (name, ACL_TYPE_DEFAULT,
-                                       ctx->default_acl);
-                 else
-                   ret = acl_delete_def_file (name);
-               }
-           }
-       }
+        {
+          if (HAVE_ACL_SET_FD && desc != -1)
+            ret = acl_set_fd (desc, ctx->acl);
+          else
+            ret = acl_set_file (name, ACL_TYPE_ACCESS, ctx->acl);
+          if (ret != 0)
+            {
+              if (! acl_errno_valid (errno))
+                {
+                  ctx->acls_not_supported = true;
+                  if (from_mode || acl_access_nontrivial (ctx->acl) == 0)
+                    ret = 0;
+                }
+            }
+          else
+            {
+              *acls_set = true;
+              if (S_ISDIR(ctx->mode))
+                {
+                  if (! from_mode && ctx->default_acl &&
+                      acl_default_nontrivial (ctx->default_acl))
+                    ret = acl_set_file (name, ACL_TYPE_DEFAULT,
+                                        ctx->default_acl);
+                  else
+                    ret = acl_delete_def_file (name);
+                }
+            }
+        }
     }
 
 # if HAVE_ACL_TYPE_NFS4  /* FreeBSD */
@@ -573,38 +573,38 @@ set_acls (struct permission_context *ctx, const char *name, int desc,
 
       /* Remove ACLs if the file has ACLs.  */
       if (HAVE_ACL_GET_FD && desc != -1)
-       acl = acl_get_fd (desc);
+        acl = acl_get_fd (desc);
       else
-       acl = acl_get_file (name, ACL_TYPE_EXTENDED);
+        acl = acl_get_file (name, ACL_TYPE_EXTENDED);
       if (acl)
-       {
-         acl_free (acl);
-
-         acl = acl_init (0);
-         if (acl)
-           {
-             if (HAVE_ACL_SET_FD && desc != -1)
-               ret = acl_set_fd (desc, acl);
-             else
-               ret = acl_set_file (name, ACL_TYPE_EXTENDED, acl);
-             acl_free (acl);
-           }
-         else
-           ret = -1;
-       }
+        {
+          acl_free (acl);
+
+          acl = acl_init (0);
+          if (acl)
+            {
+              if (HAVE_ACL_SET_FD && desc != -1)
+                ret = acl_set_fd (desc, acl);
+              else
+                ret = acl_set_file (name, ACL_TYPE_EXTENDED, acl);
+              acl_free (acl);
+            }
+          else
+            ret = -1;
+        }
     }
   else
     {
       if (HAVE_ACL_SET_FD && desc != -1)
-       ret = acl_set_fd (desc, ctx->acl);
+        ret = acl_set_fd (desc, ctx->acl);
       else
-       ret = acl_set_file (name, ACL_TYPE_EXTENDED, ctx->acl);
+        ret = acl_set_file (name, ACL_TYPE_EXTENDED, ctx->acl);
       if (ret != 0)
-       {
-         if (! acl_errno_valid (errno)
-             && ! acl_extended_nontrivial (ctx->acl))
-           ret = 0;
-       }
+        {
+          if (! acl_errno_valid (errno)
+              && ! acl_extended_nontrivial (ctx->acl))
+            ret = 0;
+        }
     }
   *acls_set = true;
 
@@ -626,34 +626,34 @@ set_acls (struct permission_context *ctx, const char *name, int desc,
   if (ret == 0 && ctx->count)
     {
       if (desc != -1)
-       ret = facl (desc, SETACL, ctx->count, ctx->entries);
+        ret = facl (desc, SETACL, ctx->count, ctx->entries);
       else
-       ret = acl (name, SETACL, ctx->count, ctx->entries);
+        ret = acl (name, SETACL, ctx->count, ctx->entries);
       if (ret < 0)
-       {
-         if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
-             && acl_nontrivial (ctx->count, ctx->entries) == 0)
-           ret = 0;
-       }
+        {
+          if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
+              && acl_nontrivial (ctx->count, ctx->entries) == 0)
+            ret = 0;
+        }
       else
-       *acls_set = true;
+        *acls_set = true;
     }
 
 #  ifdef ACE_GETACL
   if (ret == 0 && ctx->ace_count)
     {
       if (desc != -1)
-       ret = facl (desc, ACE_SETACL, ctx->ace_count, ctx->ace_entries);
+        ret = facl (desc, ACE_SETACL, ctx->ace_count, ctx->ace_entries);
       else
-       ret = acl (name, ACE_SETACL, ctx->ace_count, ctx->ace_entries);
+        ret = acl (name, ACE_SETACL, ctx->ace_count, ctx->ace_entries);
       if (ret < 0)
-       {
-         if ((errno == ENOSYS || errno == EINVAL || errno == ENOTSUP)
-             && acl_ace_nontrivial (ctx->ace_count, ctx->ace_entries) == 0)
-           ret = 0;
-       }
+        {
+          if ((errno == ENOSYS || errno == EINVAL || errno == ENOTSUP)
+              && acl_ace_nontrivial (ctx->ace_count, ctx->ace_entries) == 0)
+            ret = 0;
+        }
       else
-       *acls_set = true;
+        *acls_set = true;
     }
 #  endif
 
@@ -665,17 +665,17 @@ set_acls (struct permission_context *ctx, const char *name, int desc,
   if (ret == 0 && ctx->count > 0)
     {
       if (desc != -1)
-       ret = fsetacl (desc, ctx->count, ctx->entries);
+        ret = fsetacl (desc, ctx->count, ctx->entries);
       else
-       ret = setacl (name, ctx->count, ctx->entries);
+        ret = setacl (name, ctx->count, ctx->entries);
       if (ret < 0)
-       {
-         if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
-             && (from_mode || !acl_nontrivial (ctx->count, ctx->entries)))
-           ret = 0;
-       }
+        {
+          if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP)
+              && (from_mode || !acl_nontrivial (ctx->count, ctx->entries)))
+            ret = 0;
+        }
       else
-       *acls_set = true;
+        *acls_set = true;
     }
 
 #  if HAVE_ACLV_H
@@ -686,13 +686,13 @@ set_acls (struct permission_context *ctx, const char *name, int desc,
     {
       ret = acl ((char *) name, ACL_SET, ctx->aclv_count, ctx->aclv_entries);
       if (ret < 0)
-       {
-         if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
-             && (from_mode || !aclv_nontrivial (ctx->aclv_count, ctx->aclv_entries)))
-           ret = 0;
-       }
+        {
+          if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL)
+              && (from_mode || !aclv_nontrivial (ctx->aclv_count, ctx->aclv_entries)))
+            ret = 0;
+        }
       else
-       *acls_set = true;
+        *acls_set = true;
     }
 #  endif
 
@@ -711,16 +711,16 @@ set_acls (struct permission_context *ctx, const char *name, int desc,
   if (ret == 0 && ctx->have_u)
     {
       if (desc != -1)
-       ret = fchacl (desc, &ctx->u.a, ctx->u.a.acl_len);
+        ret = fchacl (desc, &ctx->u.a, ctx->u.a.acl_len);
       else
-       ret = chacl ((char *) name, &ctx->u.a, ctx->u.a.acl_len);
+        ret = chacl ((char *) name, &ctx->u.a, ctx->u.a.acl_len);
       if (ret < 0)
-       {
-         if (errno == ENOSYS && from_mode)
-           ret = 0;
-       }
+        {
+          if (errno == ENOSYS && from_mode)
+            ret = 0;
+        }
       else
-       *acls_set = true;
+        *acls_set = true;
     }
 
 # elif HAVE_ACLSORT /* NonStop Kernel */
@@ -732,12 +732,12 @@ set_acls (struct permission_context *ctx, const char *name, int desc,
     {
       ret = acl ((char *) name, ACL_SET, ctx->count, ctx->entries);
       if (ret != 0)
-       {
-         if (!acl_nontrivial (ctx->count, ctx->entries))
-           ret = 0;
-       }
+        {
+          if (!acl_nontrivial (ctx->count, ctx->entries))
+            ret = 0;
+        }
       else
-       *acls_set = true;
+        *acls_set = true;
     }
 
 # else  /* No ACLs */
@@ -805,7 +805,7 @@ set_permissions (struct permission_context *ctx, const char *name, int desc)
     {
       ret = chmod_or_fchmod (name, desc, ctx->mode);
       if (ret != 0)
-       return -1;
+        return -1;
     }
 
 #if USE_ACL
@@ -815,18 +815,18 @@ set_permissions (struct permission_context *ctx, const char *name, int desc)
       int saved_errno = ret ? errno : 0;
 
       /* If we can't set an acl which we expect to be able to set, try setting
-        the permissions to ctx->mode. Due to possible inherited permissions,
-        we cannot simply chmod.  */
+         the permissions to ctx->mode. Due to possible inherited permissions,
+         we cannot simply chmod.  */
 
       ret = set_acls (ctx, name, desc, true, &must_chmod, &acls_set);
       if (! acls_set)
-       must_chmod = true;
+        must_chmod = true;
 
       if (saved_errno)
-       {
-         errno = saved_errno;
-         ret = -1;
-       }
+        {
+          errno = saved_errno;
+          ret = -1;
+        }
     }
 #endif
 
@@ -837,10 +837,10 @@ set_permissions (struct permission_context *ctx, const char *name, int desc)
       ret = chmod_or_fchmod (name, desc, ctx->mode);
 
       if (saved_errno)
-       {
-         errno = saved_errno;
-         ret = -1;
-       }
+        {
+          errno = saved_errno;
+          ret = -1;
+        }
     }
 
   return ret;
index 8306d887da5e9ef90f4538e4047479b271188787..cd79dfa87706bf93080c13bacfdd5aab69422e16 100644 (file)
 # include "unlocked-io.h"
 #endif
 
+#include <byteswap.h>
 #ifdef WORDS_BIGENDIAN
 # define SWAP(n) (n)
 #else
-# define SWAP(n) \
-    (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
+# define SWAP(n) bswap_32 (n)
 #endif
 
 #define BLOCKSIZE 32768
@@ -158,6 +158,14 @@ sha1_stream (FILE *stream, void *resblock)
       /* Read block.  Take care for partial reads.  */
       while (1)
         {
+          /* Either process a partial fread() from this loop,
+             or the fread() in afalg_stream may have gotten EOF.
+             We need to avoid a subsequent fread() as EOF may
+             not be sticky.  For details of such systems, see:
+             https://sourceware.org/bugzilla/show_bug.cgi?id=1190  */
+          if (feof (stream))
+            goto process_partial_block;
+
           n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
 
           sum += n;
@@ -177,12 +185,6 @@ sha1_stream (FILE *stream, void *resblock)
                 }
               goto process_partial_block;
             }
-
-          /* We've read at least one byte, so ignore errors.  But always
-             check for EOF, since feof may be true even though N > 0.
-             Otherwise, we could end up calling fread after EOF.  */
-          if (feof (stream))
-            goto process_partial_block;
         }
 
       /* Process buffer with BLOCKSIZE bytes.  Note that
index a036befcafd114c2181b9e99590cd5aed61b50b5..c518517077ca869334c00aa5f2c1f3783ec776d8 100644 (file)
 # include "unlocked-io.h"
 #endif
 
+#include <byteswap.h>
 #ifdef WORDS_BIGENDIAN
 # define SWAP(n) (n)
 #else
-# define SWAP(n) \
-    (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
+# define SWAP(n) bswap_32 (n)
 #endif
 
 #define BLOCKSIZE 32768
@@ -208,6 +208,14 @@ shaxxx_stream (FILE *stream, char const *alg, void *resblock,
       /* Read block.  Take care for partial reads.  */
       while (1)
         {
+          /* Either process a partial fread() from this loop,
+             or the fread() in afalg_stream may have gotten EOF.
+             We need to avoid a subsequent fread() as EOF may
+             not be sticky.  For details of such systems, see:
+             https://sourceware.org/bugzilla/show_bug.cgi?id=1190  */
+          if (feof (stream))
+            goto process_partial_block;
+
           n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
 
           sum += n;
@@ -227,12 +235,6 @@ shaxxx_stream (FILE *stream, char const *alg, void *resblock,
                 }
               goto process_partial_block;
             }
-
-          /* We've read at least one byte, so ignore errors.  But always
-             check for EOF, since feof may be true even though N > 0.
-             Otherwise, we could end up calling fread after EOF.  */
-          if (feof (stream))
-            goto process_partial_block;
         }
 
       /* Process buffer with BLOCKSIZE bytes.  Note that
index e175e705f5210359a44bb47763dd5a2cdec3f585..e854951eb3131db4a504e445e1558151b1be0dfb 100644 (file)
 # include "unlocked-io.h"
 #endif
 
+#include <byteswap.h>
 #ifdef WORDS_BIGENDIAN
 # define SWAP(n) (n)
 #else
-# define SWAP(n) \
-    u64or (u64or (u64or (u64shl (n, 56),                                \
-                         u64shl (u64and (n, u64lo (0x0000ff00)), 40)),  \
-                  u64or (u64shl (u64and (n, u64lo (0x00ff0000)), 24),   \
-                         u64shl (u64and (n, u64lo (0xff000000)),  8))), \
-           u64or (u64or (u64and (u64shr (n,  8), u64lo (0xff000000)),   \
-                         u64and (u64shr (n, 24), u64lo (0x00ff0000))),  \
-                  u64or (u64and (u64shr (n, 40), u64lo (0x0000ff00)),   \
-                         u64shr (n, 56))))
+# define SWAP(n) bswap_64 (n)
 #endif
 
 #define BLOCKSIZE 32768
@@ -216,6 +209,14 @@ shaxxx_stream (FILE *stream, char const *alg, void *resblock,
       /* Read block.  Take care for partial reads.  */
       while (1)
         {
+          /* Either process a partial fread() from this loop,
+             or the fread() in afalg_stream may have gotten EOF.
+             We need to avoid a subsequent fread() as EOF may
+             not be sticky.  For details of such systems, see:
+             https://sourceware.org/bugzilla/show_bug.cgi?id=1190  */
+          if (feof (stream))
+            goto process_partial_block;
+
           n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
 
           sum += n;
@@ -235,12 +236,6 @@ shaxxx_stream (FILE *stream, char const *alg, void *resblock,
                 }
               goto process_partial_block;
             }
-
-          /* We've read at least one byte, so ignore errors.  But always
-             check for EOF, since feof may be true even though N > 0.
-             Otherwise, we could end up calling fread after EOF.  */
-          if (feof (stream))
-            goto process_partial_block;
         }
 
       /* Process buffer with BLOCKSIZE bytes.  Note that
index a2dca89340cf5d643961e1fddcdf4376019e02b4..cda16c69d2c8b93da5b653a80d6da13dffd785f1 100644 (file)
@@ -212,7 +212,7 @@ _GL_CXXALIASWARN (gmtime_r);
 #    define localtime rpl_localtime
 #   endif
 _GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer)
-                                         _GL_ARG_NONNULL ((1)));
+                                          _GL_ARG_NONNULL ((1)));
 _GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer));
 #  else
 _GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer));
index d3a8910ecfca04424032f869a32d3957b6c4acd2..c9f5a6da5df79032ab2a2eb2680f3170a239a0b2 100644 (file)
@@ -108,7 +108,7 @@ AC_DEFUN([gl_PREREQ_GETLOADAVG],
 [
 # Figure out what our getloadavg.c needs.
 
-AC_CHECK_HEADERS_ONCE([sys/param.h])
+AC_CHECK_HEADERS_ONCE([sys/param.h unistd.h])
 
 # On HPUX9, an unprivileged user can get load averages this way.
 if test $gl_func_getloadavg_done = no; then
index 736e421016c4a162949dc9418e3a325db3693fbd..5f07855acf11f5062daea3eadbe9613438e4a4bc 100644 (file)
@@ -354,16 +354,16 @@ AC_DEFUN([AC_C_RESTRICT],
    for ac_kw in __restrict __restrict__ _Restrict restrict; do
      AC_COMPILE_IFELSE(
       [AC_LANG_PROGRAM(
-        [[typedef int *int_ptr;
-          int foo (int_ptr $ac_kw ip) { return ip[0]; }
-          int bar (int [$ac_kw]); /* Catch GCC bug 14050.  */
-          int bar (int ip[$ac_kw]) { return ip[0]; }
-        ]],
-        [[int s[1];
-          int *$ac_kw t = s;
-          t[0] = 0;
-          return foo (t) + bar (t);
-        ]])],
+         [[typedef int *int_ptr;
+           int foo (int_ptr $ac_kw ip) { return ip[0]; }
+           int bar (int [$ac_kw]); /* Catch GCC bug 14050.  */
+           int bar (int ip[$ac_kw]) { return ip[0]; }
+         ]],
+         [[int s[1];
+           int *$ac_kw t = s;
+           t[0] = 0;
+           return foo (t) + bar (t);
+         ]])],
       [ac_cv_c_restrict=$ac_kw])
      test "$ac_cv_c_restrict" != no && break
    done
index 60c0e4051cb2c01375fc1cac431ba2b5e984213e..925c40e139afc6fb9e5c265213461b5a8606a90c 100644 (file)
@@ -1,4 +1,4 @@
-# manywarnings.m4 serial 14
+# manywarnings.m4 serial 15
 dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -108,12 +108,11 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)],
   # comm -3 \
   #  <((sed -n 's/^  *\(-[^ 0-9][^ ]*\) .*/\1/p' manywarnings.m4; \
   #     awk '/^[^#]/ {print $1}' ../build-aux/gcc-warning.spec) | sort) \
-  #  <(gcc --help=warnings | sed -n 's/^  \(-[^ ]*\) .*/\1/p' | sort)
+  #  <(LC_ALL=C gcc --help=warnings | sed -n 's/^  \(-[^ ]*\) .*/\1/p' | sort)
 
   gl_manywarn_set=
   for gl_manywarn_item in -fno-common \
     -W \
-    -Wabi \
     -Waddress \
     -Waggressive-loop-optimizations \
     -Wall \
@@ -128,7 +127,6 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)],
     -Wcast-align=strict \
     -Wcast-function-type \
     -Wchar-subscripts \
-    -Wchkp \
     -Wclobbered \
     -Wcomment \
     -Wcomments \
@@ -176,7 +174,6 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)],
     -Wint-to-pointer-cast \
     -Winvalid-memory-model \
     -Winvalid-pch \
-    -Wjump-misses-init \
     -Wlogical-not-parentheses \
     -Wlogical-op \
     -Wmain \
index a33b433c0efca5a2cfa1299524ca82ab38889b67..585b80a40ff26b80846495a16fcbfdae3c7a0edf 100644 (file)
@@ -124,41 +124,41 @@ AC_DEFUN([gl_FUNC_PTHREAD_SIGMASK],
       case " $LIBS " in
         *' -pthread '*) ;;
         *' -lpthread '*) ;;
-       *)
-         AC_CACHE_CHECK([whether pthread_sigmask works without -lpthread],
-           [gl_cv_func_pthread_sigmask_in_libc_works],
-           [
-             AC_RUN_IFELSE(
-               [AC_LANG_SOURCE([[
-                  #include <pthread.h>
-                  #include <signal.h>
-                  #include <stddef.h>
-                  int main ()
-                  {
-                    sigset_t set;
-                    sigemptyset (&set);
-                    return pthread_sigmask (1729, &set, NULL) != 0;
-                  }]])],
-               [gl_cv_func_pthread_sigmask_in_libc_works=no],
-               [gl_cv_func_pthread_sigmask_in_libc_works=yes],
-               [
-                changequote(,)dnl
-                case "$host_os" in
-                  freebsd* | hpux* | solaris | solaris2.[2-9]*)
-                    gl_cv_func_pthread_sigmask_in_libc_works="guessing no";;
-                  *)
-                    gl_cv_func_pthread_sigmask_in_libc_works="guessing yes";;
-                esac
-                changequote([,])dnl
-               ])
-           ])
-         case "$gl_cv_func_pthread_sigmask_in_libc_works" in
-           *no)
-             REPLACE_PTHREAD_SIGMASK=1
-             AC_DEFINE([PTHREAD_SIGMASK_INEFFECTIVE], [1],
-               [Define to 1 if pthread_sigmask may return 0 and have no effect.])
-             ;;
-         esac;;
+        *)
+          AC_CACHE_CHECK([whether pthread_sigmask works without -lpthread],
+            [gl_cv_func_pthread_sigmask_in_libc_works],
+            [
+              AC_RUN_IFELSE(
+                [AC_LANG_SOURCE([[
+                   #include <pthread.h>
+                   #include <signal.h>
+                   #include <stddef.h>
+                   int main ()
+                   {
+                     sigset_t set;
+                     sigemptyset (&set);
+                     return pthread_sigmask (1729, &set, NULL) != 0;
+                   }]])],
+                [gl_cv_func_pthread_sigmask_in_libc_works=no],
+                [gl_cv_func_pthread_sigmask_in_libc_works=yes],
+                [
+                 changequote(,)dnl
+                 case "$host_os" in
+                   freebsd* | hpux* | solaris | solaris2.[2-9]*)
+                     gl_cv_func_pthread_sigmask_in_libc_works="guessing no";;
+                   *)
+                     gl_cv_func_pthread_sigmask_in_libc_works="guessing yes";;
+                 esac
+                 changequote([,])dnl
+                ])
+            ])
+          case "$gl_cv_func_pthread_sigmask_in_libc_works" in
+            *no)
+              REPLACE_PTHREAD_SIGMASK=1
+              AC_DEFINE([PTHREAD_SIGMASK_INEFFECTIVE], [1],
+                [Define to 1 if pthread_sigmask may return 0 and have no effect.])
+              ;;
+          esac;;
       esac
     fi
 
index 329eb490c3cb493ce16a68479e8a75e742625689..17563b519b01019481b698b44d98c82a57fa7087 100644 (file)
@@ -18,44 +18,44 @@ AC_DEFUN([AC_C_VARARRAYS],
     ac_cv_c_vararrays,
     [AC_EGREP_CPP([defined],
        [#ifdef __STDC_NO_VLA__
-       defined
-       #endif
+        defined
+        #endif
        ],
        [ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined'],
        [AC_COMPILE_IFELSE(
-         [AC_LANG_PROGRAM(
-            [[/* Test for VLA support.  This test is partly inspired
-                 from examples in the C standard.  Use at least two VLA
-                 functions to detect the GCC 3.4.3 bug described in:
-                 https://lists.gnu.org/r/bug-gnulib/2014-08/msg00014.html
-                 */
-              #ifdef __STDC_NO_VLA__
-               syntax error;
-              #else
-                extern int n;
-                int B[100];
-                int fvla (int m, int C[m][m]);
+          [AC_LANG_PROGRAM(
+             [[/* Test for VLA support.  This test is partly inspired
+                  from examples in the C standard.  Use at least two VLA
+                  functions to detect the GCC 3.4.3 bug described in:
+                  https://lists.gnu.org/r/bug-gnulib/2014-08/msg00014.html
+                  */
+               #ifdef __STDC_NO_VLA__
+                syntax error;
+               #else
+                 extern int n;
+                 int B[100];
+                 int fvla (int m, int C[m][m]);
 
-                int
-                simple (int count, int all[static count])
-                {
-                  return all[count - 1];
-                }
+                 int
+                 simple (int count, int all[static count])
+                 {
+                   return all[count - 1];
+                 }
 
-                int
-                fvla (int m, int C[m][m])
-                {
-                  typedef int VLA[m][m];
-                  VLA x;
-                  int D[m];
-                  static int (*q)[m] = &B;
-                  int (*s)[n] = q;
-                  return C && &x[0][0] == &D[0] && &D[0] == s[0];
-                }
-              #endif
-              ]])],
-         [ac_cv_c_vararrays=yes],
-         [ac_cv_c_vararrays=no])])])
+                 int
+                 fvla (int m, int C[m][m])
+                 {
+                   typedef int VLA[m][m];
+                   VLA x;
+                   int D[m];
+                   static int (*q)[m] = &B;
+                   int (*s)[n] = q;
+                   return C && &x[0][0] == &D[0] && &D[0] == s[0];
+                 }
+               #endif
+               ]])],
+          [ac_cv_c_vararrays=yes],
+          [ac_cv_c_vararrays=no])])])
   if test "$ac_cv_c_vararrays" = yes; then
     dnl This is for compatibility with Autoconf 2.61-2.69.
     AC_DEFINE([HAVE_C_VARARRAYS], 1,