]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
various little patches
authorDavid MacKenzie <djm@djmnet.org>
Tue, 7 Mar 1995 00:19:27 +0000 (00:19 +0000)
committerDavid MacKenzie <djm@djmnet.org>
Tue, 7 Mar 1995 00:19:27 +0000 (00:19 +0000)
Makefile.in
TODO
acgeneral.m4
acspecific.m4
autoconf.texi
doc/Makefile.in
doc/autoconf.texi
lib/autoconf/general.m4
lib/autoconf/specific.m4

index b5bb276573b22a94aac2bb318fa83c84c2e0bd5a..60950fd8e25897161061d6c5eec74e26e10ea4c6 100644 (file)
@@ -90,15 +90,16 @@ all: ${SCRIPTS}
 
 info: autoconf.info @standards_info@ INSTALL
 
+# Use --no-split to avoid creating filenames > 14 chars.
 autoconf.info: autoconf.texi install.texi
-       $(MAKEINFO) -I$(srcdir) $(srcdir)/autoconf.texi --output=$@
+       $(MAKEINFO) -I$(srcdir) $(srcdir)/autoconf.texi --no-split --output=$@
 
 INSTALL: install.texi
        $(MAKEINFO) -I$(srcdir) $(srcdir)/install.texi --output=$@ \
        --no-headers --no-validate
 
 standards.info: standards.texi make-stds.texi
-       $(MAKEINFO) -I$(srcdir) $(srcdir)/standards.texi --output=$@
+       $(MAKEINFO) -I$(srcdir) $(srcdir)/standards.texi --no-split --output=$@
 
 dvi: autoconf.dvi @standards_dvi@
 
@@ -142,15 +143,17 @@ install: all $(M4FILES) acconfig.h installdirs install-info
        done; \
        else :; fi
 
+# Don't cd, to avoid breaking install-sh references.
 install-info: info installdirs
-       -test -f autoconf.info || cd $(srcdir); \
-       for i in autoconf.info*; do \
-       $(INSTALL_DATA) $$i $(infodir)/$$i; \
-       done
-       -test -f standards.info || cd $(srcdir); \
-       for i in standards.info*; do \
-       $(INSTALL_DATA) $$i $(infodir)/$$i; \
-       done
+       if test -f autoconf.info; then \
+         for i in *.info*; do \
+           $(INSTALL_DATA) $$i $(infodir)/$$i; \
+         done; \
+       else \
+         for i in $(srcdir)/*.info*; do \
+           $(INSTALL_DATA) $$i $(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
+         done; \
+       fi
 
 uninstall:
        for p in $(SCRIPTS); do \
diff --git a/TODO b/TODO
index 900c43f4d8a084d4c01a5cf1b32b99797e3024cc..cf97c2b94545aceb369b633e4c61f094f1181ec4 100644 (file)
--- a/TODO
+++ b/TODO
@@ -300,9 +300,8 @@ The problem occurs with the following libc functions in SunOS 5.4:
 It also occurs with a bunch more libposix4 functions that most people
 probably aren't worried about yet, e.g. shm_open.
 
-All of these functions fail with errno set to 59.  errno 59 is not
-documented and is not in /usr/include/sys/errno.h, but perror claims
-that it means ``Operation not applicable''.
+All these functions fail with errno set to ENOSYS (89)
+``Operation not applicable''.
 
 Perhaps autoconf should have a
 specific macro for fnmatch, another for glob+globfree, another for
@@ -315,6 +314,10 @@ From Paul Eggert.
 
 ------------------------------------------------------------------------------
 
+Make easy macros for checking for X functions and libraries.
+
+------------------------------------------------------------------------------
+
 * Test suite: more things to test:
 ** That the shell scripts produce correct output on some simple data.
 ** Configuration header files.  That autoheader does the right thing,
index 15fbd40ad079824b899bcd5b5a5b0fceb628fd5a..925481178032dce757e252068aa1da14dc76179b 100644 (file)
@@ -51,7 +51,7 @@ dnl
 divert(-1)dnl Throw away output until AC_INIT is called.
 changequote([, ])
 
-define(AC_ACVERSION, 2.1.2)
+define(AC_ACVERSION, 2.1.3)
 
 dnl Some old m4's don't support m4exit.  But they provide
 dnl equivalent functionality by core dumping because of the
@@ -889,9 +889,7 @@ fi
 
 dnl AC_CACHE_SAVE()
 define(AC_CACHE_SAVE,
-[if test -w $cache_file; then
-echo "updating cache $cache_file"
-cat > $cache_file <<\EOF
+[cat > $cache_file.$$ <<\EOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
 # scripts and configure runs.  It is not useful on other systems.
@@ -913,11 +911,19 @@ dnl Allow a site initialization script to override cache values.
 # and sets the high bit in the cache file unless we assign to the vars.
 (set) 2>&1 |
   sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \
-  >> $cache_file
+  >> $cache_file.$$
 changequote([, ])dnl
+if cmp -s $cache_file $cache_file.$$; then
+  :
 else
-echo "not updating unwritable cache $cache_file"
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat $cache_file.$$ > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
 fi
+rm -f $cache_file.$$
 ])
 
 dnl The name of shell var CACHE-ID must contain `_cv_' in order to get saved.
@@ -1471,9 +1477,12 @@ AC_DEFUN(AC_CHECK_FUNC,
 [AC_MSG_CHECKING([for $1])
 AC_CACHE_VAL(ac_cv_func_$1,
 [AC_TRY_LINK(
-[/* This header should be one that does not declare any functions.
-    Such declarations can conflict with char $1(); below.  */
-#include <errno.h> /* Arbitrary system header to define __stub macros. */
+dnl Don't include <ctype.h> because on OSF/1 3.0 it includes <sys/types.h>
+dnl which includes <sys/select.h> which contains a prototype for
+dnl select.  Similarly for bzero.
+[/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $1(); below.  */
+#include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 ]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
 extern "C"
index c66013f593f9e1a03f61b06e6b1efaf0f0ea4bb3..72f2311bc6607eccefed67af7fdda0c2d80c380b 100644 (file)
@@ -400,6 +400,9 @@ AC_CACHE_VAL(ac_cv_path_install,
   done
   IFS="$ac_save_ifs"
   # As a last resort, use the slow shell script.
+dnl FIXME We probably shouldn't cache a path within a source directory,
+dnl because that will break other packages using the cache if
+dnl that directory is removed.
   test -z "$ac_cv_path_install" && ac_cv_path_install="$ac_install_sh"])dnl
   INSTALL="$ac_cv_path_install"
 fi
@@ -925,19 +928,17 @@ AC_DEFUN(AC_FUNC_VFORK,
 AC_CHECK_HEADER(vfork.h, AC_DEFINE(HAVE_VFORK_H))
 AC_MSG_CHECKING(for working vfork)
 AC_CACHE_VAL(ac_cv_func_vfork,
-[AC_REQUIRE([AC_TYPE_SIGNAL])
-AC_TRY_RUN([/* Thanks to Paul Eggert for this test.  */
+[AC_TRY_RUN([/* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <signal.h>
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #ifdef HAVE_VFORK_H
 #include <vfork.h>
 #endif
-/* On sparc systems, changes by the child to local and incoming
+/* On some sparc systems, changes by the child to local and incoming
    argument registers are propagated back to the parent.
    The compiler is told about this with #include <vfork.h>,
    but some compilers (e.g. gcc -O) don't grok <vfork.h>.
@@ -962,16 +963,12 @@ sparc_address_test (arg) int arg;
     }
   }
 }
-static int signalled;
-static RETSIGTYPE catch (s) int s; { signalled = 1; }
 main() {
   pid_t parent = getpid ();
   pid_t child;
 
   sparc_address_test ();
 
-  signal (SIGINT, catch);
-
   child = vfork ();
 
   if (child == 0) {
@@ -979,7 +976,7 @@ main() {
        This test uses lots of local variables, at least
        as many local variables as main has allocated so far
        including compiler temporaries.  4 locals are enough for
-       gcc 1.40.3 on a sparc, but we use 8 to be safe.
+       gcc 1.40.3 on a Solaris 4.1.3 sparc, but we use 8 to be safe.
        A buggy compiler should reuse the register of parent
        for one of the local variables, since it will think that
        parent can't possibly be used any more in this routine.
@@ -994,12 +991,6 @@ main() {
        || p != p5 || p != p6 || p != p7)
       _exit(1);
 
-    /* On some systems (e.g. SunOS 5.2), if the parent is catching
-       a signal, the child ignores the signal before execing,
-       and the parent later receives that signal, the parent dumps core.
-       Test for this by ignoring SIGINT in the child.  */
-    signal (SIGINT, SIG_IGN);
-
     /* On some systems (e.g. IRIX 3.3),
        vfork doesn't separate parent from child file descriptors.
        If the child closes a descriptor before it execs or exits,
@@ -1022,10 +1013,6 @@ main() {
         /* Did the vfork/compiler bug occur?  */
         || parent != getpid()
 
-        /* Did the signal handling bug occur?  */
-        || kill(parent, SIGINT) != 0
-        || signalled != 1
-
         /* Did the file descriptor bug occur?  */
         || fstat(fileno(stdout), &st) != 0
         );
index b75a3d94b3297cdc6f0bb932bd602fdeb1156160..a04bc8c00d99aa1ead58620c0cac42cf1a4746d6 100644 (file)
@@ -6,9 +6,9 @@
 @c @setchapternewpage odd
 @c %**end of header
 
-@set EDITION 2.1.2
-@set VERSION 2.1.2
-@set UPDATED February 1995
+@set EDITION 2.1.3
+@set VERSION 2.1.3
+@set UPDATED March 1995
 
 @iftex
 @finalout
@@ -240,7 +240,7 @@ Site Configuration
 
 Transforming Program Names When Installing
 
-* Transformation Options::      @code{configure} options to transforme names.
+* Transformation Options::      @code{configure} options to transform names.
 * Transformation Examples::     Sample uses of transforming names.
 * Transformation Rules::        @file{Makefile} uses of transforming names.
 
@@ -1040,7 +1040,8 @@ recompilation.  You should include the file @file{stamp-h.in} your
 package's distribution, so @code{make} will consider @file{config.h.in}
 up to date.  On some old BSD systems, @code{touch} or any command that
 results in an empty file does not update the timestamps, so use a
-command like @code{date} as a workaround.
+command like @code{echo} as a workaround.
+@c Using @code{date} would cause needless CVS conflicts.
 
 @example
 @group
@@ -1052,7 +1053,7 @@ $@{srcdir@}/config.h.in: stamp-h.in
 $@{srcdir@}/stamp-h.in: configure.in aclocal.m4 acconfig.h \
     config.h.top config.h.bot
         cd $@{srcdir@} && autoheader
-        date > $@{srcdir@}/stamp-h.in
+        echo timestamp > $@{srcdir@}/stamp-h.in
 
 config.h: stamp-h
 stamp-h: config.h.in config.status
@@ -1066,10 +1067,10 @@ config.status: configure
 @end group
 @end example
 
-In addition, you should pass @samp{date > stamp-h} in the @var{extra-cmds}
-argument to @code{AC_OUTPUT}, so @file{config.status} will ensure that
-@file{config.h} is considered up to date.  @xref{Output}, for more
-information about @code{AC_OUTPUT}.
+In addition, you should pass @samp{echo timestamp > stamp-h} in the
+@var{extra-cmds} argument to @code{AC_OUTPUT}, so @file{config.status}
+will ensure that @file{config.h} is considered up to date.
+@xref{Output}, for more information about @code{AC_OUTPUT}.
 
 @xref{Invoking config.status}, for more examples of handling
 configuration-related dependencies.
@@ -1873,7 +1874,9 @@ If @file{vfork.h} is found, define @code{HAVE_VFORK_H}.  If a working
 @code{vfork} is not found, define @code{vfork} to be @code{fork}.  This
 macro checks for several known errors in implementations of @code{vfork}
 and considers the system to not have a working @code{vfork} if it
-detects any of them.
+detects any of them.  It is not considered to be an implementation error
+if a child's invocation of @code{signal} modifies the parent's signal
+handler, since child processes rarely change their signal handlers.
 @end defmac
 
 @defmac AC_FUNC_VPRINTF
@@ -2517,16 +2520,21 @@ otherwise set it to the empty string.
 @ovindex X_LIBS
 @ovindex X_EXTRA_LIBS
 @ovindex X_PRE_LIBS
-An enhanced version of @code{AC_PATH_X}.  Add the C compiler flags that
+An enhanced version of @code{AC_PATH_X}.  It adds the C compiler flags that
 X needs to output variable @code{X_CFLAGS}, and the X linker flags to
-@code{X_LIBS}.  If X is not available, add @samp{-DX_DISPLAY_MISSING} to
+@code{X_LIBS}.  If X is not available, adds @samp{-DX_DISPLAY_MISSING} to
 @code{X_CFLAGS}.
 
-Also check for special libraries that some systems need in order to
-compile X programs.  Add any that the system needs to output variable
-@code{X_EXTRA_LIBS}.  And check for special X11R6 libraries that need to
-be linked with before @samp{-lX11}, and add any found to the output
-variable @code{X_PRE_LIBS}.
+This macro also checks for special libraries that some systems need in
+order to compile X programs.  It adds any that the system needs to
+output variable @code{X_EXTRA_LIBS}.  And it checks for special X11R6
+libraries that need to be linked with before @samp{-lX11}, and adds any
+found to the output variable @code{X_PRE_LIBS}.
+
+@c This is an incomplete kludge.  Make a real way to do it.
+@c If you need to check for other X functions or libraries yourself, then
+@c after calling this macro, add the contents of @code{X_EXTRA_LIBS} to
+@c @code{LIBS} temporarily, like this:
 @end defmac
 
 @defmac AC_SYS_LONG_FILE_NAMES
@@ -4044,7 +4052,7 @@ is used as a prefix.  Otherwise, no program name transformation is done.
 @end defmac
 
 @menu
-* Transformation Options::      @code{configure} options to transforme names.
+* Transformation Options::      @code{configure} options to transform names.
 * Transformation Examples::     Sample uses of transforming names.
 * Transformation Rules::        @file{Makefile} uses of transforming names.
 @end menu
@@ -4456,7 +4464,7 @@ might wrongly assume that all source files are in one big directory
 tree, or the Imake configuration might assume one compiler whereas the
 package or the installer needs to use another, or there might be a
 version mismatch between the Imake expected by the package and the Imake
-suported by the host.  These problems are much rarer with Autoconf,
+supported by the host.  These problems are much rarer with Autoconf,
 where each package comes with its own independent configuration
 processor.
 
@@ -4524,7 +4532,7 @@ in a particular package's source directory), you must rename it to
 @file{acsite.m4}.  @xref{Invoking autoconf}.
 
 If you distribute @file{install.sh} with your package, rename it to
-@file{install-sh} so @code{make} builtin rules won't inadvertantly
+@file{install-sh} so @code{make} builtin rules won't inadvertently
 create a file called @file{install} from it.  @code{AC_PROG_INSTALL}
 looks for the script under both names, but it is best to use the new name.
 
index b5bb276573b22a94aac2bb318fa83c84c2e0bd5a..60950fd8e25897161061d6c5eec74e26e10ea4c6 100644 (file)
@@ -90,15 +90,16 @@ all: ${SCRIPTS}
 
 info: autoconf.info @standards_info@ INSTALL
 
+# Use --no-split to avoid creating filenames > 14 chars.
 autoconf.info: autoconf.texi install.texi
-       $(MAKEINFO) -I$(srcdir) $(srcdir)/autoconf.texi --output=$@
+       $(MAKEINFO) -I$(srcdir) $(srcdir)/autoconf.texi --no-split --output=$@
 
 INSTALL: install.texi
        $(MAKEINFO) -I$(srcdir) $(srcdir)/install.texi --output=$@ \
        --no-headers --no-validate
 
 standards.info: standards.texi make-stds.texi
-       $(MAKEINFO) -I$(srcdir) $(srcdir)/standards.texi --output=$@
+       $(MAKEINFO) -I$(srcdir) $(srcdir)/standards.texi --no-split --output=$@
 
 dvi: autoconf.dvi @standards_dvi@
 
@@ -142,15 +143,17 @@ install: all $(M4FILES) acconfig.h installdirs install-info
        done; \
        else :; fi
 
+# Don't cd, to avoid breaking install-sh references.
 install-info: info installdirs
-       -test -f autoconf.info || cd $(srcdir); \
-       for i in autoconf.info*; do \
-       $(INSTALL_DATA) $$i $(infodir)/$$i; \
-       done
-       -test -f standards.info || cd $(srcdir); \
-       for i in standards.info*; do \
-       $(INSTALL_DATA) $$i $(infodir)/$$i; \
-       done
+       if test -f autoconf.info; then \
+         for i in *.info*; do \
+           $(INSTALL_DATA) $$i $(infodir)/$$i; \
+         done; \
+       else \
+         for i in $(srcdir)/*.info*; do \
+           $(INSTALL_DATA) $$i $(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
+         done; \
+       fi
 
 uninstall:
        for p in $(SCRIPTS); do \
index b75a3d94b3297cdc6f0bb932bd602fdeb1156160..a04bc8c00d99aa1ead58620c0cac42cf1a4746d6 100644 (file)
@@ -6,9 +6,9 @@
 @c @setchapternewpage odd
 @c %**end of header
 
-@set EDITION 2.1.2
-@set VERSION 2.1.2
-@set UPDATED February 1995
+@set EDITION 2.1.3
+@set VERSION 2.1.3
+@set UPDATED March 1995
 
 @iftex
 @finalout
@@ -240,7 +240,7 @@ Site Configuration
 
 Transforming Program Names When Installing
 
-* Transformation Options::      @code{configure} options to transforme names.
+* Transformation Options::      @code{configure} options to transform names.
 * Transformation Examples::     Sample uses of transforming names.
 * Transformation Rules::        @file{Makefile} uses of transforming names.
 
@@ -1040,7 +1040,8 @@ recompilation.  You should include the file @file{stamp-h.in} your
 package's distribution, so @code{make} will consider @file{config.h.in}
 up to date.  On some old BSD systems, @code{touch} or any command that
 results in an empty file does not update the timestamps, so use a
-command like @code{date} as a workaround.
+command like @code{echo} as a workaround.
+@c Using @code{date} would cause needless CVS conflicts.
 
 @example
 @group
@@ -1052,7 +1053,7 @@ $@{srcdir@}/config.h.in: stamp-h.in
 $@{srcdir@}/stamp-h.in: configure.in aclocal.m4 acconfig.h \
     config.h.top config.h.bot
         cd $@{srcdir@} && autoheader
-        date > $@{srcdir@}/stamp-h.in
+        echo timestamp > $@{srcdir@}/stamp-h.in
 
 config.h: stamp-h
 stamp-h: config.h.in config.status
@@ -1066,10 +1067,10 @@ config.status: configure
 @end group
 @end example
 
-In addition, you should pass @samp{date > stamp-h} in the @var{extra-cmds}
-argument to @code{AC_OUTPUT}, so @file{config.status} will ensure that
-@file{config.h} is considered up to date.  @xref{Output}, for more
-information about @code{AC_OUTPUT}.
+In addition, you should pass @samp{echo timestamp > stamp-h} in the
+@var{extra-cmds} argument to @code{AC_OUTPUT}, so @file{config.status}
+will ensure that @file{config.h} is considered up to date.
+@xref{Output}, for more information about @code{AC_OUTPUT}.
 
 @xref{Invoking config.status}, for more examples of handling
 configuration-related dependencies.
@@ -1873,7 +1874,9 @@ If @file{vfork.h} is found, define @code{HAVE_VFORK_H}.  If a working
 @code{vfork} is not found, define @code{vfork} to be @code{fork}.  This
 macro checks for several known errors in implementations of @code{vfork}
 and considers the system to not have a working @code{vfork} if it
-detects any of them.
+detects any of them.  It is not considered to be an implementation error
+if a child's invocation of @code{signal} modifies the parent's signal
+handler, since child processes rarely change their signal handlers.
 @end defmac
 
 @defmac AC_FUNC_VPRINTF
@@ -2517,16 +2520,21 @@ otherwise set it to the empty string.
 @ovindex X_LIBS
 @ovindex X_EXTRA_LIBS
 @ovindex X_PRE_LIBS
-An enhanced version of @code{AC_PATH_X}.  Add the C compiler flags that
+An enhanced version of @code{AC_PATH_X}.  It adds the C compiler flags that
 X needs to output variable @code{X_CFLAGS}, and the X linker flags to
-@code{X_LIBS}.  If X is not available, add @samp{-DX_DISPLAY_MISSING} to
+@code{X_LIBS}.  If X is not available, adds @samp{-DX_DISPLAY_MISSING} to
 @code{X_CFLAGS}.
 
-Also check for special libraries that some systems need in order to
-compile X programs.  Add any that the system needs to output variable
-@code{X_EXTRA_LIBS}.  And check for special X11R6 libraries that need to
-be linked with before @samp{-lX11}, and add any found to the output
-variable @code{X_PRE_LIBS}.
+This macro also checks for special libraries that some systems need in
+order to compile X programs.  It adds any that the system needs to
+output variable @code{X_EXTRA_LIBS}.  And it checks for special X11R6
+libraries that need to be linked with before @samp{-lX11}, and adds any
+found to the output variable @code{X_PRE_LIBS}.
+
+@c This is an incomplete kludge.  Make a real way to do it.
+@c If you need to check for other X functions or libraries yourself, then
+@c after calling this macro, add the contents of @code{X_EXTRA_LIBS} to
+@c @code{LIBS} temporarily, like this:
 @end defmac
 
 @defmac AC_SYS_LONG_FILE_NAMES
@@ -4044,7 +4052,7 @@ is used as a prefix.  Otherwise, no program name transformation is done.
 @end defmac
 
 @menu
-* Transformation Options::      @code{configure} options to transforme names.
+* Transformation Options::      @code{configure} options to transform names.
 * Transformation Examples::     Sample uses of transforming names.
 * Transformation Rules::        @file{Makefile} uses of transforming names.
 @end menu
@@ -4456,7 +4464,7 @@ might wrongly assume that all source files are in one big directory
 tree, or the Imake configuration might assume one compiler whereas the
 package or the installer needs to use another, or there might be a
 version mismatch between the Imake expected by the package and the Imake
-suported by the host.  These problems are much rarer with Autoconf,
+supported by the host.  These problems are much rarer with Autoconf,
 where each package comes with its own independent configuration
 processor.
 
@@ -4524,7 +4532,7 @@ in a particular package's source directory), you must rename it to
 @file{acsite.m4}.  @xref{Invoking autoconf}.
 
 If you distribute @file{install.sh} with your package, rename it to
-@file{install-sh} so @code{make} builtin rules won't inadvertantly
+@file{install-sh} so @code{make} builtin rules won't inadvertently
 create a file called @file{install} from it.  @code{AC_PROG_INSTALL}
 looks for the script under both names, but it is best to use the new name.
 
index 15fbd40ad079824b899bcd5b5a5b0fceb628fd5a..925481178032dce757e252068aa1da14dc76179b 100644 (file)
@@ -51,7 +51,7 @@ dnl
 divert(-1)dnl Throw away output until AC_INIT is called.
 changequote([, ])
 
-define(AC_ACVERSION, 2.1.2)
+define(AC_ACVERSION, 2.1.3)
 
 dnl Some old m4's don't support m4exit.  But they provide
 dnl equivalent functionality by core dumping because of the
@@ -889,9 +889,7 @@ fi
 
 dnl AC_CACHE_SAVE()
 define(AC_CACHE_SAVE,
-[if test -w $cache_file; then
-echo "updating cache $cache_file"
-cat > $cache_file <<\EOF
+[cat > $cache_file.$$ <<\EOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
 # scripts and configure runs.  It is not useful on other systems.
@@ -913,11 +911,19 @@ dnl Allow a site initialization script to override cache values.
 # and sets the high bit in the cache file unless we assign to the vars.
 (set) 2>&1 |
   sed -n "s/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=\${\1='\2'}/p" \
-  >> $cache_file
+  >> $cache_file.$$
 changequote([, ])dnl
+if cmp -s $cache_file $cache_file.$$; then
+  :
 else
-echo "not updating unwritable cache $cache_file"
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat $cache_file.$$ > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
 fi
+rm -f $cache_file.$$
 ])
 
 dnl The name of shell var CACHE-ID must contain `_cv_' in order to get saved.
@@ -1471,9 +1477,12 @@ AC_DEFUN(AC_CHECK_FUNC,
 [AC_MSG_CHECKING([for $1])
 AC_CACHE_VAL(ac_cv_func_$1,
 [AC_TRY_LINK(
-[/* This header should be one that does not declare any functions.
-    Such declarations can conflict with char $1(); below.  */
-#include <errno.h> /* Arbitrary system header to define __stub macros. */
+dnl Don't include <ctype.h> because on OSF/1 3.0 it includes <sys/types.h>
+dnl which includes <sys/select.h> which contains a prototype for
+dnl select.  Similarly for bzero.
+[/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $1(); below.  */
+#include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 ]ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
 extern "C"
index c66013f593f9e1a03f61b06e6b1efaf0f0ea4bb3..72f2311bc6607eccefed67af7fdda0c2d80c380b 100644 (file)
@@ -400,6 +400,9 @@ AC_CACHE_VAL(ac_cv_path_install,
   done
   IFS="$ac_save_ifs"
   # As a last resort, use the slow shell script.
+dnl FIXME We probably shouldn't cache a path within a source directory,
+dnl because that will break other packages using the cache if
+dnl that directory is removed.
   test -z "$ac_cv_path_install" && ac_cv_path_install="$ac_install_sh"])dnl
   INSTALL="$ac_cv_path_install"
 fi
@@ -925,19 +928,17 @@ AC_DEFUN(AC_FUNC_VFORK,
 AC_CHECK_HEADER(vfork.h, AC_DEFINE(HAVE_VFORK_H))
 AC_MSG_CHECKING(for working vfork)
 AC_CACHE_VAL(ac_cv_func_vfork,
-[AC_REQUIRE([AC_TYPE_SIGNAL])
-AC_TRY_RUN([/* Thanks to Paul Eggert for this test.  */
+[AC_TRY_RUN([/* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/stat.h>
-#include <signal.h>
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 #ifdef HAVE_VFORK_H
 #include <vfork.h>
 #endif
-/* On sparc systems, changes by the child to local and incoming
+/* On some sparc systems, changes by the child to local and incoming
    argument registers are propagated back to the parent.
    The compiler is told about this with #include <vfork.h>,
    but some compilers (e.g. gcc -O) don't grok <vfork.h>.
@@ -962,16 +963,12 @@ sparc_address_test (arg) int arg;
     }
   }
 }
-static int signalled;
-static RETSIGTYPE catch (s) int s; { signalled = 1; }
 main() {
   pid_t parent = getpid ();
   pid_t child;
 
   sparc_address_test ();
 
-  signal (SIGINT, catch);
-
   child = vfork ();
 
   if (child == 0) {
@@ -979,7 +976,7 @@ main() {
        This test uses lots of local variables, at least
        as many local variables as main has allocated so far
        including compiler temporaries.  4 locals are enough for
-       gcc 1.40.3 on a sparc, but we use 8 to be safe.
+       gcc 1.40.3 on a Solaris 4.1.3 sparc, but we use 8 to be safe.
        A buggy compiler should reuse the register of parent
        for one of the local variables, since it will think that
        parent can't possibly be used any more in this routine.
@@ -994,12 +991,6 @@ main() {
        || p != p5 || p != p6 || p != p7)
       _exit(1);
 
-    /* On some systems (e.g. SunOS 5.2), if the parent is catching
-       a signal, the child ignores the signal before execing,
-       and the parent later receives that signal, the parent dumps core.
-       Test for this by ignoring SIGINT in the child.  */
-    signal (SIGINT, SIG_IGN);
-
     /* On some systems (e.g. IRIX 3.3),
        vfork doesn't separate parent from child file descriptors.
        If the child closes a descriptor before it execs or exits,
@@ -1022,10 +1013,6 @@ main() {
         /* Did the vfork/compiler bug occur?  */
         || parent != getpid()
 
-        /* Did the signal handling bug occur?  */
-        || kill(parent, SIGINT) != 0
-        || signalled != 1
-
         /* Did the file descriptor bug occur?  */
         || fstat(fileno(stdout), &st) != 0
         );