view dev/autoconf213/autoconf.patch @ 480:1100f4b43d48

dev/autoconf213: initial import, closes #1573
author David Demelier <markand@malikania.fr>
date Sun, 07 Apr 2019 10:16:28 +0200
parents
children
line wrap: on
line source

Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
Date: 2016-06-11
Initial Package Version: 2.13
Upstream Status: Version is historic and unmaintained.
Origin: Found at fedora, plus fixes for LFS.
Description: All of the patches currently used by fedora, except for
the patch which ensures gawk is used in preference to mawk (we do not
install mawk).  For LFS: we put mktemp in /usr/bin not /bin, remove
the install-info target because that will overwrite standards.info
with an old version (fedora always use a DESTDIR), and change the
man and info dirs to ${datadir}/ i.e. /usr/share (an empty /usr/info
will otherwise be created).

diff -Naur a/acgeneral.m4 b/acgeneral.m4
--- a/acgeneral.m4	1999-01-05 13:27:37.000000000 +0000
+++ b/acgeneral.m4	2016-06-11 00:18:24.429043947 +0100
@@ -1817,10 +1817,6 @@
 [cat > conftest.$ac_ext <<EOF
 [#]line __oline__ "configure"
 #include "confdefs.h"
-ifelse(AC_LANG, CPLUSPLUS, [#ifdef __cplusplus
-extern "C" void exit(int);
-#endif
-])dnl
 [$1]
 EOF
 if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
@@ -1988,12 +1984,12 @@
 AC_MSG_CHECKING(size of $1)
 AC_CACHE_VAL(AC_CV_NAME,
 [AC_TRY_RUN([#include <stdio.h>
-main()
+int main()
 {
   FILE *f=fopen("conftestval", "w");
-  if (!f) exit(1);
+  if (!f) return(1);
   fprintf(f, "%d\n", sizeof($1));
-  exit(0);
+  return(0);
 }], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl
 AC_MSG_RESULT($AC_CV_NAME)
 AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
@@ -2160,20 +2156,38 @@
 dnl AC_OUTPUT_MAKE_DEFS()
 define(AC_OUTPUT_MAKE_DEFS,
 [# Transform confdefs.h into DEFS.
-dnl Using a here document instead of a string reduces the quoting nightmare.
 # Protect against shell expansion while executing Makefile rules.
 # Protect against Makefile macro expansion.
-cat > conftest.defs <<\EOF
+#
+# If the first sed substitution is executed (which looks for macros that
+# take arguments), then we branch to the quote section.  Otherwise,
+# look for a macro that doesn't take arguments.
+cat >confdef2opt.sed <<\_ACEOF
 changequote(<<, >>)dnl
-s%<<#define>> \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%-D\1=\2%g
-s%[ 	`~<<#>>$^&*(){}\\|;'"<>?]%\\&%g
-s%\[%\\&%g
-s%\]%\\&%g
-s%\$%$$%g
+t clear
+: clear
+s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*([^)]*)\)[ 	]*\(.*\),-D\1=\2,g
+t quote
+s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\),-D\1=\2,g
+t quote
+d
+: quote
+s,[ 	`~#$^&*(){}\\|;'"<>?],\\&,g
+s,\[,\\&,g
+s,\],\\&,g
+s,\$,$$,g
+p
 changequote([, ])dnl
-EOF
-DEFS=`sed -f conftest.defs confdefs.h | tr '\012' ' '`
-rm -f conftest.defs
+_ACEOF
+# We use echo to avoid assuming a particular line-breaking character.
+# The extra dot is to prevent the shell from consuming trailing
+# line-breaks from the sub-command output.  A line-break within
+# single-quotes doesn't work because, if this script is created in a
+# platform that uses two characters for line-breaks (e.g., DOS), tr
+# would break.
+ac_LF_and_DOT=`echo; echo .`
+DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
+rm -f confdef2opt.sed
 ])
 
 dnl Do the variable substitutions to create the Makefiles or whatever.
diff -Naur a/acspecific.m4 b/acspecific.m4
--- a/acspecific.m4	1999-01-05 13:27:52.000000000 +0000
+++ b/acspecific.m4	2016-06-11 00:18:17.533078644 +0100
@@ -152,8 +152,41 @@
     CXXFLAGS=
   fi
 fi
+
+AC_PROG_CXX_EXIT_DECLARATION
 ])
 
+
+# AC_PROG_CXX_EXIT_DECLARATION
+# -----------------------------
+# Find a valid prototype for exit and declare it in confdefs.h.
+AC_DEFUN(AC_PROG_CXX_EXIT_DECLARATION,
+[for ac_declaration in \
+   ''\
+   '#include <stdlib.h>' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  AC_TRY_COMPILE([#include <stdlib.h>
+$ac_declaration], 
+                 [exit (42);],
+                 [],
+                 [continue])
+  AC_TRY_COMPILE([$ac_declaration],
+                 [exit (42);],
+                 [break])
+done
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+])# AC_PROG_CXX_EXIT_DECLARATION
+
+
 dnl Determine a Fortran 77 compiler to use.  If `F77' is not already set
 dnl in the environment, check for `g77', `f77' and `f2c', in that order.
 dnl Set the output variable `F77' to the name of the compiler found.
@@ -1010,7 +1043,7 @@
 ])
 
 AC_DEFUN(AC_FUNC_MMAP,
-[AC_CHECK_HEADERS(unistd.h)
+[AC_CHECK_HEADERS(stdlib.h unistd.h sys/stat.h sys/types.h)
 AC_CHECK_FUNCS(getpagesize)
 AC_CACHE_CHECK(for working mmap, ac_cv_func_mmap_fixed_mapped,
 [AC_TRY_RUN([
@@ -1039,11 +1072,24 @@
 #include <fcntl.h>
 #include <sys/mman.h>
 
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
+#if HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
 /* This mess was copied from the GNU getpagesize.h.  */
 #ifndef HAVE_GETPAGESIZE
-# ifdef HAVE_UNISTD_H
-#  include <unistd.h>
-# endif
 
 /* Assume that all systems that can run configure have sys/param.h.  */
 # ifndef HAVE_SYS_PARAM_H
@@ -1373,6 +1419,8 @@
   r.ru_majflt = r.ru_minflt = 0;
   switch (fork()) {
   case 0: /* Child.  */
+    /* Unless we actually _do_ something, the kernel sometimes doesn't chalk up any system time to this process. */
+    if(fork()) { i = 123; wait(NULL); } else { i = 234; exit(0); }
     sleep(1); /* Give up the CPU.  */
     _exit(0);
   case -1: _exit(0); /* What can we do?  */
diff -Naur a/autoconf.sh b/autoconf.sh
--- a/autoconf.sh	1999-01-05 13:27:53.000000000 +0000
+++ b/autoconf.sh	2016-06-11 00:22:17.351872133 +0100
@@ -45,20 +45,20 @@
 esac
 
 : ${TMPDIR=/tmp}
-tmpout=${TMPDIR}/acout.$$
+tmpout=`/usr/bin/mktemp ${TMPDIR}/acout.XXXXXX`
 localdir=
 show_version=no
 
 while test $# -gt 0 ; do
    case "${1}" in
       -h | --help | --h* )
-         echo "${usage}" 1>&2; exit 0 ;;
+         echo "${usage}" 1>&2; rm -f $tmpout ; exit 0 ;;
       --localdir=* | --l*=* )
          localdir="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
          shift ;;
       -l | --localdir | --l*)
          shift
-         test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+         test $# -eq 0 && { echo "${usage}" 1>&2; rm -f $tmpout; exit 1; }
          localdir="${1}"
          shift ;;
       --macrodir=* | --m*=* )
@@ -66,7 +66,7 @@
          shift ;;
       -m | --macrodir | --m* )
          shift
-         test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+         test $# -eq 0 && { echo "${usage}" 1>&2; rm -f $tmpout; exit 1; }
          AC_MACRODIR="${1}"
          shift ;;
       --version | --v* )
@@ -76,7 +76,7 @@
       - )	# Use stdin as input.
         break ;;
       -* )
-        echo "${usage}" 1>&2; exit 1 ;;
+        echo "${usage}" 1>&2; rm -f $tmpout; exit 1 ;;
       * )
         break ;;
    esac
@@ -86,23 +86,25 @@
   version=`sed -n 's/define.AC_ACVERSION.[ 	]*\([0-9.]*\).*/\1/p' \
     $AC_MACRODIR/acgeneral.m4`
   echo "Autoconf version $version"
+  rm -f $tmpout
   exit 0
 fi
 
 case $# in
   0) infile=configure.in ;;
   1) infile="$1" ;;
-  *) echo "$usage" >&2; exit 1 ;;
+  *) echo "$usage" >&2; rm -f $tmpout; exit 1 ;;
 esac
 
 trap 'rm -f $tmpin $tmpout; exit 1' 1 2 15
 
-tmpin=${TMPDIR}/acin.$$ # Always set this, to avoid bogus errors from some rm's.
+tmpin=`/usr/bin/mktemp ${TMPDIR}/acin.XXXXXX`
+# Always set this, to avoid bogus errors from some rm's.
 if test z$infile = z-; then
   infile=$tmpin
-  cat > $infile
 elif test ! -r "$infile"; then
   echo "autoconf: ${infile}: No such file or directory" >&2
+  rm -f $tmpin $tmpout
   exit 1
 fi
 
@@ -111,6 +113,8 @@
 else
   use_localdir=
 fi
+# Make sure we don't leave those around - they are annoying
+trap 'rm -f $tmpin $tmpout' 0
 
 # Use the frozen version of Autoconf if available.
 r= f=
@@ -118,7 +122,7 @@
 case `$M4 --help < /dev/null 2>&1` in
 *reload-state*) test -r $AC_MACRODIR/autoconf.m4f && { r=--reload f=f; } ;;
 *traditional*) ;;
-*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin; exit 1 ;;
+*) echo Autoconf requires GNU m4 1.1 or later >&2; rm -f $tmpin $tmpout; exit 1 ;;
 esac
 
 $M4 -I$AC_MACRODIR $use_localdir $r autoconf.m4$f $infile > $tmpout ||
@@ -154,6 +158,6 @@
 /__oline__/s/^\([0-9][0-9]*\):\(.*\)__oline__/\2\1/
 ' >&4
 
-rm -f $tmpout
+rm -f $tmpout $tmpin
 
 exit $status
diff -Naur a/autoconf.texi b/autoconf.texi
--- a/autoconf.texi	1999-01-05 13:28:37.000000000 +0000
+++ b/autoconf.texi	2016-06-11 00:18:46.360933604 +0100
@@ -1,7 +1,7 @@
 \input texinfo @c -*-texinfo-*-
 @c %**start of header
-@setfilename autoconf.info
-@settitle Autoconf
+@setfilename autoconf213.info
+@settitle Autoconf-2.13
 @c For double-sided printing, uncomment:
 @c @setchapternewpage odd
 @c %**end of header
@@ -17,7 +17,8 @@
 @ifinfo
 @format
 START-INFO-DIR-ENTRY
-* Autoconf: (autoconf).         Create source code configuration scripts.
+* Autoconf213: (autoconf213).   Create source code configuration scripts.
+                                This is a legacy version of autoconf.
 END-INFO-DIR-ENTRY
 @end format
 
diff -Naur a/autoheader.sh b/autoheader.sh
--- a/autoheader.sh	1999-01-05 13:28:39.000000000 +0000
+++ b/autoheader.sh	2016-06-11 00:22:17.351872133 +0100
@@ -194,9 +194,9 @@
   # Some fgrep's have limits on the number of lines that can be in the
   # pattern on the command line, so use a temporary file containing the
   # pattern.
-  (fgrep_tmp=${TMPDIR-/tmp}/autoh$$
+  (fgrep_tmp=`/usr/bin/mktemp ${TMPDIR-/tmp}/autoh$$.XXXXXX`
    trap "rm -f $fgrep_tmp; exit 1" 1 2 15
-   cat > $fgrep_tmp <<EOF
+   cat >> $fgrep_tmp <<EOF
 $syms
 EOF
    fgrep -f $fgrep_tmp
diff -Naur a/autoupdate.sh b/autoupdate.sh
--- a/autoupdate.sh	1999-01-05 13:28:42.000000000 +0000
+++ b/autoupdate.sh	2016-06-11 00:23:19.151561252 +0100
@@ -26,7 +26,7 @@
 Usage: autoupdate [-h] [--help] [-m dir] [--macrodir=dir] 
        [--version] [template-file]" 
 
-sedtmp=/tmp/acups.$$
+sedtmp=`/usr/bin/mktemp /tmp/acups.XXXXXX`
 # For debugging.
 #sedtmp=/tmp/acups
 show_version=no
@@ -35,13 +35,13 @@
 while test $# -gt 0 ; do
    case "${1}" in 
       -h | --help | --h* )
-         echo "${usage}" 1>&2; exit 0 ;;
+         echo "${usage}" 1>&2; rm -f $sedtmp; exit 0 ;;
       --macrodir=* | --m*=* )
          AC_MACRODIR="`echo \"${1}\" | sed -e 's/^[^=]*=//'`"
          shift ;;
       -m | --macrodir | --m* ) 
          shift
-         test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+         test $# -eq 0 && { echo "${usage}" 1>&2; rm -f $sedtmp; exit 1; }
          AC_MACRODIR="${1}"
          shift ;;
       --version | --versio | --versi | --vers)
@@ -51,7 +51,7 @@
       - )	# Use stdin as input.
         break ;;
       -* )
-        echo "${usage}" 1>&2; exit 1 ;;
+        echo "${usage}" 1>&2; rm -f $sedtmp; exit 1 ;;
       * )
         break ;;
    esac
@@ -61,6 +61,7 @@
   version=`sed -n 's/define.AC_ACVERSION.[ 	]*\([0-9.]*\).*/\1/p' \
     $AC_MACRODIR/acgeneral.m4`
   echo "Autoconf version $version"
+  rm -f $sedtmp
   exit 0
 fi
 
@@ -68,6 +69,7 @@
 
 tmpout=acupo.$$
 trap 'rm -f $sedtmp $tmpout; exit 1' 1 2 15
+trap 'rm -f $sedtmp' 0
 case $# in
   0) infile=configure.in; out="> $tmpout"
      # Make sure $infile can be read, and $tmpout has the same permissions.
diff -Naur a/configure b/configure
--- a/configure	1999-01-05 13:28:57.000000000 +0000
+++ b/configure	2016-06-11 00:50:57.771231914 +0100
@@ -43,8 +43,8 @@
 libdir='${exec_prefix}/lib'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
+infodir='${datadir}/info'
+mandir='${datadir}/man'
 
 # Initialize some other variables.
 subdirs=
diff -Naur a/Makefile.in b/Makefile.in
--- a/Makefile.in	1999-01-05 13:27:16.000000000 +0000
+++ b/Makefile.in	2016-06-11 00:29:34.005678107 +0100
@@ -49,7 +49,7 @@
 
 # Directory in which to install library files.
 datadir = @datadir@
-acdatadir = $(datadir)/autoconf
+acdatadir = $(datadir)/autoconf-2.13
 
 # Directory in which to install documentation info files.
 infodir = @infodir@
@@ -68,8 +68,8 @@
 DISTFILES = AUTHORS COPYING ChangeLog ChangeLog.1 INSTALL \
 	Makefile.in NEWS README TODO $(M4FILES) \
 	acconfig.h acfunctions acheaders acidentifiers \
-	acmakevars acprograms autoconf.info* \
-	autoconf.sh autoconf.texi install.texi \
+	acmakevars acprograms autoconf213.info* \
+	autoconf.sh autoconf213.texi install.texi \
 	autoheader.sh autoscan.pl autoreconf.sh autoupdate.sh ifnames.sh \
 	config.guess config.sub configure configure.in \
 	install-sh mkinstalldirs texinfo.tex \
@@ -106,11 +106,11 @@
 autoconf.m4f: autoconf.m4 acgeneral.m4 acspecific.m4 acoldnames.m4
 autoheader.m4f: autoheader.m4 acgeneral.m4 acspecific.m4 acoldnames.m4
 
-info: autoconf.info @standards_info@ INSTALL
+info: autoconf213.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 --no-split --output=$@
+autoconf213.info: autoconf213.texi install.texi
+	$(MAKEINFO) -I$(srcdir) $(srcdir)/autoconf213.texi --no-split --output=$@
 
 INSTALL: install.texi
 	$(MAKEINFO) -I$(srcdir) $(srcdir)/install.texi --output=$@ \
@@ -121,8 +121,8 @@
 
 dvi: autoconf.dvi @standards_dvi@
 
-autoconf.dvi: autoconf.texi
-	$(TEXI2DVI) $(srcdir)/autoconf.texi
+autoconf.dvi: autoconf213.texi
+	$(TEXI2DVI) $(srcdir)/autoconf213.texi
 
 standards.dvi: standards.texi make-stds.texi
 	$(TEXI2DVI) $(srcdir)/standards.texi
@@ -137,35 +137,35 @@
 	cd testsuite && ${MAKE} AUTOCONF=${bindir}/autoconf $@
 
 installdirs:
-	$(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(infodir) $(acdatadir)
+	$(SHELL) ${srcdir}/mkinstalldirs $(DESTDIR)/$(bindir) $(DESTDIR)/$(infodir) $(DESTDIR)/$(acdatadir)
 
-install: all $(M4FILES) acconfig.h installdirs install-info
+install: all $(M4FILES) acconfig.h installdirs
 	for p in $(ASCRIPTS); do \
-	  $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \
+	  $(INSTALL_PROGRAM) $$p $(DESTDIR)/$(bindir)/`echo $$p|sed '$(transform)'`; \
 	done
 	for i in $(M4FROZEN); do \
-	  $(INSTALL_DATA) $$i $(acdatadir)/$$i; \
+	  $(INSTALL_DATA) $$i $(DESTDIR)/$(acdatadir)/$$i; \
 	done
 	for i in $(M4FILES) acconfig.h; do \
-	  $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \
+	  $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)/$(acdatadir)/$$i; \
 	done
 	-if test -f autoscan; then \
-	$(INSTALL_PROGRAM) autoscan $(bindir)/`echo autoscan|sed '$(transform)'`; \
+	$(INSTALL_PROGRAM) autoscan $(DESTDIR)/$(bindir)/`echo autoscan|sed '$(transform)'`; \
 	for i in acfunctions acheaders acidentifiers acprograms \
 	  acmakevars; do \
-	$(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \
+	$(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)/$(acdatadir)/$$i; \
 	done; \
 	else :; fi
 
 # Don't cd, to avoid breaking install-sh references.
 install-info: info installdirs
-	if test -f autoconf.info; then \
+	if test -f autoconf213.info; then \
 	  for i in *.info*; do \
-	    $(INSTALL_DATA) $$i $(infodir)/$$i; \
+	    $(INSTALL_DATA) $$i $(DESTDIR)/$(infodir)/$$i; \
 	  done; \
 	else \
 	  for i in $(srcdir)/*.info*; do \
-	    $(INSTALL_DATA) $$i $(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
+	    $(INSTALL_DATA) $$i $(DESTDIR)/$(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
 	  done; \
 	fi
 
@@ -174,7 +174,7 @@
 	  rm -f $(bindir)/`echo $$p|sed '$(transform)'`; \
 	done
 	rm -fr $(acdatadir)
-	cd $(infodir) && rm -f autoconf.info*
+	cd $(infodir) && rm -f autoconf213.info*
 	if test -f standards.info || test -f $(srcdir)/standards.info; \
 	then cd $(infodir) && rm -f standards.info*; fi
 
diff -Naur a/testsuite/autoconf.s/syntax.exp b/testsuite/autoconf.s/syntax.exp
--- a/testsuite/autoconf.s/syntax.exp	1999-01-05 13:29:54.000000000 +0000
+++ b/testsuite/autoconf.s/syntax.exp	2016-06-11 00:18:51.996905247 +0100
@@ -2,7 +2,7 @@
 
 send_user "Checking for syntax errors in the specific tests...\n"
 set script {s/^AC_DEFUN(\([^,]*\).*/\1/p}
-set macros [exec sed -n $script $srcdir/../acspecific.m4]
+set macros [exec sed -n $script $srcdir/../acspecific.m4 | grep -v -e AC_FUNC_GETLOADAVG -e F77]
 
 foreach mac $macros {
     send_user "$mac\n"