diff -Nru bison-3.5.1+dfsg/aclocal.m4 bison-3.8.2+dfsg/aclocal.m4
--- bison-3.5.1+dfsg/aclocal.m4 2020-01-19 13:15:55.000000000 +0000
+++ bison-3.8.2+dfsg/aclocal.m4 2021-09-25 04:53:54.000000000 +0000
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.4 -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -14,13 +14,13 @@
m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
-[m4_warning([this file was generated for autoconf 2.69.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
You have another version of autoconf. It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically 'autoreconf'.])])
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -35,7 +35,7 @@
[am__api_version='1.16'
dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
dnl require some minimum version. Point them to the right macro.
-m4_if([$1], [1.16.1], [],
+m4_if([$1], [1.16.4], [],
[AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
])
@@ -51,14 +51,14 @@
# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.4])dnl
m4_ifndef([AC_AUTOCONF_VERSION],
[m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
# AM_AUX_DIR_EXPAND -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@
# AM_CONDITIONAL -*- Autoconf -*-
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -141,7 +141,7 @@
Usually this means the macro was only invoked conditionally.]])
fi])])
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -332,7 +332,7 @@
# Generate code to set up dependency tracking. -*- Autoconf -*-
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -371,7 +371,9 @@
done
if test $am_rc -ne 0; then
AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
- for automatic dependency tracking. Try re-running configure with the
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE="gmake" (or whatever is
+ necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).])
fi
@@ -398,7 +400,7 @@
# Do all the work for Automake. -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -462,7 +464,7 @@
[_AM_SET_OPTIONS([$1])dnl
dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
m4_if(
- m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]),
+ m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),
[ok:ok],,
[m4_fatal([AC_INIT should be called with package and version arguments])])dnl
AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
@@ -514,6 +516,20 @@
[m4_define([AC_PROG_OBJCXX],
m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
])
+# Variables for tags utilities; see am/tags.am
+if test -z "$CTAGS"; then
+ CTAGS=ctags
+fi
+AC_SUBST([CTAGS])
+if test -z "$ETAGS"; then
+ ETAGS=etags
+fi
+AC_SUBST([ETAGS])
+if test -z "$CSCOPE"; then
+ CSCOPE=cscope
+fi
+AC_SUBST([CSCOPE])
+
AC_REQUIRE([AM_SILENT_RULES])dnl
dnl The testsuite driver may need to know about EXEEXT, so add the
dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
@@ -595,7 +611,7 @@
done
echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -616,7 +632,7 @@
fi
AC_SUBST([install_sh])])
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -637,7 +653,7 @@
# Check to see how 'make' treats includes. -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -680,7 +696,7 @@
# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -701,12 +717,7 @@
[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
AC_REQUIRE_AUX_FILE([missing])dnl
if test x"${MISSING+set}" != xset; then
- case $am_aux_dir in
- *\ * | *\ *)
- MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
- *)
- MISSING="\${SHELL} $am_aux_dir/missing" ;;
- esac
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
@@ -719,7 +730,7 @@
# Helper functions for option handling. -*- Autoconf -*-
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -748,7 +759,7 @@
AC_DEFUN([_AM_IF_OPTION],
[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -795,7 +806,7 @@
# For backward compatibility.
AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -814,7 +825,7 @@
# Check to make sure that the build environment is sane. -*- Autoconf -*-
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -895,7 +906,7 @@
rm -f conftest.file
])
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -955,7 +966,7 @@
_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
])
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -983,7 +994,7 @@
INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
AC_SUBST([INSTALL_STRIP_PROGRAM])])
-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
+# Copyright (C) 2006-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1002,7 +1013,7 @@
# Check how to create a tarball. -*- Autoconf -*-
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2021 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@@ -1136,51 +1147,74 @@
m4_include([m4/00gnulib.m4])
m4_include([m4/__inline.m4])
m4_include([m4/absolute-header.m4])
+m4_include([m4/access.m4])
m4_include([m4/alloca.m4])
m4_include([m4/asm-underscore.m4])
m4_include([m4/assert.m4])
m4_include([m4/bison-check-compiler-flag.m4])
m4_include([m4/bison-cxx-std.m4])
m4_include([m4/bison-i18n.m4])
+m4_include([m4/builtin-expect.m4])
m4_include([m4/c-working.m4])
m4_include([m4/calloc.m4])
m4_include([m4/canonicalize.m4])
+m4_include([m4/chdir-long.m4])
m4_include([m4/clock_time.m4])
m4_include([m4/close.m4])
+m4_include([m4/closedir.m4])
m4_include([m4/codeset.m4])
m4_include([m4/config-h.m4])
m4_include([m4/configmake.m4])
m4_include([m4/cxx.m4])
-m4_include([m4/dirname.m4])
+m4_include([m4/d-ino.m4])
+m4_include([m4/dirent_h.m4])
+m4_include([m4/dirfd.m4])
m4_include([m4/double-slash-root.m4])
+m4_include([m4/dup.m4])
m4_include([m4/dup2.m4])
+m4_include([m4/eaccess.m4])
m4_include([m4/eealloc.m4])
m4_include([m4/environ.m4])
m4_include([m4/errno_h.m4])
m4_include([m4/error.m4])
+m4_include([m4/execute.m4])
m4_include([m4/exponentd.m4])
m4_include([m4/exponentf.m4])
m4_include([m4/exponentl.m4])
m4_include([m4/extensions.m4])
m4_include([m4/extern-inline.m4])
m4_include([m4/fatal-signal.m4])
+m4_include([m4/fchdir.m4])
m4_include([m4/fcntl-o.m4])
m4_include([m4/fcntl.m4])
m4_include([m4/fcntl_h.m4])
+m4_include([m4/fdopendir.m4])
+m4_include([m4/ffs.m4])
+m4_include([m4/ffsl.m4])
+m4_include([m4/filenamecat.m4])
+m4_include([m4/findprog-in.m4])
m4_include([m4/flex.m4])
m4_include([m4/float_h.m4])
m4_include([m4/fopen.m4])
m4_include([m4/fpending.m4])
m4_include([m4/fpieee.m4])
m4_include([m4/fprintf-posix.m4])
+m4_include([m4/free.m4])
m4_include([m4/frexp.m4])
m4_include([m4/frexpl.m4])
m4_include([m4/fseterr.m4])
m4_include([m4/fstat.m4])
+m4_include([m4/fstatat.m4])
m4_include([m4/fsync.m4])
+m4_include([m4/getcwd-abort-bug.m4])
+m4_include([m4/getcwd-path-max.m4])
+m4_include([m4/getcwd.m4])
+m4_include([m4/getdelim.m4])
m4_include([m4/getdtablesize.m4])
m4_include([m4/gethrxtime.m4])
+m4_include([m4/getline.m4])
m4_include([m4/getopt.m4])
+m4_include([m4/getpagesize.m4])
m4_include([m4/getprogname.m4])
m4_include([m4/getrusage.m4])
m4_include([m4/gettext.m4])
@@ -1190,10 +1224,12 @@
m4_include([m4/gnulib-comp.m4])
m4_include([m4/host-cpu-c-abi.m4])
m4_include([m4/iconv.m4])
+m4_include([m4/iconv_h.m4])
+m4_include([m4/iconv_open.m4])
m4_include([m4/include_next.m4])
+m4_include([m4/inline.m4])
m4_include([m4/intlmacosx.m4])
m4_include([m4/intmax_t.m4])
-m4_include([m4/inttypes-pri.m4])
m4_include([m4/inttypes.m4])
m4_include([m4/inttypes_h.m4])
m4_include([m4/isnan.m4])
@@ -1201,6 +1237,8 @@
m4_include([m4/isnanf.m4])
m4_include([m4/isnanl.m4])
m4_include([m4/iswblank.m4])
+m4_include([m4/iswdigit.m4])
+m4_include([m4/iswxdigit.m4])
m4_include([m4/javacomp.m4])
m4_include([m4/javaexec.m4])
m4_include([m4/jm-winsz1.m4])
@@ -1220,7 +1258,6 @@
m4_include([m4/locale-ja.m4])
m4_include([m4/locale-zh.m4])
m4_include([m4/locale_h.m4])
-m4_include([m4/localtime-buffer.m4])
m4_include([m4/lock.m4])
m4_include([m4/lstat.m4])
m4_include([m4/m4.m4])
@@ -1234,12 +1271,15 @@
m4_include([m4/mbstate_t.m4])
m4_include([m4/mbswidth.m4])
m4_include([m4/memchr.m4])
+m4_include([m4/mempcpy.m4])
+m4_include([m4/memrchr.m4])
m4_include([m4/minmax.m4])
m4_include([m4/mmap-anon.m4])
m4_include([m4/mode_t.m4])
m4_include([m4/msvc-inval.m4])
m4_include([m4/msvc-nothrow.m4])
m4_include([m4/multiarch.m4])
+m4_include([m4/musl.m4])
m4_include([m4/nls.m4])
m4_include([m4/nocrash.m4])
m4_include([m4/non-recursive-gnulib-prefix-hack.m4])
@@ -1249,11 +1289,15 @@
m4_include([m4/open-cloexec.m4])
m4_include([m4/open-slash.m4])
m4_include([m4/open.m4])
+m4_include([m4/openat.m4])
+m4_include([m4/opendir.m4])
m4_include([m4/pathmax.m4])
m4_include([m4/perror.m4])
+m4_include([m4/pipe.m4])
m4_include([m4/pipe2.m4])
m4_include([m4/po.m4])
m4_include([m4/posix_spawn.m4])
+m4_include([m4/posix_spawn_faction_addchdir.m4])
m4_include([m4/printf-frexp.m4])
m4_include([m4/printf-frexpl.m4])
m4_include([m4/printf-posix-rpl.m4])
@@ -1264,12 +1308,17 @@
m4_include([m4/quotearg.m4])
m4_include([m4/raise.m4])
m4_include([m4/rawmemchr.m4])
+m4_include([m4/readdir.m4])
+m4_include([m4/readline.m4])
m4_include([m4/readlink.m4])
m4_include([m4/realloc.m4])
+m4_include([m4/reallocarray.m4])
m4_include([m4/relocatable-lib.m4])
m4_include([m4/relocatable.m4])
m4_include([m4/rename.m4])
+m4_include([m4/rewinddir.m4])
m4_include([m4/rmdir.m4])
+m4_include([m4/save-cwd.m4])
m4_include([m4/sched_h.m4])
m4_include([m4/setenv.m4])
m4_include([m4/setlocale_null.m4])
@@ -1288,7 +1337,7 @@
m4_include([m4/ssize_t.m4])
m4_include([m4/stat-time.m4])
m4_include([m4/stat.m4])
-m4_include([m4/std-gnu11.m4])
+m4_include([m4/stdalign.m4])
m4_include([m4/stdbool.m4])
m4_include([m4/stddef_h.m4])
m4_include([m4/stdint.m4])
@@ -1296,14 +1345,18 @@
m4_include([m4/stdio_h.m4])
m4_include([m4/stdlib_h.m4])
m4_include([m4/stpcpy.m4])
+m4_include([m4/stpncpy.m4])
m4_include([m4/strchrnul.m4])
m4_include([m4/strdup.m4])
m4_include([m4/strerror.m4])
m4_include([m4/strerror_r.m4])
m4_include([m4/string_h.m4])
+m4_include([m4/strings_h.m4])
m4_include([m4/strndup.m4])
m4_include([m4/strnlen.m4])
+m4_include([m4/strtod.m4])
m4_include([m4/strverscmp.m4])
+m4_include([m4/sys_ioctl_h.m4])
m4_include([m4/sys_resource_h.m4])
m4_include([m4/sys_socket_h.m4])
m4_include([m4/sys_stat_h.m4])
@@ -1311,10 +1364,12 @@
m4_include([m4/sys_times_h.m4])
m4_include([m4/sys_types_h.m4])
m4_include([m4/sys_wait_h.m4])
+m4_include([m4/termios_h.m4])
m4_include([m4/threadlib.m4])
m4_include([m4/time_h.m4])
m4_include([m4/timespec.m4])
m4_include([m4/tls.m4])
+m4_include([m4/unicodeio.m4])
m4_include([m4/unistd-safer.m4])
m4_include([m4/unistd_h.m4])
m4_include([m4/unlink.m4])
@@ -1339,3 +1394,5 @@
m4_include([m4/xalloc.m4])
m4_include([m4/xsize.m4])
m4_include([m4/xstrndup.m4])
+m4_include([m4/year2038.m4])
+m4_include([m4/zzgnulib.m4])
diff -Nru bison-3.5.1+dfsg/AUTHORS bison-3.8.2+dfsg/AUTHORS
--- bison-3.5.1+dfsg/AUTHORS 2020-01-10 18:16:23.000000000 +0000
+++ bison-3.8.2+dfsg/AUTHORS 2021-06-23 04:48:48.000000000 +0000
@@ -24,7 +24,7 @@
-----
-Copyright (C) 1998-2015, 2018-2020 Free Software Foundation, Inc.
+Copyright (C) 1998-2015, 2018-2021 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -39,4 +39,4 @@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with this program. If not, see .
+along with this program. If not, see .
diff -Nru bison-3.5.1+dfsg/build-aux/announce-gen bison-3.8.2+dfsg/build-aux/announce-gen
--- bison-3.5.1+dfsg/build-aux/announce-gen 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/announce-gen 2021-08-08 06:36:37.000000000 +0000
@@ -3,7 +3,7 @@
# Generate a release announcement message.
-# Copyright (C) 2002-2020 Free Software Foundation, Inc.
+# Copyright (C) 2002-2021 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -31,16 +31,18 @@
# are valid code in both sh and perl. When executed by sh, they re-execute
# the script through the perl program found in $PATH. The '-x' option
# is essential as well; without it, perl would re-execute the script
-# through /bin/sh. When executed by perl, the next two lines are a no-op.
+# through /bin/sh. When executed by perl, the next two lines are a no-op.
eval 'exec perl -wSx "$0" "$@"'
if 0;
-my $VERSION = '2018-03-07 03:46'; # UTC
+my $VERSION = '2021-08-04 09:17'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
+my $copyright_year = '2021';
+
use strict;
use Getopt::Long;
use POSIX qw(strftime);
@@ -48,13 +50,7 @@
(my $ME = $0) =~ s|.*/||;
my %valid_release_types = map {$_ => 1} qw (alpha beta stable);
-my @archive_suffixes = ('tar.gz', 'tar.bz2', 'tar.lzma', 'tar.xz');
-my %digest_classes =
- (
- 'md5' => (eval { require Digest::MD5; } and 'Digest::MD5'),
- 'sha1' => ((eval { require Digest::SHA; } and 'Digest::SHA')
- or (eval { require Digest::SHA1; } and 'Digest::SHA1'))
- );
+my @archive_suffixes = qw (tar.gz tar.bz2 tar.lz tar.lzma tar.xz);
my $srcdir = '.';
sub usage ($)
@@ -94,7 +90,7 @@
VERSION is the result of running git describe
in the gnulib source directory.
required if gnulib is in TOOL_LIST.
- --no-print-checksums do not emit MD5 or SHA1 checksums
+ --no-print-checksums do not emit SHA1 or SHA256 checksums
--archive-suffix=SUF add SUF to the list of archive suffixes
--mail-headers=HEADERS a space-separated list of mail headers, e.g.,
To: x\@example.com Cc: y-announce\@example.com,...
@@ -161,7 +157,7 @@
=item C.
+Print the SHA1 and SHA256 signature section for each C<@file>.
=cut
@@ -169,23 +165,18 @@
{
my (@file) = @_;
- print "Here are the MD5 and SHA1 checksums:\n";
+ print "Here are the SHA1 and SHA256 checksums:\n";
print "\n";
- foreach my $meth (qw (md5 sha1))
+ use Digest::file qw(digest_file_hex digest_file_base64);
+
+ foreach my $f (@file)
{
- my $class = $digest_classes{$meth} or next;
- foreach my $f (@file)
- {
- open IN, '<', $f
- or die "$ME: $f: cannot open for reading: $!\n";
- binmode IN;
- my $dig = $class->new->addfile(*IN)->hexdigest;
- close IN;
- print "$dig $f\n";
- }
+ print digest_file_hex($f, "SHA-1"), " $f\n";
+ print digest_file_base64($f, "SHA-256"), " $f\n";
}
- print "\n";
+ print "\nThe SHA256 checksum is base64 encoded, instead of the\n";
+ print "hexadecimal encoding that most checksum tools default to.\n\n";
}
=item C \@archive_suffixes,
help => sub { usage 0 },
- version => sub { print "$ME version $VERSION\n"; exit },
+ version =>
+ sub
+ {
+ print "$ME version $VERSION\n";
+ print "Copyright (C) $copyright_year Free Software Foundation, Inc.\n";
+ print "License GPLv3+: GNU GPL version 3 or later .\n"
+ . "This is free software: you are free to change and redistribute it.\n"
+ . "There is NO WARRANTY, to the extent permitted by law.\n";
+ print "\n";
+ my $author = "Jim Meyering";
+ print "Written by $author.\n";
+ exit
+ },
) or usage 1;
my $fail = 0;
diff -Nru bison-3.5.1+dfsg/build-aux/compile bison-3.8.2+dfsg/build-aux/compile
--- bison-3.5.1+dfsg/build-aux/compile 2019-10-29 20:22:22.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/compile 2021-09-25 04:54:03.000000000 +0000
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
# Written by Tom Tromey .
#
# This program is free software; you can redistribute it and/or modify
@@ -53,7 +53,7 @@
MINGW*)
file_conv=mingw
;;
- CYGWIN*)
+ CYGWIN* | MSYS*)
file_conv=cygwin
;;
*)
@@ -67,7 +67,7 @@
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
- cygwin/*)
+ cygwin/* | msys/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
diff -Nru bison-3.5.1+dfsg/build-aux/config.guess bison-3.8.2+dfsg/build-aux/config.guess
--- bison-3.5.1+dfsg/build-aux/config.guess 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/config.guess 2021-08-03 05:51:08.000000000 +0000
@@ -1,8 +1,10 @@
#! /bin/sh
# Attempt to guess a canonical system name.
-# Copyright 1992-2020 Free Software Foundation, Inc.
+# Copyright 1992-2021 Free Software Foundation, Inc.
-timestamp='2020-01-01'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2021-06-03'
# 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
@@ -27,11 +29,19 @@
# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
#
# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
#
# Please send patches to .
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
@@ -50,7 +60,7 @@
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright 1992-2020 Free Software Foundation, Inc.
+Copyright 1992-2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -84,6 +94,9 @@
exit 1
fi
+# Just in case it came from the environment.
+GUESS=
+
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
@@ -102,7 +115,7 @@
# prevent multiple calls if $tmp is already set
test "$tmp" && return 0
: "${TMPDIR=/tmp}"
- # shellcheck disable=SC2039
+ # shellcheck disable=SC2039,SC3028
{ tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
{ test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
{ tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
@@ -112,7 +125,7 @@
,,) echo "int x;" > "$dummy.c"
for driver in cc gcc c89 c99 ; do
if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
- CC_FOR_BUILD="$driver"
+ CC_FOR_BUILD=$driver
break
fi
done
@@ -133,14 +146,12 @@
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-case "$UNAME_SYSTEM" in
+case $UNAME_SYSTEM in
Linux|GNU|GNU/*)
- # If the system lacks a compiler, then just pick glibc.
- # We could probably try harder.
- LIBC=gnu
+ LIBC=unknown
set_cc_for_build
cat <<-EOF > "$dummy.c"
@@ -149,24 +160,37 @@
LIBC=uclibc
#elif defined(__dietlibc__)
LIBC=dietlibc
- #else
+ #elif defined(__GLIBC__)
LIBC=gnu
+ #else
+ #include
+ /* First heuristic to detect musl libc. */
+ #ifdef __DEFINED_va_list
+ LIBC=musl
+ #endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+ cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ eval "$cc_set_libc"
- # If ldd exists, use it to detect musl libc.
- if command -v ldd >/dev/null && \
- ldd --version 2>&1 | grep -q ^musl
- then
- LIBC=musl
+ # Second heuristic to detect musl libc.
+ if [ "$LIBC" = unknown ] &&
+ command -v ldd >/dev/null &&
+ ldd --version 2>&1 | grep -q ^musl; then
+ LIBC=musl
+ fi
+
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ if [ "$LIBC" = unknown ]; then
+ LIBC=gnu
fi
;;
esac
# Note: order is significant - the case branches are not exclusive.
-case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
+case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -178,12 +202,12 @@
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
- sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
- "/sbin/$sysctl" 2>/dev/null || \
- "/usr/sbin/$sysctl" 2>/dev/null || \
+ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
echo unknown)`
- case "$UNAME_MACHINE_ARCH" in
+ case $UNAME_MACHINE_ARCH in
+ aarch64eb) machine=aarch64_be-unknown ;;
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
@@ -192,13 +216,13 @@
earmv*)
arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
- machine="${arch}${endian}"-unknown
+ machine=${arch}${endian}-unknown
;;
- *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
+ *) machine=$UNAME_MACHINE_ARCH-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently (or will in the future) and ABI.
- case "$UNAME_MACHINE_ARCH" in
+ case $UNAME_MACHINE_ARCH in
earm*)
os=netbsdelf
;;
@@ -219,7 +243,7 @@
;;
esac
# Determine ABI tags.
- case "$UNAME_MACHINE_ARCH" in
+ case $UNAME_MACHINE_ARCH in
earm*)
expr='s/^earmv[0-9]/-eabi/;s/eb$//'
abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
@@ -230,7 +254,7 @@
# thus, need a distinct triplet. However, they do not need
# kernel version information, so it can be replaced with a
# suitable tag, in the style of linux-gnu.
- case "$UNAME_VERSION" in
+ case $UNAME_VERSION in
Debian*)
release='-gnu'
;;
@@ -241,51 +265,57 @@
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
- echo "$machine-${os}${release}${abi-}"
- exit ;;
+ GUESS=$machine-${os}${release}${abi-}
+ ;;
*:Bitrig:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
+ ;;
*:OpenBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
+ ;;
+ *:SecBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
+ ;;
*:LibertyBSD:*:*)
UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
- echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
+ ;;
*:MidnightBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
+ ;;
*:ekkoBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
+ ;;
*:SolidBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
+ ;;
*:OS108:*:*)
- echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
+ ;;
macppc:MirBSD:*:*)
- echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
+ ;;
*:MirBSD:*:*)
- echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
+ ;;
*:Sortix:*:*)
- echo "$UNAME_MACHINE"-unknown-sortix
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-sortix
+ ;;
*:Twizzler:*:*)
- echo "$UNAME_MACHINE"-unknown-twizzler
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-twizzler
+ ;;
*:Redox:*:*)
- echo "$UNAME_MACHINE"-unknown-redox
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-redox
+ ;;
mips:OSF1:*.*)
- echo mips-dec-osf1
- exit ;;
+ GUESS=mips-dec-osf1
+ ;;
alpha:OSF1:*:*)
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ trap '' 0
case $UNAME_RELEASE in
*4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -299,7 +329,7 @@
# covers most systems running today. This code pipes the CPU
# types through head -n 1, so we only detect the type of CPU 0.
ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
- case "$ALPHA_CPU_TYPE" in
+ case $ALPHA_CPU_TYPE in
"EV4 (21064)")
UNAME_MACHINE=alpha ;;
"EV4.5 (21064)")
@@ -336,75 +366,76 @@
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
- # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
- exitcode=$?
- trap '' 0
- exit $exitcode ;;
+ OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
+ ;;
Amiga*:UNIX_System_V:4.0:*)
- echo m68k-unknown-sysv4
- exit ;;
+ GUESS=m68k-unknown-sysv4
+ ;;
*:[Aa]miga[Oo][Ss]:*:*)
- echo "$UNAME_MACHINE"-unknown-amigaos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-amigaos
+ ;;
*:[Mm]orph[Oo][Ss]:*:*)
- echo "$UNAME_MACHINE"-unknown-morphos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-morphos
+ ;;
*:OS/390:*:*)
- echo i370-ibm-openedition
- exit ;;
+ GUESS=i370-ibm-openedition
+ ;;
*:z/VM:*:*)
- echo s390-ibm-zvmoe
- exit ;;
+ GUESS=s390-ibm-zvmoe
+ ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
- exit ;;
+ GUESS=powerpc-ibm-os400
+ ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
- echo arm-acorn-riscix"$UNAME_RELEASE"
- exit ;;
+ GUESS=arm-acorn-riscix$UNAME_RELEASE
+ ;;
arm*:riscos:*:*|arm*:RISCOS:*:*)
- echo arm-unknown-riscos
- exit ;;
+ GUESS=arm-unknown-riscos
+ ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
- echo hppa1.1-hitachi-hiuxmpp
- exit ;;
+ GUESS=hppa1.1-hitachi-hiuxmpp
+ ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
- if test "`(/bin/universe) 2>/dev/null`" = att ; then
- echo pyramid-pyramid-sysv3
- else
- echo pyramid-pyramid-bsd
- fi
- exit ;;
+ case `(/bin/universe) 2>/dev/null` in
+ att) GUESS=pyramid-pyramid-sysv3 ;;
+ *) GUESS=pyramid-pyramid-bsd ;;
+ esac
+ ;;
NILE*:*:*:dcosx)
- echo pyramid-pyramid-svr4
- exit ;;
+ GUESS=pyramid-pyramid-svr4
+ ;;
DRS?6000:unix:4.0:6*)
- echo sparc-icl-nx6
- exit ;;
+ GUESS=sparc-icl-nx6
+ ;;
DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7; exit ;;
- esac ;;
+ sparc) GUESS=sparc-icl-nx7 ;;
+ esac
+ ;;
s390x:SunOS:*:*)
- echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
+ ;;
sun4H:SunOS:5.*:*)
- echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-hal-solaris2$SUN_REL
+ ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
- echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris2$SUN_REL
+ ;;
i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
- echo i386-pc-auroraux"$UNAME_RELEASE"
- exit ;;
+ GUESS=i386-pc-auroraux$UNAME_RELEASE
+ ;;
i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
set_cc_for_build
SUN_ARCH=i386
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
@@ -412,41 +443,44 @@
SUN_ARCH=x86_64
fi
fi
- echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
+ ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
- echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris3$SUN_REL
+ ;;
sun4*:SunOS:*:*)
- case "`/usr/bin/arch -k`" in
+ case `/usr/bin/arch -k` in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
- echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
+ GUESS=sparc-sun-sunos$SUN_REL
+ ;;
sun3*:SunOS:*:*)
- echo m68k-sun-sunos"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
+ ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
- case "`/bin/arch`" in
+ case `/bin/arch` in
sun3)
- echo m68k-sun-sunos"$UNAME_RELEASE"
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
;;
sun4)
- echo sparc-sun-sunos"$UNAME_RELEASE"
+ GUESS=sparc-sun-sunos$UNAME_RELEASE
;;
esac
- exit ;;
+ ;;
aushp:SunOS:*:*)
- echo sparc-auspex-sunos"$UNAME_RELEASE"
- exit ;;
+ GUESS=sparc-auspex-sunos$UNAME_RELEASE
+ ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
@@ -456,41 +490,41 @@
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
- echo m68k-atari-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
- echo m68k-milan-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-milan-mint$UNAME_RELEASE
+ ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
- echo m68k-hades-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-hades-mint$UNAME_RELEASE
+ ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
- echo m68k-unknown-mint"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-unknown-mint$UNAME_RELEASE
+ ;;
m68k:machten:*:*)
- echo m68k-apple-machten"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-apple-machten$UNAME_RELEASE
+ ;;
powerpc:machten:*:*)
- echo powerpc-apple-machten"$UNAME_RELEASE"
- exit ;;
+ GUESS=powerpc-apple-machten$UNAME_RELEASE
+ ;;
RISC*:Mach:*:*)
- echo mips-dec-mach_bsd4.3
- exit ;;
+ GUESS=mips-dec-mach_bsd4.3
+ ;;
RISC*:ULTRIX:*:*)
- echo mips-dec-ultrix"$UNAME_RELEASE"
- exit ;;
+ GUESS=mips-dec-ultrix$UNAME_RELEASE
+ ;;
VAX*:ULTRIX*:*:*)
- echo vax-dec-ultrix"$UNAME_RELEASE"
- exit ;;
+ GUESS=vax-dec-ultrix$UNAME_RELEASE
+ ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
- echo clipper-intergraph-clix"$UNAME_RELEASE"
- exit ;;
+ GUESS=clipper-intergraph-clix$UNAME_RELEASE
+ ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
@@ -518,75 +552,76 @@
dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo mips-mips-riscos"$UNAME_RELEASE"
- exit ;;
+ GUESS=mips-mips-riscos$UNAME_RELEASE
+ ;;
Motorola:PowerMAX_OS:*:*)
- echo powerpc-motorola-powermax
- exit ;;
+ GUESS=powerpc-motorola-powermax
+ ;;
Motorola:*:4.3:PL8-*)
- echo powerpc-harris-powermax
- exit ;;
+ GUESS=powerpc-harris-powermax
+ ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
- echo powerpc-harris-powermax
- exit ;;
+ GUESS=powerpc-harris-powermax
+ ;;
Night_Hawk:Power_UNIX:*:*)
- echo powerpc-harris-powerunix
- exit ;;
+ GUESS=powerpc-harris-powerunix
+ ;;
m88k:CX/UX:7*:*)
- echo m88k-harris-cxux7
- exit ;;
+ GUESS=m88k-harris-cxux7
+ ;;
m88k:*:4*:R4*)
- echo m88k-motorola-sysv4
- exit ;;
+ GUESS=m88k-motorola-sysv4
+ ;;
m88k:*:3*:R3*)
- echo m88k-motorola-sysv3
- exit ;;
+ GUESS=m88k-motorola-sysv3
+ ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
- if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
+ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
then
- if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
- [ "$TARGET_BINARY_INTERFACE"x = x ]
+ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
+ test "$TARGET_BINARY_INTERFACE"x = x
then
- echo m88k-dg-dgux"$UNAME_RELEASE"
+ GUESS=m88k-dg-dgux$UNAME_RELEASE
else
- echo m88k-dg-dguxbcs"$UNAME_RELEASE"
+ GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
fi
else
- echo i586-dg-dgux"$UNAME_RELEASE"
+ GUESS=i586-dg-dgux$UNAME_RELEASE
fi
- exit ;;
+ ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
- echo m88k-dolphin-sysv3
- exit ;;
+ GUESS=m88k-dolphin-sysv3
+ ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
- echo m88k-motorola-sysv3
- exit ;;
+ GUESS=m88k-motorola-sysv3
+ ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
- echo m88k-tektronix-sysv3
- exit ;;
+ GUESS=m88k-tektronix-sysv3
+ ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
- echo m68k-tektronix-bsd
- exit ;;
+ GUESS=m68k-tektronix-bsd
+ ;;
*:IRIX*:*:*)
- echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
- exit ;;
+ IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
+ GUESS=mips-sgi-irix$IRIX_REL
+ ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
- echo i386-ibm-aix
- exit ;;
+ GUESS=i386-ibm-aix
+ ;;
ia64:AIX:*:*)
- if [ -x /usr/bin/oslevel ] ; then
+ if test -x /usr/bin/oslevel ; then
IBM_REV=`/usr/bin/oslevel`
else
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
- echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
- exit ;;
+ GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
+ ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
set_cc_for_build
@@ -603,16 +638,16 @@
EOF
if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
then
- echo "$SYSTEM_NAME"
+ GUESS=$SYSTEM_NAME
else
- echo rs6000-ibm-aix3.2.5
+ GUESS=rs6000-ibm-aix3.2.5
fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
- echo rs6000-ibm-aix3.2.4
+ GUESS=rs6000-ibm-aix3.2.4
else
- echo rs6000-ibm-aix3.2
+ GUESS=rs6000-ibm-aix3.2
fi
- exit ;;
+ ;;
*:AIX:*:[4567])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
@@ -620,56 +655,56 @@
else
IBM_ARCH=powerpc
fi
- if [ -x /usr/bin/lslpp ] ; then
- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+ if test -x /usr/bin/lslpp ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
- IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
fi
- echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
- exit ;;
+ GUESS=$IBM_ARCH-ibm-aix$IBM_REV
+ ;;
*:AIX:*:*)
- echo rs6000-ibm-aix
- exit ;;
+ GUESS=rs6000-ibm-aix
+ ;;
ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
- echo romp-ibm-bsd4.4
- exit ;;
+ GUESS=romp-ibm-bsd4.4
+ ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
- echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to
- exit ;; # report: romp-ibm BSD 4.3
+ GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
+ ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
- echo rs6000-bull-bosx
- exit ;;
+ GUESS=rs6000-bull-bosx
+ ;;
DPX/2?00:B.O.S.:*:*)
- echo m68k-bull-sysv3
- exit ;;
+ GUESS=m68k-bull-sysv3
+ ;;
9000/[34]??:4.3bsd:1.*:*)
- echo m68k-hp-bsd
- exit ;;
+ GUESS=m68k-hp-bsd
+ ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
- echo m68k-hp-bsd4.4
- exit ;;
+ GUESS=m68k-hp-bsd4.4
+ ;;
9000/[34678]??:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
- case "$UNAME_MACHINE" in
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ case $UNAME_MACHINE in
9000/31?) HP_ARCH=m68000 ;;
9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
- if [ -x /usr/bin/getconf ]; then
+ if test -x /usr/bin/getconf; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
- case "$sc_cpu_version" in
+ case $sc_cpu_version in
523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
- case "$sc_kernel_bits" in
+ case $sc_kernel_bits in
32) HP_ARCH=hppa2.0n ;;
64) HP_ARCH=hppa2.0w ;;
'') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
esac ;;
esac
fi
- if [ "$HP_ARCH" = "" ]; then
+ if test "$HP_ARCH" = ""; then
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
@@ -708,7 +743,7 @@
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
- if [ "$HP_ARCH" = hppa2.0w ]
+ if test "$HP_ARCH" = hppa2.0w
then
set_cc_for_build
@@ -729,12 +764,12 @@
HP_ARCH=hppa64
fi
fi
- echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
- exit ;;
+ GUESS=$HP_ARCH-hp-hpux$HPUX_REV
+ ;;
ia64:HP-UX:*:*)
- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
- echo ia64-hp-hpux"$HPUX_REV"
- exit ;;
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ GUESS=ia64-hp-hpux$HPUX_REV
+ ;;
3050*:HI-UX:*:*)
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
@@ -764,36 +799,36 @@
EOF
$CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
- echo unknown-hitachi-hiuxwe2
- exit ;;
+ GUESS=unknown-hitachi-hiuxwe2
+ ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
- echo hppa1.1-hp-bsd
- exit ;;
+ GUESS=hppa1.1-hp-bsd
+ ;;
9000/8??:4.3bsd:*:*)
- echo hppa1.0-hp-bsd
- exit ;;
+ GUESS=hppa1.0-hp-bsd
+ ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
- echo hppa1.0-hp-mpeix
- exit ;;
+ GUESS=hppa1.0-hp-mpeix
+ ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
- echo hppa1.1-hp-osf
- exit ;;
+ GUESS=hppa1.1-hp-osf
+ ;;
hp8??:OSF1:*:*)
- echo hppa1.0-hp-osf
- exit ;;
+ GUESS=hppa1.0-hp-osf
+ ;;
i*86:OSF1:*:*)
- if [ -x /usr/sbin/sysversion ] ; then
- echo "$UNAME_MACHINE"-unknown-osf1mk
+ if test -x /usr/sbin/sysversion ; then
+ GUESS=$UNAME_MACHINE-unknown-osf1mk
else
- echo "$UNAME_MACHINE"-unknown-osf1
+ GUESS=$UNAME_MACHINE-unknown-osf1
fi
- exit ;;
+ ;;
parisc*:Lites*:*:*)
- echo hppa1.1-hp-lites
- exit ;;
+ GUESS=hppa1.1-hp-lites
+ ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
- echo c1-convex-bsd
- exit ;;
+ GUESS=c1-convex-bsd
+ ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
@@ -801,17 +836,18 @@
fi
exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
- echo c34-convex-bsd
- exit ;;
+ GUESS=c34-convex-bsd
+ ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
- echo c38-convex-bsd
- exit ;;
+ GUESS=c38-convex-bsd
+ ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
- echo c4-convex-bsd
- exit ;;
+ GUESS=c4-convex-bsd
+ ;;
CRAY*Y-MP:*:*:*)
- echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=ymp-cray-unicos$CRAY_REL
+ ;;
CRAY*[A-Z]90:*:*:*)
echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
@@ -819,112 +855,124 @@
-e 's/\.[^.]*$/.X/'
exit ;;
CRAY*TS:*:*:*)
- echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=t90-cray-unicos$CRAY_REL
+ ;;
CRAY*T3E:*:*:*)
- echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=alphaev5-cray-unicosmk$CRAY_REL
+ ;;
CRAY*SV1:*:*:*)
- echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=sv1-cray-unicos$CRAY_REL
+ ;;
*:UNICOS/mp:*:*)
- echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
- exit ;;
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=craynv-cray-unicosmp$CRAY_REL
+ ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
5000:UNIX_System_V:4.*:*)
FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit ;;
+ GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
- echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
+ ;;
sparc*:BSD/OS:*:*)
- echo sparc-unknown-bsdi"$UNAME_RELEASE"
- exit ;;
+ GUESS=sparc-unknown-bsdi$UNAME_RELEASE
+ ;;
*:BSD/OS:*:*)
- echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
+ ;;
arm:FreeBSD:*:*)
UNAME_PROCESSOR=`uname -p`
set_cc_for_build
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
else
- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
fi
- exit ;;
+ ;;
*:FreeBSD:*:*)
UNAME_PROCESSOR=`/usr/bin/uname -p`
- case "$UNAME_PROCESSOR" in
+ case $UNAME_PROCESSOR in
amd64)
UNAME_PROCESSOR=x86_64 ;;
i386)
UNAME_PROCESSOR=i586 ;;
esac
- echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
- exit ;;
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
+ ;;
i*:CYGWIN*:*)
- echo "$UNAME_MACHINE"-pc-cygwin
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-cygwin
+ ;;
*:MINGW64*:*)
- echo "$UNAME_MACHINE"-pc-mingw64
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-mingw64
+ ;;
*:MINGW*:*)
- echo "$UNAME_MACHINE"-pc-mingw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-mingw32
+ ;;
*:MSYS*:*)
- echo "$UNAME_MACHINE"-pc-msys
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-msys
+ ;;
i*:PW*:*)
- echo "$UNAME_MACHINE"-pc-pw32
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-pw32
+ ;;
*:Interix*:*)
- case "$UNAME_MACHINE" in
+ case $UNAME_MACHINE in
x86)
- echo i586-pc-interix"$UNAME_RELEASE"
- exit ;;
+ GUESS=i586-pc-interix$UNAME_RELEASE
+ ;;
authenticamd | genuineintel | EM64T)
- echo x86_64-unknown-interix"$UNAME_RELEASE"
- exit ;;
+ GUESS=x86_64-unknown-interix$UNAME_RELEASE
+ ;;
IA64)
- echo ia64-unknown-interix"$UNAME_RELEASE"
- exit ;;
+ GUESS=ia64-unknown-interix$UNAME_RELEASE
+ ;;
esac ;;
i*:UWIN*:*)
- echo "$UNAME_MACHINE"-pc-uwin
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-uwin
+ ;;
amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
- echo x86_64-pc-cygwin
- exit ;;
+ GUESS=x86_64-pc-cygwin
+ ;;
prep*:SunOS:5.*:*)
- echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
- exit ;;
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=powerpcle-unknown-solaris2$SUN_REL
+ ;;
*:GNU:*:*)
# the GNU system
- echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
- exit ;;
+ GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
+ GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
+ ;;
*:GNU/*:*:*)
# 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 ;;
+ GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
+ ;;
*:Minix:*:*)
- echo "$UNAME_MACHINE"-unknown-minix
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-minix
+ ;;
aarch64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
aarch64_be:Linux:*:*)
UNAME_MACHINE=aarch64_be
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
EV5) UNAME_MACHINE=alphaev5 ;;
@@ -937,60 +985,63 @@
esac
objdump --private-headers /bin/sh | grep -q ld.so.1
if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
- arc:Linux:*:* | arceb:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
arm*:Linux:*:*)
set_cc_for_build
if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_EABI__
then
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
else
if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
| grep -q __ARM_PCS_VFP
then
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
else
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
fi
fi
- exit ;;
+ ;;
avr32*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
cris:Linux:*:*)
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
crisv32:Linux:*:*)
- echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
e2k:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
frv:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
hexagon:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
i*86:Linux:*:*)
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBC
+ ;;
ia64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
k1om:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
m32r*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
m68*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
mips:Linux:*:* | mips64:Linux:*:*)
set_cc_for_build
IS_GLIBC=0
@@ -1035,113 +1086,124 @@
#endif
#endif
EOF
- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
+ cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
+ eval "$cc_set_vars"
test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
;;
mips64el:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
openrisc*:Linux:*:*)
- echo or1k-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=or1k-unknown-linux-$LIBC
+ ;;
or32:Linux:*:* | or1k*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
padre:Linux:*:*)
- echo sparc-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=sparc-unknown-linux-$LIBC
+ ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
- echo hppa64-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=hppa64-unknown-linux-$LIBC
+ ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
- PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
- PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
- *) echo hppa-unknown-linux-"$LIBC" ;;
+ PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
+ PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
+ *) GUESS=hppa-unknown-linux-$LIBC ;;
esac
- exit ;;
+ ;;
ppc64:Linux:*:*)
- echo powerpc64-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=powerpc64-unknown-linux-$LIBC
+ ;;
ppc:Linux:*:*)
- echo powerpc-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=powerpc-unknown-linux-$LIBC
+ ;;
ppc64le:Linux:*:*)
- echo powerpc64le-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=powerpc64le-unknown-linux-$LIBC
+ ;;
ppcle:Linux:*:*)
- echo powerpcle-unknown-linux-"$LIBC"
- exit ;;
- riscv32:Linux:*:* | riscv64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=powerpcle-unknown-linux-$LIBC
+ ;;
+ riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
s390:Linux:*:* | s390x:Linux:*:*)
- echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
+ ;;
sh64*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
sh*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
tile*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
vax:Linux:*:*)
- echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-dec-linux-$LIBC
+ ;;
x86_64:Linux:*:*)
- echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
- exit ;;
+ set_cc_for_build
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_X32 >/dev/null
+ then
+ LIBCABI=${LIBC}x32
+ fi
+ fi
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
+ ;;
xtensa*:Linux:*:*)
- echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
- echo i386-sequent-sysv4
- exit ;;
+ GUESS=i386-sequent-sysv4
+ ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
- echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
+ ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
- echo "$UNAME_MACHINE"-pc-os2-emx
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-os2-emx
+ ;;
i*86:XTS-300:*:STOP)
- echo "$UNAME_MACHINE"-unknown-stop
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-stop
+ ;;
i*86:atheos:*:*)
- echo "$UNAME_MACHINE"-unknown-atheos
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-atheos
+ ;;
i*86:syllable:*:*)
- echo "$UNAME_MACHINE"-pc-syllable
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-syllable
+ ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
- echo i386-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=i386-unknown-lynxos$UNAME_RELEASE
+ ;;
i*86:*DOS:*:*)
- echo "$UNAME_MACHINE"-pc-msdosdjgpp
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-msdosdjgpp
+ ;;
i*86:*:4.*:*)
UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
- echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
+ GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
else
- echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
+ GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
fi
- exit ;;
+ ;;
i*86:*:5:[678]*)
# UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
@@ -1149,12 +1211,12 @@
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
- echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1164,11 +1226,11 @@
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
- echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
+ GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
else
- echo "$UNAME_MACHINE"-pc-sysv32
+ GUESS=$UNAME_MACHINE-pc-sysv32
fi
- exit ;;
+ ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
@@ -1176,31 +1238,31 @@
# Note: whatever this is, it MUST be the same as what config.sub
# prints for the "djgpp" host, or else GDB configure will decide that
# this is a cross-build.
- echo i586-pc-msdosdjgpp
- exit ;;
+ GUESS=i586-pc-msdosdjgpp
+ ;;
Intel:Mach:3*:*)
- echo i386-pc-mach3
- exit ;;
+ GUESS=i386-pc-mach3
+ ;;
paragon:*:*:*)
- echo i860-intel-osf1
- exit ;;
+ GUESS=i860-intel-osf1
+ ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
- echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
+ GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
- echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4
+ GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
fi
- exit ;;
+ ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
- echo m68010-convergent-sysv
- exit ;;
+ GUESS=m68010-convergent-sysv
+ ;;
mc68k:UNIX:SYSTEM5:3.51m)
- echo m68k-convergent-sysv
- exit ;;
+ GUESS=m68k-convergent-sysv
+ ;;
M680?0:D-NIX:5.3:*)
- echo m68k-diab-dnix
- exit ;;
+ GUESS=m68k-diab-dnix
+ ;;
M68*:*:R3V[5678]*:*)
test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
@@ -1225,113 +1287,116 @@
/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
&& { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
- echo m68k-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-unknown-lynxos$UNAME_RELEASE
+ ;;
mc68030:UNIX_System_V:4.*:*)
- echo m68k-atari-sysv4
- exit ;;
+ GUESS=m68k-atari-sysv4
+ ;;
TSUNAMI:LynxOS:2.*:*)
- echo sparc-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=sparc-unknown-lynxos$UNAME_RELEASE
+ ;;
rs6000:LynxOS:2.*:*)
- echo rs6000-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
+ ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
- echo powerpc-unknown-lynxos"$UNAME_RELEASE"
- exit ;;
+ GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
+ ;;
SM[BE]S:UNIX_SV:*:*)
- echo mips-dde-sysv"$UNAME_RELEASE"
- exit ;;
+ GUESS=mips-dde-sysv$UNAME_RELEASE
+ ;;
RM*:ReliantUNIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
+ GUESS=mips-sni-sysv4
+ ;;
RM*:SINIX-*:*:*)
- echo mips-sni-sysv4
- exit ;;
+ GUESS=mips-sni-sysv4
+ ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- echo "$UNAME_MACHINE"-sni-sysv4
+ GUESS=$UNAME_MACHINE-sni-sysv4
else
- echo ns32k-sni-sysv
+ GUESS=ns32k-sni-sysv
fi
- exit ;;
+ ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says
- echo i586-unisys-sysv4
- exit ;;
+ GUESS=i586-unisys-sysv4
+ ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes .
# How about differentiating between stratus architectures? -djm
- echo hppa1.1-stratus-sysv4
- exit ;;
+ GUESS=hppa1.1-stratus-sysv4
+ ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
- echo i860-stratus-sysv4
- exit ;;
+ GUESS=i860-stratus-sysv4
+ ;;
i*86:VOS:*:*)
# From Paul.Green@stratus.com.
- echo "$UNAME_MACHINE"-stratus-vos
- exit ;;
+ GUESS=$UNAME_MACHINE-stratus-vos
+ ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
- echo hppa1.1-stratus-vos
- exit ;;
+ GUESS=hppa1.1-stratus-vos
+ ;;
mc68*:A/UX:*:*)
- echo m68k-apple-aux"$UNAME_RELEASE"
- exit ;;
+ GUESS=m68k-apple-aux$UNAME_RELEASE
+ ;;
news*:NEWS-OS:6*:*)
- echo mips-sony-newsos6
- exit ;;
+ GUESS=mips-sony-newsos6
+ ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
- if [ -d /usr/nec ]; then
- echo mips-nec-sysv"$UNAME_RELEASE"
+ if test -d /usr/nec; then
+ GUESS=mips-nec-sysv$UNAME_RELEASE
else
- echo mips-unknown-sysv"$UNAME_RELEASE"
+ GUESS=mips-unknown-sysv$UNAME_RELEASE
fi
- exit ;;
+ ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
- echo powerpc-be-beos
- exit ;;
+ GUESS=powerpc-be-beos
+ ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
- echo powerpc-apple-beos
- exit ;;
+ GUESS=powerpc-apple-beos
+ ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
- echo i586-pc-beos
- exit ;;
+ GUESS=i586-pc-beos
+ ;;
BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
- echo i586-pc-haiku
- exit ;;
+ GUESS=i586-pc-haiku
+ ;;
x86_64:Haiku:*:*)
- echo x86_64-unknown-haiku
- exit ;;
+ GUESS=x86_64-unknown-haiku
+ ;;
SX-4:SUPER-UX:*:*)
- echo sx4-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx4-nec-superux$UNAME_RELEASE
+ ;;
SX-5:SUPER-UX:*:*)
- echo sx5-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx5-nec-superux$UNAME_RELEASE
+ ;;
SX-6:SUPER-UX:*:*)
- echo sx6-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx6-nec-superux$UNAME_RELEASE
+ ;;
SX-7:SUPER-UX:*:*)
- echo sx7-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx7-nec-superux$UNAME_RELEASE
+ ;;
SX-8:SUPER-UX:*:*)
- echo sx8-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx8-nec-superux$UNAME_RELEASE
+ ;;
SX-8R:SUPER-UX:*:*)
- echo sx8r-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sx8r-nec-superux$UNAME_RELEASE
+ ;;
SX-ACE:SUPER-UX:*:*)
- echo sxace-nec-superux"$UNAME_RELEASE"
- exit ;;
+ GUESS=sxace-nec-superux$UNAME_RELEASE
+ ;;
Power*:Rhapsody:*:*)
- echo powerpc-apple-rhapsody"$UNAME_RELEASE"
- exit ;;
+ GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
+ ;;
*:Rhapsody:*:*)
- echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
+ ;;
+ arm64:Darwin:*:*)
+ GUESS=aarch64-apple-darwin$UNAME_RELEASE
+ ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p`
case $UNAME_PROCESSOR in
@@ -1346,7 +1411,7 @@
else
set_cc_for_build
fi
- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
@@ -1367,109 +1432,116 @@
# uname -m returns i386 or x86_64
UNAME_PROCESSOR=$UNAME_MACHINE
fi
- echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
+ ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = x86; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
- echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
+ ;;
*:QNX:*:4*)
- echo i386-pc-qnx
- exit ;;
+ GUESS=i386-pc-qnx
+ ;;
NEO-*:NONSTOP_KERNEL:*:*)
- echo neo-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=neo-tandem-nsk$UNAME_RELEASE
+ ;;
NSE-*:NONSTOP_KERNEL:*:*)
- echo nse-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=nse-tandem-nsk$UNAME_RELEASE
+ ;;
NSR-*:NONSTOP_KERNEL:*:*)
- echo nsr-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=nsr-tandem-nsk$UNAME_RELEASE
+ ;;
NSV-*:NONSTOP_KERNEL:*:*)
- echo nsv-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=nsv-tandem-nsk$UNAME_RELEASE
+ ;;
NSX-*:NONSTOP_KERNEL:*:*)
- echo nsx-tandem-nsk"$UNAME_RELEASE"
- exit ;;
+ GUESS=nsx-tandem-nsk$UNAME_RELEASE
+ ;;
*:NonStop-UX:*:*)
- echo mips-compaq-nonstopux
- exit ;;
+ GUESS=mips-compaq-nonstopux
+ ;;
BS2000:POSIX*:*:*)
- echo bs2000-siemens-sysv
- exit ;;
+ GUESS=bs2000-siemens-sysv
+ ;;
DS/*:UNIX_System_V:*:*)
- echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
+ ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
- # shellcheck disable=SC2154
- if test "$cputype" = 386; then
+ if test "${cputype-}" = 386; then
UNAME_MACHINE=i386
- else
- UNAME_MACHINE="$cputype"
+ elif test "x${cputype-}" != x; then
+ UNAME_MACHINE=$cputype
fi
- echo "$UNAME_MACHINE"-unknown-plan9
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-plan9
+ ;;
*:TOPS-10:*:*)
- echo pdp10-unknown-tops10
- exit ;;
+ GUESS=pdp10-unknown-tops10
+ ;;
*:TENEX:*:*)
- echo pdp10-unknown-tenex
- exit ;;
+ GUESS=pdp10-unknown-tenex
+ ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
- echo pdp10-dec-tops20
- exit ;;
+ GUESS=pdp10-dec-tops20
+ ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
- echo pdp10-xkl-tops20
- exit ;;
+ GUESS=pdp10-xkl-tops20
+ ;;
*:TOPS-20:*:*)
- echo pdp10-unknown-tops20
- exit ;;
+ GUESS=pdp10-unknown-tops20
+ ;;
*:ITS:*:*)
- echo pdp10-unknown-its
- exit ;;
+ GUESS=pdp10-unknown-its
+ ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux"$UNAME_RELEASE"
- exit ;;
+ GUESS=mips-sei-seiux$UNAME_RELEASE
+ ;;
*:DragonFly:*:*)
- echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
- exit ;;
+ DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
+ ;;
*:*VMS:*:*)
UNAME_MACHINE=`(uname -p) 2>/dev/null`
- case "$UNAME_MACHINE" in
- A*) echo alpha-dec-vms ; exit ;;
- I*) echo ia64-dec-vms ; exit ;;
- V*) echo vax-dec-vms ; exit ;;
+ case $UNAME_MACHINE in
+ A*) GUESS=alpha-dec-vms ;;
+ I*) GUESS=ia64-dec-vms ;;
+ V*) GUESS=vax-dec-vms ;;
esac ;;
*:XENIX:*:SysV)
- echo i386-pc-xenix
- exit ;;
+ GUESS=i386-pc-xenix
+ ;;
i*86:skyos:*:*)
- echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
- exit ;;
+ SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
+ GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
+ ;;
i*86:rdos:*:*)
- echo "$UNAME_MACHINE"-pc-rdos
- exit ;;
- i*86:AROS:*:*)
- echo "$UNAME_MACHINE"-pc-aros
- exit ;;
+ GUESS=$UNAME_MACHINE-pc-rdos
+ ;;
+ *:AROS:*:*)
+ GUESS=$UNAME_MACHINE-unknown-aros
+ ;;
x86_64:VMkernel:*:*)
- echo "$UNAME_MACHINE"-unknown-esx
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-esx
+ ;;
amd64:Isilon\ OneFS:*:*)
- echo x86_64-unknown-onefs
- exit ;;
+ GUESS=x86_64-unknown-onefs
+ ;;
*:Unleashed:*:*)
- echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
- exit ;;
+ GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
+ ;;
esac
+# Do we have a guess based on uname results?
+if test "x$GUESS" != x; then
+ echo "$GUESS"
+ exit
+fi
+
# No uname command or uname output not recognized.
set_cc_for_build
cat > "$dummy.c" </dev/null && SYSTEM_NAME=`$dummy` &&
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
{ echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
@@ -1609,7 +1681,7 @@
echo "$0: unable to guess system type" >&2
-case "$UNAME_MACHINE:$UNAME_SYSTEM" in
+case $UNAME_MACHINE:$UNAME_SYSTEM in
mips:Linux | mips64:Linux)
# If we got here on MIPS GNU/Linux, output extra information.
cat >&2 <&2 <, 1996
#
@@ -66,7 +66,7 @@
dgux*)
shlibpath_var=LD_LIBRARY_PATH
;;
- freebsd* | dragonfly*)
+ freebsd* | dragonfly* | midnightbsd*)
shlibpath_var=LD_LIBRARY_PATH
;;
gnu*)
diff -Nru bison-3.5.1+dfsg/build-aux/config.rpath bison-3.8.2+dfsg/build-aux/config.rpath
--- bison-3.5.1+dfsg/build-aux/config.rpath 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/config.rpath 2021-03-10 05:41:24.000000000 +0000
@@ -2,7 +2,7 @@
# Output a system dependent set of variables, describing how to set the
# run time search path of shared libraries in an executable.
#
-# Copyright 1996-2020 Free Software Foundation, Inc.
+# Copyright 1996-2021 Free Software Foundation, Inc.
# Taken from GNU libtool, 2001
# Originally by Gordon Matzigkeit , 1996
#
@@ -371,7 +371,7 @@
hardcode_direct=yes
hardcode_minus_L=yes
;;
- freebsd* | dragonfly*)
+ freebsd* | dragonfly* | midnightbsd*)
hardcode_libdir_flag_spec='-R$libdir'
hardcode_direct=yes
;;
@@ -547,7 +547,7 @@
freebsd[23].*)
library_names_spec='$libname$shrext$versuffix'
;;
- freebsd* | dragonfly*)
+ freebsd* | dragonfly* | midnightbsd*)
library_names_spec='$libname$shrext'
;;
gnu*)
diff -Nru bison-3.5.1+dfsg/build-aux/config.sub bison-3.8.2+dfsg/build-aux/config.sub
--- bison-3.5.1+dfsg/build-aux/config.sub 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/config.sub 2021-09-14 04:58:45.000000000 +0000
@@ -1,8 +1,10 @@
#! /bin/sh
# Configuration validation subroutine script.
-# Copyright 1992-2020 Free Software Foundation, Inc.
+# Copyright 1992-2021 Free Software Foundation, Inc.
-timestamp='2020-01-01'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2021-08-14'
# 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
@@ -33,7 +35,7 @@
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
@@ -50,6 +52,13 @@
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
@@ -67,7 +76,7 @@
version="\
GNU config.sub ($timestamp)
-Copyright 1992-2020 Free Software Foundation, Inc.
+Copyright 1992-2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -112,9 +121,11 @@
# Split fields of configuration type
# shellcheck disable=SC2162
+saved_IFS=$IFS
IFS="-" read field1 field2 field3 field4 <&2
- exit 1
+ # No normalization, but not necessarily accepted, that comes below.
;;
esac
+
else
# Here we handle the default operating systems that come with various machines.
@@ -1528,6 +1522,7 @@
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
+kernel=
case $cpu-$vendor in
score-*)
os=elf
@@ -1539,7 +1534,8 @@
os=riscix1.2
;;
arm*-rebel)
- os=linux
+ kernel=linux
+ os=gnu
;;
arm*-semi)
os=aout
@@ -1705,84 +1701,179 @@
os=none
;;
esac
+
fi
+# Now, validate our (potentially fixed-up) OS.
+case $os in
+ # Sometimes we do "kernel-libc", so those need to count as OSes.
+ musl* | newlib* | relibc* | uclibc*)
+ ;;
+ # Likewise for "kernel-abi"
+ eabi* | gnueabi*)
+ ;;
+ # VxWorks passes extra cpu info in the 4th filed.
+ simlinux | simwindows | spe)
+ ;;
+ # Now accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST end in a * to match a version number.
+ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
+ | hiux* | abug | nacl* | netware* | windows* \
+ | os9* | macos* | osx* | ios* \
+ | mpw* | magic* | mmixware* | mon960* | lnews* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
+ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
+ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* | serenity* \
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | mint* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
+ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*)
+ ;;
+ # This one is extra strict with allowed versions
+ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ none)
+ ;;
+ *)
+ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# As a final step for OS-related things, validate the OS-kernel combination
+# (given a valid OS), if there is a kernel.
+case $kernel-$os in
+ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
+ | linux-musl* | linux-relibc* | linux-uclibc* )
+ ;;
+ uclinux-uclibc* )
+ ;;
+ -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
+ # These are just libc implementations, not actual OSes, and thus
+ # require a kernel.
+ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ kfreebsd*-gnu* | kopensolaris*-gnu*)
+ ;;
+ vxworks-simlinux | vxworks-simwindows | vxworks-spe)
+ ;;
+ nto-qnx*)
+ ;;
+ os2-emx)
+ ;;
+ *-eabi* | *-gnueabi*)
+ ;;
+ -*)
+ # Blank kernel with real OS is always fine.
+ ;;
+ *-*)
+ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
+ exit 1
+ ;;
+esac
+
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
case $vendor in
unknown)
- case $os in
- riscix*)
+ case $cpu-$os in
+ *-riscix*)
vendor=acorn
;;
- sunos*)
+ *-sunos*)
vendor=sun
;;
- cnk*|-aix*)
+ *-cnk* | *-aix*)
vendor=ibm
;;
- beos*)
+ *-beos*)
vendor=be
;;
- hpux*)
+ *-hpux*)
vendor=hp
;;
- mpeix*)
+ *-mpeix*)
vendor=hp
;;
- hiux*)
+ *-hiux*)
vendor=hitachi
;;
- unos*)
+ *-unos*)
vendor=crds
;;
- dgux*)
+ *-dgux*)
vendor=dg
;;
- luna*)
+ *-luna*)
vendor=omron
;;
- genix*)
+ *-genix*)
vendor=ns
;;
- clix*)
+ *-clix*)
vendor=intergraph
;;
- mvs* | opened*)
+ *-mvs* | *-opened*)
+ vendor=ibm
+ ;;
+ *-os400*)
vendor=ibm
;;
- os400*)
+ s390-* | s390x-*)
vendor=ibm
;;
- ptx*)
+ *-ptx*)
vendor=sequent
;;
- tpf*)
+ *-tpf*)
vendor=ibm
;;
- vxsim* | vxworks* | windiss*)
+ *-vxsim* | *-vxworks* | *-windiss*)
vendor=wrs
;;
- aux*)
+ *-aux*)
vendor=apple
;;
- hms*)
+ *-hms*)
vendor=hitachi
;;
- mpw* | macos*)
+ *-mpw* | *-macos*)
vendor=apple
;;
- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
vendor=atari
;;
- vos*)
+ *-vos*)
vendor=stratus
;;
esac
;;
esac
-echo "$cpu-$vendor-$os"
+echo "$cpu-$vendor-${kernel:+$kernel-}$os"
exit
# Local variables:
diff -Nru bison-3.5.1+dfsg/build-aux/cross-options.pl bison-3.8.2+dfsg/build-aux/cross-options.pl
--- bison-3.5.1+dfsg/build-aux/cross-options.pl 2020-01-10 18:16:23.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/cross-options.pl 2021-06-23 04:48:48.000000000 +0000
@@ -2,7 +2,7 @@
# Generate a release announcement message.
-# Copyright (C) 2007-2020 Free Software Foundation, Inc.
+# Copyright (C) 2007-2021 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#
-# Written by Akimn Demaille.
+# Written by Akim Demaille.
use warnings;
use 5.005;
diff -Nru bison-3.5.1+dfsg/build-aux/Darwin.valgrind bison-3.8.2+dfsg/build-aux/Darwin.valgrind
--- bison-3.5.1+dfsg/build-aux/Darwin.valgrind 2020-01-10 18:16:23.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/Darwin.valgrind 2021-06-23 04:48:48.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015, 2018-2020 Free Software Foundation, Inc.
+# Copyright (C) 2012-2015, 2018-2021 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -11,7 +11,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
# Valgrind suppression file for Bison.
diff -Nru bison-3.5.1+dfsg/build-aux/depcomp bison-3.8.2+dfsg/build-aux/depcomp
--- bison-3.5.1+dfsg/build-aux/depcomp 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/depcomp 2021-08-03 05:51:08.000000000 +0000
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1999-2020 Free Software Foundation, Inc.
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff -Nru bison-3.5.1+dfsg/build-aux/do-release-commit-and-tag bison-3.8.2+dfsg/build-aux/do-release-commit-and-tag
--- bison-3.5.1+dfsg/build-aux/do-release-commit-and-tag 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/do-release-commit-and-tag 2021-03-10 05:41:24.000000000 +0000
@@ -7,7 +7,7 @@
# Note: this is a bash script (could be zsh or dash)
-# Copyright (C) 2009-2020 Free Software Foundation, Inc.
+# Copyright (C) 2009-2021 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff -Nru bison-3.5.1+dfsg/build-aux/gendocs.sh bison-3.8.2+dfsg/build-aux/gendocs.sh
--- bison-3.5.1+dfsg/build-aux/gendocs.sh 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/gendocs.sh 2021-08-03 05:51:08.000000000 +0000
@@ -2,9 +2,9 @@
# gendocs.sh -- generate a GNU manual in many formats. This script is
# mentioned in maintain.texi. See the help message below for usage details.
-scriptversion=2020-01-01.00
+scriptversion=2021-07-19.18
-# Copyright 2003-2020 Free Software Foundation, Inc.
+# Copyright 2003-2021 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -58,7 +58,7 @@
commonarg= # passed to all makeinfo/texi2html invcations.
dirargs= # passed to all tools (-I dir).
dirs= # -I directories.
-htmlarg="--css-ref=/software/gnulib/manual.css -c TOP_NODE_UP_URL=/manual"
+htmlarg="--css-ref=https://www.gnu.org/software/gnulib/manual.css -c TOP_NODE_UP_URL=/manual"
default_htmlarg=true
infoarg=--no-split
generate_ascii=true
@@ -73,7 +73,7 @@
version="gendocs.sh $scriptversion
-Copyright 2020 Free Software Foundation, Inc.
+Copyright 2021 Free Software Foundation, Inc.
There is NO warranty. You may redistribute this software
under the terms of the GNU General Public License.
For more information about these matters, see the files named COPYING."
@@ -202,7 +202,7 @@
if $default_htmlarg && test -n "$use_texi2html"; then
# The legacy texi2html doesn't support TOP_NODE_UP_URL
- htmlarg="--css-ref=/software/gnulib/manual.css"
+ htmlarg="--css-ref=https://www.gnu.org/software/gnulib/manual.css"
fi
if test -n "$srcfile"; then
diff -Nru bison-3.5.1+dfsg/build-aux/gitlog-to-changelog bison-3.8.2+dfsg/build-aux/gitlog-to-changelog
--- bison-3.5.1+dfsg/build-aux/gitlog-to-changelog 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/gitlog-to-changelog 2021-03-10 06:08:13.000000000 +0000
@@ -3,7 +3,7 @@
# Convert git log output to ChangeLog format.
-# Copyright (C) 2008-2020 Free Software Foundation, Inc.
+# Copyright (C) 2008-2021 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -31,11 +31,11 @@
# are valid code in both sh and perl. When executed by sh, they re-execute
# the script through the perl program found in $PATH. The '-x' option
# is essential as well; without it, perl would re-execute the script
-# through /bin/sh. When executed by perl, the next two lines are a no-op.
+# through /bin/sh. When executed by perl, the next two lines are a no-op.
eval 'exec perl -wSx "$0" "$@"'
if 0;
-my $VERSION = '2018-03-07 03:47'; # UTC
+my $VERSION = '2021-02-24 23:42'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
@@ -455,7 +455,8 @@
# If there were any lines
if (@line == 0)
{
- warn "$ME: warning: empty commit message:\n $date_line\n";
+ warn "$ME: warning: empty commit message:\n"
+ . " commit $sha\n $date_line\n";
}
else
{
diff -Nru bison-3.5.1+dfsg/build-aux/git-version-gen bison-3.8.2+dfsg/build-aux/git-version-gen
--- bison-3.5.1+dfsg/build-aux/git-version-gen 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/git-version-gen 2021-06-23 05:08:39.000000000 +0000
@@ -1,8 +1,8 @@
#!/bin/sh
# Print a version string.
-scriptversion=2018-03-07.03; # UTC
+scriptversion=2019-10-13.15; # UTC
-# Copyright (C) 2007-2020 Free Software Foundation, Inc.
+# Copyright (C) 2007-2021 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -75,10 +75,10 @@
year=`expr "$scriptversion" : '\([^-]*\)'`
version="git-version-gen $scriptversion
-Copyright $year Free Software Foundation, Inc.
-There is NO warranty. You may redistribute this software
-under the terms of the GNU General Public License.
-For more information about these matters, see the files named COPYING."
+Copyright (C) ${year} Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later .
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law."
usage="\
Usage: $me [OPTION]... \$srcdir/.tarball-version [TAG-NORMALIZATION-SED-SCRIPT]
diff -Nru bison-3.5.1+dfsg/build-aux/gnupload bison-3.8.2+dfsg/build-aux/gnupload
--- bison-3.5.1+dfsg/build-aux/gnupload 2020-01-10 18:57:40.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/gnupload 2021-06-23 05:08:39.000000000 +0000
@@ -1,13 +1,13 @@
#!/bin/sh
# Sign files and upload them.
-scriptversion=2018-05-19.18; # UTC
+scriptversion=2021-04-11.09; # UTC
-# Copyright (C) 2004-2020 Free Software Foundation, Inc.
+# Copyright (C) 2004-2021 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
+# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
@@ -27,8 +27,8 @@
GPG=gpg
# Choose the proper version of gpg, so as to avoid a
# "gpg-agent is not available in this session" error
-# when gpg-agent is version 3 but gpg is still version 1.
-# FIXME-2020: remove, once all major distros ship gpg version 3 as /usr/bin/gpg
+# when gpg-agent is version 2 but gpg is still version 1.
+# FIXME-2020: remove, once all major distros ship gpg version 2 as /usr/bin/gpg
gpg_agent_version=`(gpg-agent --version) 2>/dev/null | sed -e '2,$d' -e 's/^[^0-9]*//'`
case "$gpg_agent_version" in
2.*)
@@ -145,6 +145,12 @@
Send patches and bug reports to ."
+copyright_year=`echo "$scriptversion" | sed -e 's/[^0-9].*//'`
+copyright="Copyright (C) ${copyright_year} Free Software Foundation, Inc.
+License GPLv2+: GNU GPL version 2 or later .
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law."
+
# Read local configuration file
if test -r "$conffile"; then
echo "$0: Reading configuration file $conffile"
@@ -209,7 +215,8 @@
;;
--version)
echo "gnupload $scriptversion"
- exit $?
+ echo "$copyright"
+ exit 0
;;
--)
shift
diff -Nru bison-3.5.1+dfsg/build-aux/gnu-web-doc-update bison-3.8.2+dfsg/build-aux/gnu-web-doc-update
--- bison-3.5.1+dfsg/build-aux/gnu-web-doc-update 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/gnu-web-doc-update 2021-03-10 05:41:24.000000000 +0000
@@ -2,9 +2,9 @@
# Run this after each non-alpha release, to update the web documentation at
# https://www.gnu.org/software/$pkg/manual/
-VERSION=2018-03-07.03; # UTC
+VERSION=2021-01-09.09; # UTC
-# Copyright (C) 2009-2020 Free Software Foundation, Inc.
+# Copyright (C) 2009-2021 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -41,6 +41,7 @@
-C, --builddir=DIR location of (configured) Makefile (default: .)
-n, --dry-run don't actually commit anything
-m, --mirror remove out of date files from document server
+ -u, --user the name of the CVS user on Savannah
--help print this help, then exit
--version print version number, then exit
@@ -109,6 +110,7 @@
builddir=.
dryrun=
rm_stale='echo'
+cvs_user="$USER"
while test $# != 0
do
# Handle --option=value by splitting apart and putting back on argv.
@@ -126,6 +128,7 @@
-C|--builddir) shift; builddir=$1; shift ;;
-n|--dry-run) dryrun=echo; shift;;
-m|--mirror) rm_stale=''; shift;;
+ -u|--user) shift; cvs_user=$1; shift ;;
--*) die "unrecognized option: $1";;
*) break;;
esac
@@ -172,7 +175,7 @@
tmp=$(mktemp -d web-doc-update.XXXXXX) || exit 1
( cd $tmp \
- && $CVS -d $USER@cvs.sv.gnu.org:/webcvs/$pkg co $pkg )
+ && $CVS -d $cvs_user@cvs.sv.gnu.org:/webcvs/$pkg co $pkg )
$RSYNC -avP "$builddir"/doc/manual/ $tmp/$pkg/manual
(
diff -Nru bison-3.5.1+dfsg/build-aux/install-reloc bison-3.8.2+dfsg/build-aux/install-reloc
--- bison-3.5.1+dfsg/build-aux/install-reloc 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/install-reloc 2021-03-10 05:41:24.000000000 +0000
@@ -1,6 +1,6 @@
#!/bin/sh
# install-reloc - install a program including a relocating wrapper
-# Copyright (C) 2003-2020 Free Software Foundation, Inc.
+# Copyright (C) 2003-2021 Free Software Foundation, Inc.
# Written by Bruno Haible , 2003.
#
# This program is free software: you can redistribute it and/or modify
@@ -237,8 +237,16 @@
"$srcdir"/readlink.c \
"$srcdir"/stat.c \
"$srcdir"/canonicalize-lgpl.c \
+ "$srcdir"/malloc/scratch_buffer_dupfree.c \
+ "$srcdir"/malloc/scratch_buffer_grow.c \
+ "$srcdir"/malloc/scratch_buffer_grow_preserve.c \
+ "$srcdir"/malloc/scratch_buffer_set_array_size.c \
+ "$srcdir"/malloc.c \
+ "$srcdir"/realloc.c \
+ "$srcdir"/free.c \
+ "$srcdir"/mempcpy.c \
+ "$srcdir"/rawmemchr.c \
"$srcdir"/malloca.c \
- "$srcdir"/lstat.c \
"$srcdir"/relocatable.c \
"$srcdir"/setenv.c \
"$srcdir"/c-ctype.c \
@@ -255,8 +263,16 @@
readlink.o \
stat.o \
canonicalize-lgpl.o \
+ scratch_buffer_dupfree.o \
+ scratch_buffer_grow.o \
+ scratch_buffer_grow_preserve.o \
+ scratch_buffer_set_array_size.o \
+ malloc.o \
+ realloc.o \
+ free.o \
+ mempcpy.o \
+ rawmemchr.o \
malloca.o \
- lstat.o \
relocatable.o \
setenv.o \
c-ctype.o
diff -Nru bison-3.5.1+dfsg/build-aux/install-sh bison-3.8.2+dfsg/build-aux/install-sh
--- bison-3.5.1+dfsg/build-aux/install-sh 2019-10-29 20:28:54.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/install-sh 2021-03-10 05:41:24.000000000 +0000
@@ -1,7 +1,7 @@
#!/bin/sh
# install - install a program, script, or datafile
-scriptversion=2018-03-11.20; # UTC
+scriptversion=2020-11-14.01; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
@@ -69,6 +69,11 @@
# Desired mode of installed file.
mode=0755
+# Create dirs (including intermediate dirs) using mode 755.
+# This is like GNU 'install' as of coreutils 8.32 (2020).
+mkdir_umask=22
+
+backupsuffix=
chgrpcmd=
chmodcmd=$chmodprog
chowncmd=
@@ -99,18 +104,28 @@
--version display version info and exit.
-c (ignored)
- -C install only if different (preserve the last data modification time)
+ -C install only if different (preserve data modification time)
-d create directories instead of installing files.
-g GROUP $chgrpprog installed files to GROUP.
-m MODE $chmodprog installed files to MODE.
-o USER $chownprog installed files to USER.
+ -p pass -p to $cpprog.
-s $stripprog installed files.
+ -S SUFFIX attempt to back up existing files, with suffix SUFFIX.
-t DIRECTORY install into DIRECTORY.
-T report an error if DSTFILE is a directory.
Environment variables override the default commands:
CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
RMPROG STRIPPROG
+
+By default, rm is invoked with -f; when overridden with RMPROG,
+it's up to you to specify -f if you want it.
+
+If -S is not specified, no backups are attempted.
+
+Email bug reports to bug-automake@gnu.org.
+Automake home page: https://www.gnu.org/software/automake/
"
while test $# -ne 0; do
@@ -137,8 +152,13 @@
-o) chowncmd="$chownprog $2"
shift;;
+ -p) cpprog="$cpprog -p";;
+
-s) stripcmd=$stripprog;;
+ -S) backupsuffix="$2"
+ shift;;
+
-t)
is_target_a_directory=always
dst_arg=$2
@@ -255,6 +275,10 @@
dstdir=$dst
test -d "$dstdir"
dstdir_status=$?
+ # Don't chown directories that already exist.
+ if test $dstdir_status = 0; then
+ chowncmd=""
+ fi
else
# Waiting for this to be detected by the "$cpprog $src $dsttmp" command
@@ -301,22 +325,6 @@
if test $dstdir_status != 0; then
case $posix_mkdir in
'')
- # Create intermediate dirs using mode 755 as modified by the umask.
- # This is like FreeBSD 'install' as of 1997-10-28.
- umask=`umask`
- case $stripcmd.$umask in
- # Optimize common cases.
- *[2367][2367]) mkdir_umask=$umask;;
- .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
- *[0-7])
- mkdir_umask=`expr $umask + 22 \
- - $umask % 100 % 40 + $umask % 20 \
- - $umask % 10 % 4 + $umask % 2
- `;;
- *) mkdir_umask=$umask,go-w;;
- esac
-
# With -d, create the new directory with the user-specified mode.
# Otherwise, rely on $mkdir_umask.
if test -n "$dir_arg"; then
@@ -326,52 +334,49 @@
fi
posix_mkdir=false
- case $umask in
- *[123567][0-7][0-7])
- # POSIX mkdir -p sets u+wx bits regardless of umask, which
- # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
- ;;
- *)
- # Note that $RANDOM variable is not portable (e.g. dash); Use it
- # here however when possible just to lower collision chance.
- tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-
- trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
-
- # Because "mkdir -p" follows existing symlinks and we likely work
- # directly in world-writeable /tmp, make sure that the '$tmpdir'
- # directory is successfully created first before we actually test
- # 'mkdir -p' feature.
- if (umask $mkdir_umask &&
- $mkdirprog $mkdir_mode "$tmpdir" &&
- exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
- then
- if test -z "$dir_arg" || {
- # Check for POSIX incompatibilities with -m.
- # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
- # other-writable bit of parent directory when it shouldn't.
- # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
- test_tmpdir="$tmpdir/a"
- ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
- case $ls_ld_tmpdir in
- d????-?r-*) different_mode=700;;
- d????-?--*) different_mode=755;;
- *) false;;
- esac &&
- $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
- ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
- test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
- }
- }
- then posix_mkdir=:
- fi
- rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
- else
- # Remove any dirs left behind by ancient mkdir implementations.
- rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
- fi
- trap '' 0;;
- esac;;
+ # The $RANDOM variable is not portable (e.g., dash). Use it
+ # here however when possible just to lower collision chance.
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+
+ trap '
+ ret=$?
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
+ exit $ret
+ ' 0
+
+ # Because "mkdir -p" follows existing symlinks and we likely work
+ # directly in world-writeable /tmp, make sure that the '$tmpdir'
+ # directory is successfully created first before we actually test
+ # 'mkdir -p'.
+ if (umask $mkdir_umask &&
+ $mkdirprog $mkdir_mode "$tmpdir" &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ test_tmpdir="$tmpdir/a"
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+ fi
+ trap '' 0;;
esac
if
@@ -382,7 +387,7 @@
then :
else
- # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # mkdir does not conform to POSIX,
# or it failed possibly due to a race condition. Create the
# directory the slow way, step by step, checking for races as we go.
@@ -411,7 +416,7 @@
prefixes=
else
if $posix_mkdir; then
- (umask=$mkdir_umask &&
+ (umask $mkdir_umask &&
$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
# Don't fail if two instances are running concurrently.
test -d "$prefix" || exit 1
@@ -488,6 +493,13 @@
then
rm -f "$dsttmp"
else
+ # If $backupsuffix is set, and the file being installed
+ # already exists, attempt a backup. Don't worry if it fails,
+ # e.g., if mv doesn't support -f.
+ if test -n "$backupsuffix" && test -f "$dst"; then
+ $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
+ fi
+
# Rename the file to the real destination.
$doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
@@ -502,9 +514,9 @@
# file should still install successfully.
{
test ! -f "$dst" ||
- $doit $rmcmd -f "$dst" 2>/dev/null ||
+ $doit $rmcmd "$dst" 2>/dev/null ||
{ $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
- { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
} ||
{ echo "$0: cannot unlink or rename $dst" >&2
(exit 1); exit 1
diff -Nru bison-3.5.1+dfsg/build-aux/javacomp.sh.in bison-3.8.2+dfsg/build-aux/javacomp.sh.in
--- bison-3.5.1+dfsg/build-aux/javacomp.sh.in 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/javacomp.sh.in 2021-03-10 05:41:24.000000000 +0000
@@ -1,7 +1,7 @@
#!/bin/sh
# Compile a Java program.
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
# Written by Bruno Haible , 2001.
#
# This program is free software: you can redistribute it and/or modify
diff -Nru bison-3.5.1+dfsg/build-aux/javaexec.sh.in bison-3.8.2+dfsg/build-aux/javaexec.sh.in
--- bison-3.5.1+dfsg/build-aux/javaexec.sh.in 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/javaexec.sh.in 2021-03-10 05:41:24.000000000 +0000
@@ -1,7 +1,7 @@
#!/bin/sh
# Execute a Java program.
-# Copyright (C) 2001-2020 Free Software Foundation, Inc.
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
# Written by Bruno Haible , 2001.
#
# This program is free software: you can redistribute it and/or modify
diff -Nru bison-3.5.1+dfsg/build-aux/libtool-reloc bison-3.8.2+dfsg/build-aux/libtool-reloc
--- bison-3.5.1+dfsg/build-aux/libtool-reloc 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/libtool-reloc 2021-03-10 05:41:24.000000000 +0000
@@ -1,6 +1,6 @@
#!/bin/sh
# libtool-reloc - libtool wrapper with support for relocatable programs
-# Copyright (C) 2019-2020 Free Software Foundation, Inc.
+# Copyright (C) 2019-2021 Free Software Foundation, Inc.
# Written by Bruno Haible , 2019.
#
# This program is free software: you can redistribute it and/or modify
diff -Nru bison-3.5.1+dfsg/build-aux/Linux.valgrind bison-3.8.2+dfsg/build-aux/Linux.valgrind
--- bison-3.5.1+dfsg/build-aux/Linux.valgrind 2020-01-10 18:16:23.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/Linux.valgrind 2021-06-23 04:48:48.000000000 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 2012-2015, 2018-2020 Free Software Foundation, Inc.
+# Copyright (C) 2012-2015, 2018-2021 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -11,7 +11,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
# Valgrind suppression file for Bison.
diff -Nru bison-3.5.1+dfsg/build-aux/local.mk bison-3.8.2+dfsg/build-aux/local.mk
--- bison-3.5.1+dfsg/build-aux/local.mk 2020-01-10 18:16:23.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/local.mk 2021-06-23 04:48:48.000000000 +0000
@@ -1,4 +1,4 @@
-## Copyright (C) 2000-2015, 2018-2020 Free Software Foundation, Inc.
+## Copyright (C) 2000-2015, 2018-2021 Free Software Foundation, Inc.
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -11,7 +11,7 @@
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
-## along with this program. If not, see .
+## along with this program. If not, see .
EXTRA_DIST += \
build-aux/Darwin.valgrind \
diff -Nru bison-3.5.1+dfsg/build-aux/mdate-sh bison-3.8.2+dfsg/build-aux/mdate-sh
--- bison-3.5.1+dfsg/build-aux/mdate-sh 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/mdate-sh 2021-08-03 05:51:08.000000000 +0000
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1995-2020 Free Software Foundation, Inc.
+# Copyright (C) 1995-2021 Free Software Foundation, Inc.
# written by Ulrich Drepper , June 1995
#
# This program is free software; you can redistribute it and/or modify
diff -Nru bison-3.5.1+dfsg/build-aux/missing bison-3.8.2+dfsg/build-aux/missing
--- bison-3.5.1+dfsg/build-aux/missing 2020-01-19 13:16:04.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/missing 2021-09-25 04:54:03.000000000 +0000
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
# Originally written by Fran,cois Pinard , 1996.
# This program is free software; you can redistribute it and/or modify
diff -Nru bison-3.5.1+dfsg/build-aux/move-if-change bison-3.8.2+dfsg/build-aux/move-if-change
--- bison-3.5.1+dfsg/build-aux/move-if-change 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/move-if-change 2021-03-10 05:41:24.000000000 +0000
@@ -8,7 +8,7 @@
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
-# Copyright (C) 2002-2020 Free Software Foundation, Inc.
+# Copyright (C) 2002-2021 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff -Nru bison-3.5.1+dfsg/build-aux/prefix-gnulib-mk bison-3.8.2+dfsg/build-aux/prefix-gnulib-mk
--- bison-3.5.1+dfsg/build-aux/prefix-gnulib-mk 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/prefix-gnulib-mk 2021-06-23 05:08:39.000000000 +0000
@@ -3,20 +3,11 @@
# Rewrite a gnulib.mk, adding prefixes to work with automake's subdir-objects.
-# Copyright (C) 2012-2020 Free Software Foundation, Inc.
+# Copyright (C) 2012-2021 Free Software Foundation, Inc.
#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
#
# Written by Jim Meyering
@@ -31,11 +22,11 @@
# are valid code in both sh and perl. When executed by sh, they re-execute
# the script through the perl program found in $PATH. The '-x' option
# is essential as well; without it, perl would re-execute the script
-# through /bin/sh. When executed by perl, the next two lines are a no-op.
+# through /bin/sh. When executed by perl, the next two lines are a no-op.
eval 'exec perl -wSx "$0" "$@"'
if 0;
-my $VERSION = '2012-01-21 17:13'; # UTC
+my $VERSION = '2020-04-04 15:07'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
diff -Nru bison-3.5.1+dfsg/build-aux/relocatable.sh.in bison-3.8.2+dfsg/build-aux/relocatable.sh.in
--- bison-3.5.1+dfsg/build-aux/relocatable.sh.in 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/relocatable.sh.in 2021-03-10 05:41:24.000000000 +0000
@@ -6,7 +6,7 @@
# package by hand; see doc/relocatable-maint.texi (in Gnulib) for
# details.
#
-# Copyright (C) 2003-2020 Free Software Foundation, Inc.
+# Copyright (C) 2003-2021 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff -Nru bison-3.5.1+dfsg/build-aux/reloc-ldflags bison-3.8.2+dfsg/build-aux/reloc-ldflags
--- bison-3.5.1+dfsg/build-aux/reloc-ldflags 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/reloc-ldflags 2021-03-10 05:41:24.000000000 +0000
@@ -2,7 +2,7 @@
# Output a system dependent linker command for putting a relocatable library
# search path into an executable.
#
-# Copyright 2003-2020 Free Software Foundation, Inc.
+# Copyright 2003-2021 Free Software Foundation, Inc.
# Written by Bruno Haible , 2003.
#
# This program is free software: you can redistribute it and/or modify
@@ -56,7 +56,7 @@
origin_token=
case "$host_os" in
linux* | gnu* | kfreebsd* | \
- freebsd* | dragonfly* | \
+ freebsd* | dragonfly* | midnightbsd* | \
netbsd* | \
openbsd* | \
solaris* | \
@@ -68,7 +68,9 @@
;;
esac
if test -n "$origin_token"; then
- rpath=
+ # We are not on AIX, HP-UX, or IRIX. Therefore the -rpath options are
+ # cumulative.
+ rpath_options=
save_IFS="$IFS"; IFS=":"
for dir in $library_path_value; do
IFS="$save_IFS"
@@ -89,8 +91,8 @@
idir=`echo "$idir" | sed -e 's,^//*[^/]*,,'`
done
dir="$origin_token"`echo "$idir" | sed -e 's,//*[^/]*,/..,g'`"$dir"
- # Add dir to rpath.
- rpath="${rpath}${rpath:+ }$dir"
+ # Augment rpath_options with dir.
+ rpath_options="${rpath_options}${rpath_options:+ }-Wl,-rpath,$dir"
;;
*)
if test -n "$dir"; then
@@ -101,15 +103,14 @@
done
IFS="$save_IFS"
# Output it.
- if test -n "$rpath"; then
+ if test -n "$rpath_options"; then
case "$host_os" in
# At least some versions of FreeBSD, DragonFly, and OpenBSD need the
# linker option "-z origin". See .
freebsd* | dragonfly* | openbsd*)
- echo "-Wl,-z,origin -Wl,-rpath,$rpath" ;;
- *)
- echo "-Wl,-rpath,$rpath" ;;
+ rpath_options="-Wl,-z,origin $rpath_options" ;;
esac
+ echo "$rpath_options"
fi
else
echo "relocation via rpath not supported on this system: $host" 1>&2
diff -Nru bison-3.5.1+dfsg/build-aux/test-driver bison-3.8.2+dfsg/build-aux/test-driver
--- bison-3.5.1+dfsg/build-aux/test-driver 2020-01-19 13:16:04.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/test-driver 2021-09-25 04:54:04.000000000 +0000
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 2011-2018 Free Software Foundation, Inc.
+# Copyright (C) 2011-2021 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -42,11 +42,13 @@
{
cat <$log_file 2>&1
+# Test script is run here. We create the file first, then append to it,
+# to ameliorate tests themselves also writing to the log file. Our tests
+# don't, but others can (automake bug#35762).
+: >"$log_file"
+"$@" >>"$log_file" 2>&1
estatus=$?
if test $enable_hard_errors = no && test $estatus -eq 99; then
@@ -126,7 +131,7 @@
# know whether the test passed or failed simply by looking at the '.log'
# file, without the need of also peaking into the corresponding '.trs'
# file (automake bug#11814).
-echo "$res $test_name (exit status: $estatus)" >>$log_file
+echo "$res $test_name (exit status: $estatus)" >>"$log_file"
# Report outcome to console.
echo "${col}${res}${std}: $test_name"
diff -Nru bison-3.5.1+dfsg/build-aux/texinfo.tex bison-3.8.2+dfsg/build-aux/texinfo.tex
--- bison-3.5.1+dfsg/build-aux/texinfo.tex 2019-10-29 20:28:54.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/texinfo.tex 2021-06-23 05:08:39.000000000 +0000
@@ -3,9 +3,9 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2019-09-24.13}
+\def\texinfoversion{2021-04-25.21}
%
-% Copyright 1985, 1986, 1988, 1990-2019 Free Software Foundation, Inc.
+% Copyright 1985, 1986, 1988, 1990-2021 Free Software Foundation, Inc.
%
% This texinfo.tex file is free software: you can redistribute it and/or
% modify it under the terms of the GNU General Public License as
@@ -33,7 +33,7 @@
% The texinfo.tex in any given distribution could well be out
% of date, so if that's what you're using, please check.
%
-% Send bug reports to bug-texinfo@gnu.org. Please include including a
+% Send bug reports to bug-texinfo@gnu.org. Please include a
% complete document in each bug report with which we can reproduce the
% problem. Patches are, of course, greatly appreciated.
%
@@ -349,36 +349,21 @@
\ifodd\pageno \advance\hoffset by \bindingoffset
\else \advance\hoffset by -\bindingoffset\fi
%
+ \checkchapterpage
+ %
% Retrieve the information for the headings from the marks in the page,
% and call Plain TeX's \makeheadline and \makefootline, which use the
% values in \headline and \footline.
%
- % This is used to check if we are on the first page of a chapter.
- \ifcase1\the\savedtopmark\fi
- \let\prevchaptername\thischaptername
- \ifcase0\firstmark\fi
- \let\curchaptername\thischaptername
- %
- \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
- %
- \ifx\curchaptername\prevchaptername
- \let\thischapterheading\thischapter
- \else
- % \thischapterheading is the same as \thischapter except it is blank
- % for the first page of a chapter. This is to prevent the chapter name
- % being shown twice.
- \def\thischapterheading{}%
- \fi
- %
% Common context changes for both heading and footing.
% Do this outside of the \shipout so @code etc. will be expanded in
% the headline as they should be, not taken literally (outputting ''code).
- \def\commmonheadfootline{\let\hsize=\txipagewidth \texinfochars}
- %
- \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}%
+ \def\commonheadfootline{\let\hsize=\txipagewidth \texinfochars}
%
+ \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
+ \global\setbox\headlinebox = \vbox{\commonheadfootline \makeheadline}%
\ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
- \global\setbox\footlinebox = \vbox{\commmonheadfootline \makefootline}%
+ \global\setbox\footlinebox = \vbox{\commonheadfootline \makefootline}%
%
{%
% Set context for writing to auxiliary files like index files.
@@ -423,6 +408,22 @@
\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
}
+% Check if we are on the first page of a chapter. Used for printing headings.
+\newif\ifchapterpage
+\def\checkchapterpage{%
+ % Get the chapter that was current at the end of the last page
+ \ifcase1\the\savedtopmark\fi
+ \let\prevchaptername\thischaptername
+ %
+ \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
+ \let\curchaptername\thischaptername
+ %
+ \ifx\curchaptername\prevchaptername
+ \chapterpagefalse
+ \else
+ \chapterpagetrue
+ \fi
+}
% Argument parsing
@@ -571,9 +572,8 @@
\fi
}
-% @end foo executes the definition of \Efoo.
-% But first, it executes a specialized version of \checkenv
-%
+
+% @end foo calls \checkenv and executes the definition of \Efoo.
\parseargdef\end{%
\if 1\csname iscond.#1\endcsname
\else
@@ -1002,6 +1002,14 @@
\global\everypar = {}%
}
+% leave vertical mode without cancelling any first paragraph indent
+\gdef\imageindent{%
+ \toks0=\everypar
+ \everypar={}%
+ \ptexnoindent
+ \global\everypar=\toks0
+}
+
% @refill is a no-op.
\let\refill=\relax
@@ -1010,7 +1018,7 @@
\let\setfilename=\comment
% @bye.
-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
+\outer\def\bye{\chappager\pagelabels\tracingstats=1\ptexend}
\message{pdf,}
@@ -1137,6 +1145,45 @@
\fi
+% Output page labels information.
+% See PDF reference v.1.7 p.594, section 8.3.1.
+\ifpdf
+\def\pagelabels{%
+ \def\title{0 << /P (T-) /S /D >>}%
+ \edef\roman{\the\romancount << /S /r >>}%
+ \edef\arabic{\the\arabiccount << /S /D >>}%
+ %
+ % Page label ranges must be increasing. Remove any duplicates.
+ % (There is a slight chance of this being wrong if e.g. there is
+ % a @contents but no @titlepage, etc.)
+ %
+ \ifnum\romancount=0 \def\roman{}\fi
+ \ifnum\arabiccount=0 \def\title{}%
+ \else
+ \ifnum\romancount=\arabiccount \def\roman{}\fi
+ \fi
+ %
+ \ifnum\romancount<\arabiccount
+ \pdfcatalog{/PageLabels << /Nums [\title \roman \arabic ] >> }\relax
+ \else
+ \pdfcatalog{/PageLabels << /Nums [\title \arabic \roman ] >> }\relax
+ \fi
+}
+\else
+ \let\pagelabels\relax
+\fi
+
+\newcount\pagecount \pagecount=0
+\newcount\romancount \romancount=0
+\newcount\arabiccount \arabiccount=0
+\ifpdf
+ \let\ptxadvancepageno\advancepageno
+ \def\advancepageno{%
+ \ptxadvancepageno\global\advance\pagecount by 1
+ }
+\fi
+
+
% PDF uses PostScript string constants for the names of xref targets,
% for display in the outlines, and in other places. Thus, we have to
% double any backslashes. Otherwise, a name like "\node" will be
@@ -1427,7 +1474,13 @@
% subentries, which we calculated on our first read of the .toc above.
%
% We use the node names as the destinations.
+ %
+ % Currently we prefix the section name with the section number
+ % for chapter and appendix headings only in order to avoid too much
+ % horizontal space being required in the PDF viewer.
\def\numchapentry##1##2##3##4{%
+ \dopdfoutline{##2 ##1}{count-\expnumber{chap##2}}{##3}{##4}}%
+ \def\unnchapentry##1##2##3##4{%
\dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}%
\def\numsecentry##1##2##3##4{%
\dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}%
@@ -1669,9 +1722,13 @@
% Therefore, we read toc only once.
%
% We use node names as destinations.
+ %
+ % Currently we prefix the section name with the section number
+ % for chapter and appendix headings only in order to avoid too much
+ % horizontal space being required in the PDF viewer.
\def\partentry##1##2##3##4{}% ignore parts in the outlines
\def\numchapentry##1##2##3##4{%
- \dopdfoutline{##1}{1}{##3}{##4}}%
+ \dopdfoutline{##2 ##1}{1}{##3}{##4}}%
\def\numsecentry##1##2##3##4{%
\dopdfoutline{##1}{2}{##3}{##4}}%
\def\numsubsecentry##1##2##3##4{%
@@ -1683,7 +1740,8 @@
\let\appsecentry\numsecentry%
\let\appsubsecentry\numsubsecentry%
\let\appsubsubsecentry\numsubsubsecentry%
- \let\unnchapentry\numchapentry%
+ \def\unnchapentry##1##2##3##4{%
+ \dopdfoutline{##1}{1}{##3}{##4}}%
\let\unnsecentry\numsecentry%
\let\unnsubsecentry\numsubsecentry%
\let\unnsubsubsecentry\numsubsubsecentry%
@@ -1812,19 +1870,23 @@
\closein 1
\endgroup
%
- \def\xetexpdfext{pdf}%
- \ifx\xeteximgext\xetexpdfext
- \XeTeXpdffile "#1".\xeteximgext ""
- \else
- \def\xetexpdfext{PDF}%
+ % Putting an \hbox around the image can prevent an over-long line
+ % after the image.
+ \hbox\bgroup
+ \def\xetexpdfext{pdf}%
\ifx\xeteximgext\xetexpdfext
\XeTeXpdffile "#1".\xeteximgext ""
\else
- \XeTeXpicfile "#1".\xeteximgext ""
+ \def\xetexpdfext{PDF}%
+ \ifx\xeteximgext\xetexpdfext
+ \XeTeXpdffile "#1".\xeteximgext ""
+ \else
+ \XeTeXpicfile "#1".\xeteximgext ""
+ \fi
\fi
- \fi
- \ifdim \wd0 >0pt width \xeteximagewidth \fi
- \ifdim \wd2 >0pt height \xeteximageheight \fi \relax
+ \ifdim \wd0 >0pt width \xeteximagewidth \fi
+ \ifdim \wd2 >0pt height \xeteximageheight \fi \relax
+ \egroup
}
\fi
@@ -2496,7 +2558,7 @@
\def\it{\fam=\itfam \setfontstyle{it}}
\def\sl{\fam=\slfam \setfontstyle{sl}}
\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
-\def\tt{\fam=\ttfam \setfontstyle{tt}}
+\def\tt{\fam=\ttfam \setfontstyle{tt}}\def\ttstylename{tt}
% Texinfo sort of supports the sans serif font style, which plain TeX does not.
% So we set up a \sf.
@@ -2622,8 +2684,6 @@
\definetextfontsizexi
-\message{markup,}
-
% Check if we are currently using a typewriter font. Since all the
% Computer Modern typewriter fonts have zero interword stretch (and
% shrink), and it is reasonable to expect all typewriter fonts to have
@@ -2631,68 +2691,14 @@
%
\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
-% Markup style infrastructure. \defmarkupstylesetup\INITMACRO will
-% define and register \INITMACRO to be called on markup style changes.
-% \INITMACRO can check \currentmarkupstyle for the innermost
-% style.
-
-\let\currentmarkupstyle\empty
-
-\def\setupmarkupstyle#1{%
- \def\currentmarkupstyle{#1}%
- \markupstylesetup
-}
-
-\let\markupstylesetup\empty
-
-\def\defmarkupstylesetup#1{%
- \expandafter\def\expandafter\markupstylesetup
- \expandafter{\markupstylesetup #1}%
- \def#1%
-}
-
-% Markup style setup for left and right quotes.
-\defmarkupstylesetup\markupsetuplq{%
- \expandafter\let\expandafter \temp
- \csname markupsetuplq\currentmarkupstyle\endcsname
- \ifx\temp\relax \markupsetuplqdefault \else \temp \fi
-}
-
-\defmarkupstylesetup\markupsetuprq{%
- \expandafter\let\expandafter \temp
- \csname markupsetuprq\currentmarkupstyle\endcsname
- \ifx\temp\relax \markupsetuprqdefault \else \temp \fi
-}
-
{
\catcode`\'=\active
\catcode`\`=\active
-\gdef\markupsetuplqdefault{\let`\lq}
-\gdef\markupsetuprqdefault{\let'\rq}
-
-\gdef\markupsetcodequoteleft{\let`\codequoteleft}
-\gdef\markupsetcodequoteright{\let'\codequoteright}
+\gdef\setcodequotes{\let`\codequoteleft \let'\codequoteright}
+\gdef\setregularquotes{\let`\lq \let'\rq}
}
-\let\markupsetuplqcode \markupsetcodequoteleft
-\let\markupsetuprqcode \markupsetcodequoteright
-%
-\let\markupsetuplqexample \markupsetcodequoteleft
-\let\markupsetuprqexample \markupsetcodequoteright
-%
-\let\markupsetuplqkbd \markupsetcodequoteleft
-\let\markupsetuprqkbd \markupsetcodequoteright
-%
-\let\markupsetuplqsamp \markupsetcodequoteleft
-\let\markupsetuprqsamp \markupsetcodequoteright
-%
-\let\markupsetuplqverb \markupsetcodequoteleft
-\let\markupsetuprqverb \markupsetcodequoteright
-%
-\let\markupsetuplqverbatim \markupsetcodequoteleft
-\let\markupsetuprqverbatim \markupsetcodequoteright
-
% Allow an option to not use regular directed right quote/apostrophe
% (char 0x27), but instead the undirected quote from cmtt (char 0x0d).
% The undirected quote is ugly, so don't make it the default, but it
@@ -2855,7 +2861,7 @@
}
% @samp.
-\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
+\def\samp#1{{\setcodequotes\lq\tclose{#1}\rq\null}}
% @indicateurl is \samp, that is, with quotes.
\let\indicateurl=\samp
@@ -2898,8 +2904,7 @@
\global\let'=\rq \global\let`=\lq % default definitions
%
\global\def\code{\begingroup
- \setupmarkupstyle{code}%
- % The following should really be moved into \setupmarkupstyle handlers.
+ \setcodequotes
\catcode\dashChar=\active \catcode\underChar=\active
\ifallowcodebreaks
\let-\codedash
@@ -2987,10 +2992,18 @@
% arg (if given), and not the url (which is then just the link target).
\newif\ifurefurlonlylink
+% The default \pretolerance setting stops the penalty inserted in
+% \urefallowbreak being a discouragement to line breaking. Set it to
+% a negative value for this paragraph only. Hopefully this does not
+% conflict with redefinitions of \par done elsewhere.
+\def\nopretolerance{%
+\pretolerance=-1
+\def\par{\endgraf\pretolerance=100 \let\par\endgraf}%
+}
+
% The main macro is \urefbreak, which allows breaking at expected
-% places within the url. (There used to be another version, which
-% didn't support automatic breaking.)
-\def\urefbreak{\begingroup \urefcatcodes \dourefbreak}
+% places within the url.
+\def\urefbreak{\nopretolerance \begingroup \urefcatcodes \dourefbreak}
\let\uref=\urefbreak
%
\def\dourefbreak#1{\urefbreakfinish #1,,,\finish}
@@ -3045,7 +3058,7 @@
\urefcatcodes
%
\global\def\urefcode{\begingroup
- \setupmarkupstyle{code}%
+ \setcodequotes
\urefcatcodes
\let&\urefcodeamp
\let.\urefcodedot
@@ -3101,15 +3114,15 @@
% Allow a ragged right output to aid breaking long URL's. There can
% be a break at the \allowbreak with no extra glue (if the existing stretch in
-% the line is sufficent), a break at the \penalty100 with extra glue added
+% the line is sufficient), a break at the \penalty with extra glue added
% at the end of the line, or no break at all here.
% Changing the value of the penalty and/or the amount of stretch affects how
-% preferrable one choice is over the other.
+% preferable one choice is over the other.
\def\urefallowbreak{%
- \allowbreak
- \hskip 0pt plus 4 em\relax
- \penalty100
- \hskip 0pt plus -4 em\relax
+ \penalty0\relax
+ \hskip 0pt plus 2 em\relax
+ \penalty1000\relax
+ \hskip 0pt plus -2 em\relax
}
\urefbreakstyle after
@@ -3166,8 +3179,8 @@
\def\kbdsub#1#2#3\par{%
\def\one{#1}\def\three{#3}\def\threex{??}%
\ifx\one\xkey\ifx\threex\three \key{#2}%
- \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
- \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
+ \else{\tclose{\kbdfont\setcodequotes\look}}\fi
+ \else{\tclose{\kbdfont\setcodequotes\look}}\fi
}
% definition of @key that produces a lozenge. Doesn't adjust to text size.
@@ -3184,7 +3197,7 @@
% monospace, don't change it; that way, we respect @kbdinputstyle. But
% if it isn't monospace, then use \tt.
%
-\def\key#1{{\setupmarkupstyle{key}%
+\def\key#1{{\setregularquotes
\nohyphenation
\ifmonospace\else\tt\fi
#1}\null}
@@ -3305,6 +3318,29 @@
\def\sup{\ifmmode \expandafter\ptexsp \else \expandafter\finishsup\fi}
\def\finishsup#1{$\ptexsp{\hbox{\switchtolllsize #1}}$}%
+% provide this command from LaTeX as it is very common
+\def\frac#1#2{{{#1}\over{#2}}}
+
+% @displaymath.
+% \globaldefs is needed to recognize the end lines in \tex and
+% \end tex. Set \thisenv as @end displaymath is seen before @end tex.
+{\obeylines
+\globaldefs=1
+\envdef\displaymath{%
+\tex%
+\def\thisenv{\displaymath}%
+\begingroup\let\end\displaymathend%
+$$%
+}
+
+\def\displaymathend{$$\endgroup\end}%
+
+\def\Edisplaymath{%
+\def\thisenv{\tex}%
+\end tex
+}}
+
+
% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
% except specified as a normal braced arg, so no newlines to worry about.
@@ -3509,7 +3545,7 @@
% @pounds{} is a sterling sign, which Knuth put in the CM italic font.
%
-\def\pounds{{\it\$}}
+\def\pounds{\ifmonospace{\ecfont\char"BF}\else{\it\$}\fi}
% @euro{} comes from a separate font, depending on the current style.
% We use the free feym* fonts from the eurosym package by Henrik
@@ -3658,11 +3694,19 @@
\fi
% Quotes.
-\chardef\quotedblleft="5C
-\chardef\quotedblright=`\"
\chardef\quoteleft=`\`
\chardef\quoteright=`\'
+% only change font for tt for correct kerning and to avoid using
+% \ecfont unless necessary.
+\def\quotedblleft{%
+ \ifmonospace{\ecfont\char"10}\else{\char"5C}\fi
+}
+
+\def\quotedblright{%
+ \ifmonospace{\ecfont\char"11}\else{\char`\"}\fi
+}
+
\message{page headings,}
@@ -3784,12 +3828,19 @@
\newtoks\evenheadline % headline on even pages
\newtoks\oddheadline % headline on odd pages
+\newtoks\evenchapheadline% headline on even pages with a new chapter
+\newtoks\oddchapheadline % headline on odd pages with a new chapter
\newtoks\evenfootline % footline on even pages
\newtoks\oddfootline % footline on odd pages
% Now make \makeheadline and \makefootline in Plain TeX use those variables
-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
- \else \the\evenheadline \fi}}
+\headline={{\textfonts\rm
+ \ifchapterpage
+ \ifodd\pageno\the\oddchapheadline\else\the\evenchapheadline\fi
+ \else
+ \ifodd\pageno\the\oddheadline\else\the\evenheadline\fi
+ \fi}}
+
\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
\else \the\evenfootline \fi}\HEADINGShook}
\let\HEADINGShook=\relax
@@ -3805,12 +3856,14 @@
\def\evenheading{\parsearg\evenheadingxxx}
\def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish}
\def\evenheadingyyy #1\|#2\|#3\|#4\finish{%
-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+ \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}
+ \global\evenchapheadline=\evenheadline}
\def\oddheading{\parsearg\oddheadingxxx}
\def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish}
\def\oddheadingyyy #1\|#2\|#3\|#4\finish{%
-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+ \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}%
+ \global\oddchapheadline=\oddheadline}
\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
@@ -3877,37 +3930,34 @@
\parseargdef\headings{\csname HEADINGS#1\endcsname}
\def\headingsoff{% non-global headings elimination
- \evenheadline={\hfil}\evenfootline={\hfil}%
- \oddheadline={\hfil}\oddfootline={\hfil}%
+ \evenheadline={\hfil}\evenfootline={\hfil}\evenchapheadline={\hfil}%
+ \oddheadline={\hfil}\oddfootline={\hfil}\oddchapheadline={\hfil}%
}
\def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting
\HEADINGSoff % it's the default
% When we turn headings on, set the page number to 1.
+\def\pageone{
+ \global\pageno=1
+ \global\arabiccount = \pagecount
+}
+
% For double-sided printing, put current file name in lower left corner,
% chapter name on inside top of right hand pages, document
% title on inside top of left hand pages, and page numbers on outside top
% edge of all pages.
\def\HEADINGSdouble{%
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapterheading\hfil\folio}}
-\global\let\contentsalignmacro = \chapoddpage
+\pageone
+\HEADINGSdoublex
}
\let\contentsalignmacro = \chappager
% For single-sided printing, chapter title goes across top left of page,
% page number on top right.
\def\HEADINGSsingle{%
-\global\pageno=1
-\global\evenfootline={\hfil}
-\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapterheading\hfil\folio}}
-\global\oddheadline={\line{\thischapterheading\hfil\folio}}
-\global\let\contentsalignmacro = \chappager
+\pageone
+\HEADINGSsinglex
}
\def\HEADINGSon{\HEADINGSdouble}
@@ -3917,7 +3967,9 @@
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
\global\evenheadline={\line{\folio\hfil\thistitle}}
-\global\oddheadline={\line{\thischapterheading\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\evenchapheadline={\line{\folio\hfil}}
+\global\oddchapheadline={\line{\hfil\folio}}
\global\let\contentsalignmacro = \chapoddpage
}
@@ -3925,8 +3977,22 @@
\def\HEADINGSsinglex{%
\global\evenfootline={\hfil}
\global\oddfootline={\hfil}
-\global\evenheadline={\line{\thischapterheading\hfil\folio}}
-\global\oddheadline={\line{\thischapterheading\hfil\folio}}
+\global\evenheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\evenchapheadline={\line{\hfil\folio}}
+\global\oddchapheadline={\line{\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
+}
+
+% for @setchapternewpage off
+\def\HEADINGSsinglechapoff{%
+\pageone
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\evenchapheadline=\evenheadline
+\global\oddchapheadline=\oddheadline
\global\let\contentsalignmacro = \chappager
}
@@ -4235,82 +4301,8 @@
\doitemize{#1.}\flushcr
}
-% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
-% to @enumerate.
-%
-\def\alphaenumerate{\enumerate{a}}
-\def\capsenumerate{\enumerate{A}}
-\def\Ealphaenumerate{\Eenumerate}
-\def\Ecapsenumerate{\Eenumerate}
-
% @multitable macros
-% Amy Hendrickson, 8/18/94, 3/6/96
-%
-% @multitable ... @end multitable will make as many columns as desired.
-% Contents of each column will wrap at width given in preamble. Width
-% can be specified either with sample text given in a template line,
-% or in percent of \hsize, the current width of text on page.
-
-% Table can continue over pages but will only break between lines.
-
-% To make preamble:
-%
-% Either define widths of columns in terms of percent of \hsize:
-% @multitable @columnfractions .25 .3 .45
-% @item ...
-%
-% Numbers following @columnfractions are the percent of the total
-% current hsize to be used for each column. You may use as many
-% columns as desired.
-
-
-% Or use a template:
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item ...
-% using the widest term desired in each column.
-
-% Each new table line starts with @item, each subsequent new column
-% starts with @tab. Empty columns may be produced by supplying @tab's
-% with nothing between them for as many times as empty columns are needed,
-% ie, @tab@tab@tab will produce two empty columns.
-
-% @item, @tab do not need to be on their own lines, but it will not hurt
-% if they are.
-
-% Sample multitable:
-
-% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
-% @item first col stuff @tab second col stuff @tab third col
-% @item
-% first col stuff
-% @tab
-% second col stuff
-% @tab
-% third col
-% @item first col stuff @tab second col stuff
-% @tab Many paragraphs of text may be used in any column.
-%
-% They will wrap at the width determined by the template.
-% @item@tab@tab This will be in third column.
-% @end multitable
-
-% Default dimensions may be reset by user.
-% @multitableparskip is vertical space between paragraphs in table.
-% @multitableparindent is paragraph indent in table.
-% @multitablecolmargin is horizontal space to be left between columns.
-% @multitablelinespace is space to leave between table items, baseline
-% to baseline.
-% 0pt means it depends on current normal line spacing.
-%
-\newskip\multitableparskip
-\newskip\multitableparindent
-\newdimen\multitablecolspace
-\newskip\multitablelinespace
-\multitableparskip=0pt
-\multitableparindent=6pt
-\multitablecolspace=12pt
-\multitablelinespace=0pt
% Macros used to set up halign preamble:
%
@@ -4358,8 +4350,6 @@
\go
}
-% multitable-only commands.
-%
% @headitem starts a heading row, which we typeset in bold. Assignments
% have to be global since we are inside the implicit group of an
% alignment entry. \everycr below resets \everytab so we don't have to
@@ -4376,14 +4366,8 @@
% default for tables with no headings.
\let\headitemcrhook=\relax
%
-% A \tab used to include \hskip1sp. But then the space in a template
-% line is not enough. That is bad. So let's go back to just `&' until
-% we again encounter the problem the 1sp was intended to solve.
-% --karl, nathan@acm.org, 20apr99.
\def\tab{\checkenv\multitable &\the\everytab}%
-% @multitable ... @end multitable definitions:
-%
\newtoks\everytab % insert after every tab.
%
\envdef\multitable{%
@@ -4398,9 +4382,8 @@
%
\tolerance=9500
\hbadness=9500
- \setmultitablespacing
- \parskip=\multitableparskip
- \parindent=\multitableparindent
+ \parskip=0pt
+ \parindent=6pt
\overfullrule=0pt
\global\colcount=0
%
@@ -4430,47 +4413,24 @@
% continue for many paragraphs if desired.
\halign\bgroup &%
\global\advance\colcount by 1
- \multistrut
+ \strut
\vtop{%
- % Use the current \colcount to find the correct column width:
+ \advance\hsize by -1\leftskip
+ % Find the correct column width
\hsize=\expandafter\csname col\the\colcount\endcsname
%
- % In order to keep entries from bumping into each other
- % we will add a \leftskip of \multitablecolspace to all columns after
- % the first one.
- %
- % If a template has been used, we will add \multitablecolspace
- % to the width of each template entry.
- %
- % If the user has set preamble in terms of percent of \hsize we will
- % use that dimension as the width of the column, and the \leftskip
- % will keep entries from bumping into each other. Table will start at
- % left margin and final column will justify at right margin.
- %
- % Make sure we don't inherit \rightskip from the outer environment.
\rightskip=0pt
\ifnum\colcount=1
- % The first column will be indented with the surrounding text.
- \advance\hsize by\leftskip
+ \advance\hsize by\leftskip % Add indent of surrounding text
\else
- \ifsetpercent \else
- % If user has not set preamble in terms of percent of \hsize
- % we will advance \hsize by \multitablecolspace.
- \advance\hsize by \multitablecolspace
- \fi
- % In either case we will make \leftskip=\multitablecolspace:
- \leftskip=\multitablecolspace
+ % In order to keep entries from bumping into each other.
+ \leftskip=12pt
+ \ifsetpercent \else
+ % If a template has been used
+ \advance\hsize by \leftskip
+ \fi
\fi
- % Ignoring space at the beginning and end avoids an occasional spurious
- % blank line, when TeX decides to break the line at the space before the
- % box from the multistrut, so the strut ends up on a line by itself.
- % For example:
- % @multitable @columnfractions .11 .89
- % @item @code{#}
- % @tab Legal holiday which is valid in major parts of the whole country.
- % Is automatically provided with highlighting sequences respectively
- % marking characters.
- \noindent\ignorespaces##\unskip\multistrut
+ \noindent\ignorespaces##\unskip\strut
}\cr
}
\def\Emultitable{%
@@ -4479,31 +4439,6 @@
\global\setpercentfalse
}
-\def\setmultitablespacing{%
- \def\multistrut{\strut}% just use the standard line spacing
- %
- % Compute \multitablelinespace (if not defined by user) for use in
- % \multitableparskip calculation. We used define \multistrut based on
- % this, but (ironically) that caused the spacing to be off.
- % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
-\ifdim\multitablelinespace=0pt
-\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
-\global\advance\multitablelinespace by-\ht0
-\fi
-% Test to see if parskip is larger than space between lines of
-% table. If not, do nothing.
-% If so, set to same dimension as multitablelinespace.
-\ifdim\multitableparskip>\multitablelinespace
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
- % than skip between lines in the table.
-\fi%
-\ifdim\multitableparskip=0pt
-\global\multitableparskip=\multitablelinespace
-\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
- % than skip between lines in the table.
-\fi}
-
\message{conditionals,}
@@ -4841,7 +4776,7 @@
% like the previous two, but they put @code around the argument.
\def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx}
-\def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}}
+\def\docodeindexxxx #1{\docind{\indexname}{#1}}
% Used for the aux, toc and index files to prevent expansion of Texinfo
@@ -5138,43 +5073,44 @@
\def\ss{ss}%
\def\th{th}%
%
- \def\LaTeX{LaTeX}%
- \def\TeX{TeX}%
+ \let\do\indexnofontsdef
+ %
+ \do\LaTeX{LaTeX}%
+ \do\TeX{TeX}%
%
- % Assorted special characters. \defglyph gives the control sequence a
- % definition that removes the {} that follows its use.
- \defglyph\atchar{@}%
- \defglyph\arrow{->}%
- \defglyph\bullet{bullet}%
- \defglyph\comma{,}%
- \defglyph\copyright{copyright}%
- \defglyph\dots{...}%
- \defglyph\enddots{...}%
- \defglyph\equiv{==}%
- \defglyph\error{error}%
- \defglyph\euro{euro}%
- \defglyph\expansion{==>}%
- \defglyph\geq{>=}%
- \defglyph\guillemetleft{<<}%
- \defglyph\guillemetright{>>}%
- \defglyph\guilsinglleft{<}%
- \defglyph\guilsinglright{>}%
- \defglyph\leq{<=}%
- \defglyph\lbracechar{\{}%
- \defglyph\minus{-}%
- \defglyph\point{.}%
- \defglyph\pounds{pounds}%
- \defglyph\print{-|}%
- \defglyph\quotedblbase{"}%
- \defglyph\quotedblleft{"}%
- \defglyph\quotedblright{"}%
- \defglyph\quoteleft{`}%
- \defglyph\quoteright{'}%
- \defglyph\quotesinglbase{,}%
- \defglyph\rbracechar{\}}%
- \defglyph\registeredsymbol{R}%
- \defglyph\result{=>}%
- \defglyph\textdegree{o}%
+ % Assorted special characters.
+ \do\atchar{@}%
+ \do\arrow{->}%
+ \do\bullet{bullet}%
+ \do\comma{,}%
+ \do\copyright{copyright}%
+ \do\dots{...}%
+ \do\enddots{...}%
+ \do\equiv{==}%
+ \do\error{error}%
+ \do\euro{euro}%
+ \do\expansion{==>}%
+ \do\geq{>=}%
+ \do\guillemetleft{<<}%
+ \do\guillemetright{>>}%
+ \do\guilsinglleft{<}%
+ \do\guilsinglright{>}%
+ \do\leq{<=}%
+ \do\lbracechar{\{}%
+ \do\minus{-}%
+ \do\point{.}%
+ \do\pounds{pounds}%
+ \do\print{-|}%
+ \do\quotedblbase{"}%
+ \do\quotedblleft{"}%
+ \do\quotedblright{"}%
+ \do\quoteleft{`}%
+ \do\quoteright{'}%
+ \do\quotesinglbase{,}%
+ \do\rbracechar{\}}%
+ \do\registeredsymbol{R}%
+ \do\result{=>}%
+ \do\textdegree{o}%
%
% We need to get rid of all macros, leaving only the arguments (if present).
% Of course this is not nearly correct, but it is the best we can do for now.
@@ -5189,7 +5125,10 @@
\macrolist
\let\value\indexnofontsvalue
}
-\def\defglyph#1#2{\def#1##1{#2}} % see above
+
+% Give the control sequence a definition that removes the {} that follows
+% its use, e.g. @AA{} -> AA
+\def\indexnofontsdef#1#2{\def#1##1{#2}}%
@@ -5208,6 +5147,20 @@
\fi
}
+% Same as \doind, but for code indices
+\def\docind#1#2{%
+ \iflinks
+ {%
+ %
+ \requireopenindexfile{#1}%
+ \edef\writeto{\csname#1indfile\endcsname}%
+ %
+ \def\indextext{#2}%
+ \safewhatsit\docindwrite
+ }%
+ \fi
+}
+
% Check if an index file has been opened, and if not, open it.
\def\requireopenindexfile#1{%
\ifnum\csname #1indfile\endcsname=0
@@ -5274,6 +5227,9 @@
% trim spaces.
\edef\trimmed{\segment}%
\edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
+ \ifincodeindex
+ \edef\trimmed{\noexpand\code{\trimmed}}%
+ \fi
%
\xdef\bracedtext{\bracedtext{\trimmed}}%
%
@@ -5339,7 +5295,12 @@
% Write the entry in \indextext to the index file.
%
-\def\doindwrite{%
+
+\newif\ifincodeindex
+\def\doindwrite{\incodeindexfalse\doindwritex}
+\def\docindwrite{\incodeindextrue\doindwritex}
+
+\def\doindwritex{%
\maybemarginindex
%
\atdummies
@@ -5559,7 +5520,11 @@
\else
\begindoublecolumns
\catcode`\\=0\relax
- \catcode`\@=12\relax
+ %
+ % Make @ an escape character to give macros a chance to work. This
+ % should work because we (hopefully) don't otherwise use @ in index files.
+ %\catcode`\@=12\relax
+ \catcode`\@=0\relax
\input \jobname.\indexname s
\enddoublecolumns
\fi
@@ -6401,18 +6366,16 @@
\def\CHAPPAGoff{%
\global\let\contentsalignmacro = \chappager
\global\let\pchapsepmacro=\chapbreak
-\global\let\pagealignmacro=\chappager}
+\global\def\HEADINGSon{\HEADINGSsinglechapoff}}
\def\CHAPPAGon{%
\global\let\contentsalignmacro = \chappager
\global\let\pchapsepmacro=\chappager
-\global\let\pagealignmacro=\chappager
\global\def\HEADINGSon{\HEADINGSsingle}}
\def\CHAPPAGodd{%
\global\let\contentsalignmacro = \chapoddpage
\global\let\pchapsepmacro=\chapoddpage
-\global\let\pagealignmacro=\chapoddpage
\global\def\HEADINGSon{\HEADINGSdouble}}
\CHAPPAGon
@@ -6777,9 +6740,7 @@
%
\def\startcontents#1{%
% If @setchapternewpage on, and @headings double, the contents should
- % start on an odd page, unlike chapters. Thus, we maintain
- % \contentsalignmacro in parallel with \pagealignmacro.
- % From: Torbjorn Granlund
+ % start on an odd page, unlike chapters.
\contentsalignmacro
\immediate\closeout\tocfile
%
@@ -6794,6 +6755,9 @@
%
% Roman numerals for page numbers.
\ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
+ \def\thistitle{}% no title in double-sided headings
+ % Record where the Roman numerals started.
+ \ifnum\romancount=0 \global\romancount=\pagecount \fi
}
% redefined for the two-volume lispref. We always output on
@@ -6816,8 +6780,7 @@
\fi
\closein 1
\endgroup
- \lastnegativepageno = \pageno
- \global\pageno = \savepageno
+ \contentsendroman
}
% And just the chapters.
@@ -6852,10 +6815,20 @@
\vfill \eject
\contentsalignmacro % in case @setchapternewpage odd is in effect
\endgroup
+ \contentsendroman
+}
+\let\shortcontents = \summarycontents
+
+% Get ready to use Arabic numerals again
+\def\contentsendroman{%
\lastnegativepageno = \pageno
\global\pageno = \savepageno
+ %
+ % If \romancount > \arabiccount, the contents are at the end of the
+ % document. Otherwise, advance where the Arabic numerals start for
+ % the page numbers.
+ \ifnum\romancount>\arabiccount\else\global\arabiccount=\pagecount\fi
}
-\let\shortcontents = \summarycontents
% Typeset the label for a chapter or appendix for the short contents.
% The arg is, e.g., `A' for an appendix, or `3' for a chapter.
@@ -6997,7 +6970,7 @@
% But \@ or @@ will get a plain @ character.
\envdef\tex{%
- \setupmarkupstyle{tex}%
+ \setregularquotes
\catcode `\\=0 \catcode `\{=1 \catcode `\}=2
\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
\catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
@@ -7223,7 +7196,7 @@
% If you want all examples etc. small: @set dispenvsize small.
% If you want even small examples the full size: @set dispenvsize nosmall.
% This affects the following displayed environments:
-% @example, @display, @format, @lisp
+% @example, @display, @format, @lisp, @verbatim
%
\def\smallword{small}
\def\nosmallword{nosmall}
@@ -7269,9 +7242,9 @@
%
\maketwodispenvdef{lisp}{example}{%
\nonfillstart
- \tt\setupmarkupstyle{example}%
+ \tt\setcodequotes
\let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
- \gobble % eat return
+ \parsearg\gobble
}
% @display/@smalldisplay: same as @lisp except keep current font.
%
@@ -7429,7 +7402,7 @@
\def\setupverb{%
\tt % easiest (and conventionally used) font for verbatim
\def\par{\leavevmode\endgraf}%
- \setupmarkupstyle{verb}%
+ \setcodequotes
\tabeightspaces
% Respect line breaks,
% print special symbols as themselves, and
@@ -7444,13 +7417,9 @@
\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
%
% We typeset each line of the verbatim in an \hbox, so we can handle
-% tabs. The \global is in case the verbatim line starts with an accent,
-% or some other command that starts with a begin-group. Otherwise, the
-% entire \verbbox would disappear at the corresponding end-group, before
-% it is typeset. Meanwhile, we can't have nested verbatim commands
-% (can we?), so the \global won't be overwriting itself.
+% tabs.
\newbox\verbbox
-\def\starttabbox{\global\setbox\verbbox=\hbox\bgroup}
+\def\starttabbox{\setbox\verbbox=\hbox\bgroup}
%
\begingroup
\catcode`\^^I=\active
@@ -7461,7 +7430,8 @@
\divide\dimen\verbbox by\tabw
\multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw
\advance\dimen\verbbox by\tabw % advance to next multiple of \tabw
- \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox
+ \wd\verbbox=\dimen\verbbox
+ \leavevmode\box\verbbox \starttabbox
}%
}
\endgroup
@@ -7471,17 +7441,14 @@
\let\nonarrowing = t%
\nonfillstart
\tt % easiest (and conventionally used) font for verbatim
- % The \leavevmode here is for blank lines. Otherwise, we would
- % never \starttabbox and the \egroup would end verbatim mode.
- \def\par{\leavevmode\egroup\box\verbbox\endgraf}%
+ \def\par{\egroup\leavevmode\box\verbbox\endgraf\starttabbox}%
\tabexpand
- \setupmarkupstyle{verbatim}%
+ \setcodequotes
% Respect line breaks,
% print special symbols as themselves, and
% make each space count.
% Must do in this order:
\obeylines \uncatcodespecials \sepspaces
- \everypar{\starttabbox}%
}
% Do the @verb magic: verbatim text is quoted by unique
@@ -7516,13 +7483,16 @@
% ignore everything up to the first ^^M, that's the newline at the end
% of the @verbatim input line itself. Otherwise we get an extra blank
% line in the output.
- \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}%
+ \xdef\doverbatim#1^^M#2@end verbatim{%
+ \starttabbox#2\egroup\noexpand\end\gobble verbatim}%
% We really want {...\end verbatim} in the body of the macro, but
% without the active space; thus we have to use \xdef and \gobble.
+ % The \egroup ends the \verbbox started at the end of the last line in
+ % the block.
\endgroup
%
\envdef\verbatim{%
- \setupverbatim\doverbatim
+ \setnormaldispenv\setupverbatim\doverbatim
}
\let\Everbatim = \afterenvbreak
@@ -7540,7 +7510,7 @@
\wlog{texinfo.tex: doing @verbatiminclude of #1^^J}%
\edef\tmp{\noexpand\input #1 }
\expandafter
- }\tmp
+ }\expandafter\starttabbox\tmp\egroup
\afterenvbreak
}%
}
@@ -7892,7 +7862,7 @@
% leave the code in, but it's strange for @var to lead to typewriter.
% Nowadays we recommend @code, since the difference between a ttsl hyphen
% and a tt hyphen is pretty tiny. @code also disables ?` !`.
- \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
+ \def\var##1{{\setregularquotes\ttslanted{##1}}}%
#1%
\sl\hyphenchar\font=45
}
@@ -8001,11 +7971,18 @@
}
\fi
+\let\E=\expandafter
+
% Used at the time of macro expansion.
% Argument is macro body with arguments substituted
\def\scanmacro#1{%
\newlinechar`\^^M
- \def\xeatspaces{\eatspaces}%
+ % expand the expansion of \eatleadingcr twice to maybe remove a leading
+ % newline (and \else and \fi tokens), then call \eatspaces on the result.
+ \def\xeatspaces##1{%
+ \E\E\E\E\E\E\E\eatspaces\E\E\E\E\E\E\E{\eatleadingcr##1%
+ }}%
+ \def\xempty##1{}%
%
% Process the macro body under the current catcode regime.
\scantokens{#1@comment}%
@@ -8058,6 +8035,11 @@
\unbrace{\gdef\trim@@@ #1 } #2@{#1}
}
+{\catcode`\^^M=\other%
+\gdef\eatleadingcr#1{\if\noexpand#1\noexpand^^M\else\E#1\fi}}%
+% Warning: this won't work for a delimited argument
+% or for an empty argument
+
% Trim a single trailing ^^M off a string.
{\catcode`\^^M=\other \catcode`\Q=3%
\gdef\eatcr #1{\eatcra #1Q^^MQ}%
@@ -8224,6 +8206,7 @@
\let\hash\relax
% \hash is redefined to `#' later to get it into definitions
\let\xeatspaces\relax
+ \let\xempty\relax
\parsemargdefxxx#1,;,%
\ifnum\paramno<10\relax\else
\paramno0\relax
@@ -8235,9 +8218,11 @@
\else \let\next=\parsemargdefxxx
\advance\paramno by 1
\expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
- {\xeatspaces{\hash\the\paramno}}%
+ {\xeatspaces{\hash\the\paramno\noexpand\xempty{}}}%
\edef\paramlist{\paramlist\hash\the\paramno,}%
\fi\next}
+% the \xempty{} is to give \eatleadingcr an argument in the case of an
+% empty macro argument.
% \parsemacbody, \parsermacbody
%
@@ -8826,7 +8811,7 @@
\else
\ifhavexrefs
% We (should) know the real title if we have the xref values.
- \def\printedrefname{\refx{#1-title}{}}%
+ \def\printedrefname{\refx{#1-title}}%
\else
% Otherwise just copy the Info node name.
\def\printedrefname{\ignorespaces #1}%
@@ -8920,7 +8905,7 @@
% If the user specified the print name (third arg) to the ref,
% print it instead of our usual "Figure 1.2".
\ifdim\wd\printedrefnamebox = 0pt
- \refx{#1-snt}{}%
+ \refx{#1-snt}%
\else
\printedrefname
\fi
@@ -8955,34 +8940,30 @@
\else
% Reference within this manual.
%
- % _ (for example) has to be the character _ for the purposes of the
- % control sequence corresponding to the node, but it has to expand
- % into the usual \leavevmode...\vrule stuff for purposes of
- % printing. So we \turnoffactive for the \refx-snt, back on for the
- % printing, back off for the \refx-pg.
- {\turnoffactive
- % Only output a following space if the -snt ref is nonempty; for
- % @unnumbered and @anchor, it won't be.
- \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
- \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
- }%
+ % Only output a following space if the -snt ref is nonempty, as the ref
+ % will be empty for @unnumbered and @anchor.
+ \setbox2 = \hbox{\ignorespaces \refx{#1-snt}}%
+ \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
+ %
% output the `[mynode]' via the macro below so it can be overridden.
\xrefprintnodename\printedrefname
%
- % But we always want a comma and a space:
- ,\space
- %
- % output the `page 3'.
- \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
- % Add a , if xref followed by a space
- \if\space\noexpand\tokenafterxref ,%
- \else\ifx\ \tokenafterxref ,% @TAB
- \else\ifx\*\tokenafterxref ,% @*
- \else\ifx\ \tokenafterxref ,% @SPACE
- \else\ifx\
- \tokenafterxref ,% @NL
- \else\ifx\tie\tokenafterxref ,% @tie
- \fi\fi\fi\fi\fi\fi
+ \expandafter\ifx\csname SETtxiomitxrefpg\endcsname\relax
+ % But we always want a comma and a space:
+ ,\space
+ %
+ % output the `page 3'.
+ \turnoffactive \putwordpage\tie\refx{#1-pg}%
+ % Add a , if xref followed by a space
+ \if\space\noexpand\tokenafterxref ,%
+ \else\ifx\ \tokenafterxref ,% @TAB
+ \else\ifx\*\tokenafterxref ,% @*
+ \else\ifx\ \tokenafterxref ,% @SPACE
+ \else\ifx\
+ \tokenafterxref ,% @NL
+ \else\ifx\tie\tokenafterxref ,% @tie
+ \fi\fi\fi\fi\fi\fi
+ \fi
\fi\fi
\fi
\endlink
@@ -9049,13 +9030,12 @@
\fi\fi\fi
}
-% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME. SUFFIX
-% is output afterwards if non-empty.
-\def\refx#1#2{%
+% \refx{NAME} - reference a cross-reference string named NAME.
+\def\refx#1{%
\requireauxfile
{%
\indexnofonts
- \otherbackslash
+ \turnoffactive
\def\value##1{##1}%
\expandafter\global\expandafter\let\expandafter\thisrefX
\csname XR#1\endcsname
@@ -9078,7 +9058,6 @@
% It's defined, so just use it.
\thisrefX
\fi
- #2% Output the suffix in any case.
}
% This is the macro invoked by entries in the aux file. Define a control
@@ -9188,10 +9167,10 @@
\catcode`\[=\other
\catcode`\]=\other
\catcode`\"=\other
- \catcode`\_=\other
- \catcode`\|=\other
- \catcode`\<=\other
- \catcode`\>=\other
+ \catcode`\_=\active
+ \catcode`\|=\active
+ \catcode`\<=\active
+ \catcode`\>=\active
\catcode`\$=\other
\catcode`\#=\other
\catcode`\&=\other
@@ -9412,7 +9391,7 @@
\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
\catcode`\^^M = 5 % in case we're inside an example
\normalturnoffactive % allow _ et al. in names
- \def\xprocessmacroarg{\eatspaces}% in case we are being used via a macro
+ \makevalueexpandable
% If the image is by itself, center it.
\ifvmode
\imagevmodetrue
@@ -9438,7 +9417,7 @@
% On the other hand, if we are in the case of @center @image, we don't
% want to start a paragraph, which will create a hsize-width box and
% eradicate the centering.
- \ifx\centersub\centerV\else \noindent \fi
+ \ifx\centersub\centerV \else \imageindent \fi
%
% Output the image.
\ifpdf
@@ -10712,6 +10691,8 @@
\DeclareUnicodeCharacter{0233}{\=y}%
\DeclareUnicodeCharacter{0237}{\dotless{j}}%
%
+ \DeclareUnicodeCharacter{02BC}{'}%
+ %
\DeclareUnicodeCharacter{02DB}{\ogonek{ }}%
%
% Greek letters upper case
@@ -11346,6 +11327,18 @@
\globaldefs = 0
}}
+\def\bsixpaper{{\globaldefs = 1
+ \afourpaper
+ \internalpagesizes{140mm}{100mm}%
+ {-6.35mm}{-12.7mm}%
+ {\bindingoffset}{14pt}%
+ {176mm}{125mm}%
+ \let\SETdispenvsize=\smallword
+ \lispnarrowing = 0.2in
+ \globaldefs = 0
+}}
+
+
% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
% Perhaps we should allow setting the margins, \topskip, \parskip,
% and/or leading, also. Or perhaps we should compute them somehow.
@@ -11359,12 +11352,12 @@
\setleading{\textleading}%
%
\dimen0 = #1\relax
- \advance\dimen0 by \voffset
- \advance\dimen0 by 1in % reference point for DVI is 1 inch from top of page
+ \advance\dimen0 by 2.5in % default 1in margin above heading line
+ % and 1.5in to include heading, footing and
+ % bottom margin
%
\dimen2 = \hsize
- \advance\dimen2 by \normaloffset
- \advance\dimen2 by 1in % reference point is 1 inch from left edge of page
+ \advance\dimen2 by 2in % default to 1 inch margin on each side
%
\internalpagesizes{#1}{\hsize}%
{\voffset}{\normaloffset}%
@@ -11451,7 +11444,7 @@
\let> = \activegtr
\let~ = \activetilde
\let^ = \activehat
- \markupsetuplqdefault \markupsetuprqdefault
+ \setregularquotes
\let\b = \strong
\let\i = \smartitalic
% in principle, all other definitions in \tex have to be undone too.
@@ -11510,8 +11503,7 @@
@let|=@normalverticalbar
@let~=@normaltilde
@let\=@ttbackslash
- @markupsetuplqdefault
- @markupsetuprqdefault
+ @setregularquotes
@unsepspaces
}
}
@@ -11604,8 +11596,7 @@
@c Do this last of all since we use ` in the previous @catcode assignments.
@catcode`@'=@active
@catcode`@`=@active
-@markupsetuplqdefault
-@markupsetuprqdefault
+@setregularquotes
@c Local variables:
@c eval: (add-hook 'before-save-hook 'time-stamp)
@@ -11618,3 +11609,4 @@
@c vim:sw=2:
@enablebackslashhack
+
diff -Nru bison-3.5.1+dfsg/build-aux/update-b4-copyright bison-3.8.2+dfsg/build-aux/update-b4-copyright
--- bison-3.5.1+dfsg/build-aux/update-b4-copyright 2020-01-10 18:16:23.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/update-b4-copyright 2021-06-23 04:48:48.000000000 +0000
@@ -3,7 +3,7 @@
# Update b4_copyright invocations or b4_copyright_years definitions to
# include the current year.
-# Copyright (C) 2009-2015, 2018-2020 Free Software Foundation, Inc.
+# Copyright (C) 2009-2015, 2018-2021 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -16,7 +16,7 @@
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
+# along with this program. If not, see .
use strict;
use warnings;
diff -Nru bison-3.5.1+dfsg/build-aux/update-copyright bison-3.8.2+dfsg/build-aux/update-copyright
--- bison-3.5.1+dfsg/build-aux/update-copyright 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/update-copyright 2021-03-10 05:41:24.000000000 +0000
@@ -3,7 +3,7 @@
# Update an FSF copyright year list to include the current year.
-# Copyright (C) 2009-2020 Free Software Foundation, Inc.
+# Copyright (C) 2009-2021 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -133,11 +133,11 @@
# are valid code in both sh and perl. When executed by sh, they re-execute
# the script through the perl program found in $PATH. The '-x' option
# is essential as well; without it, perl would re-execute the script
-# through /bin/sh. When executed by perl, the next two lines are a no-op.
+# through /bin/sh. When executed by perl, the next two lines are a no-op.
eval 'exec perl -wSx -0777 -pi "$0" "$@"'
if 0;
-my $VERSION = '2018-03-07.03:47'; # UTC
+my $VERSION = '2020-04-04.15:07'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
diff -Nru bison-3.5.1+dfsg/build-aux/useless-if-before-free bison-3.8.2+dfsg/build-aux/useless-if-before-free
--- bison-3.5.1+dfsg/build-aux/useless-if-before-free 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/useless-if-before-free 2021-06-23 05:08:39.000000000 +0000
@@ -4,7 +4,7 @@
# Detect instances of "if (p) free (p);".
# Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces.
-# Copyright (C) 2008-2020 Free Software Foundation, Inc.
+# Copyright (C) 2008-2021 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -32,16 +32,18 @@
# are valid code in both sh and perl. When executed by sh, they re-execute
# the script through the perl program found in $PATH. The '-x' option
# is essential as well; without it, perl would re-execute the script
-# through /bin/sh. When executed by perl, the next two lines are a no-op.
+# through /bin/sh. When executed by perl, the next two lines are a no-op.
eval 'exec perl -wSx "$0" "$@"'
if 0;
-my $VERSION = '2018-03-07 03:47'; # UTC
+my $VERSION = '2021-04-11 10:11'; # UTC
# The definition above must lie within the first 8 lines in order
# for the Emacs time-stamp write hook (at end) to update it.
# If you change this file with Emacs, please let the write hook
# do its job. Otherwise, update this string manually.
+my $copyright_year = '2021';
+
use strict;
use warnings;
use Getopt::Long;
@@ -118,7 +120,19 @@
GetOptions
(
help => sub { usage 0 },
- version => sub { print "$ME version $VERSION\n"; exit },
+ version =>
+ sub
+ {
+ print "$ME version $VERSION\n";
+ print "Copyright (C) $copyright_year Free Software Foundation, Inc.\n";
+ print "License GPLv3+: GNU GPL version 3 or later .\n"
+ . "This is free software: you are free to change and redistribute it.\n"
+ . "There is NO WARRANTY, to the extent permitted by law.\n";
+ print "\n";
+ my $author = "Jim Meyering";
+ print "Written by $author.\n";
+ exit
+ },
list => \$list,
'name=s@' => \@name,
) or usage 1;
diff -Nru bison-3.5.1+dfsg/build-aux/vc-list-files bison-3.8.2+dfsg/build-aux/vc-list-files
--- bison-3.5.1+dfsg/build-aux/vc-list-files 2020-01-10 18:53:25.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/vc-list-files 2021-03-10 05:41:24.000000000 +0000
@@ -4,7 +4,7 @@
# Print a version string.
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 2006-2020 Free Software Foundation, Inc.
+# Copyright (C) 2006-2021 Free Software Foundation, Inc.
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
diff -Nru bison-3.5.1+dfsg/build-aux/ylwrap bison-3.8.2+dfsg/build-aux/ylwrap
--- bison-3.5.1+dfsg/build-aux/ylwrap 2020-01-19 13:16:04.000000000 +0000
+++ bison-3.8.2+dfsg/build-aux/ylwrap 2021-09-25 04:54:04.000000000 +0000
@@ -3,7 +3,7 @@
scriptversion=2018-03-07.03; # UTC
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
#
# Written by Tom Tromey .
#
diff -Nru bison-3.5.1+dfsg/cfg.mk bison-3.8.2+dfsg/cfg.mk
--- bison-3.5.1+dfsg/cfg.mk 2020-01-10 18:16:23.000000000 +0000
+++ bison-3.8.2+dfsg/cfg.mk 2021-09-25 06:02:52.000000000 +0000
@@ -1,5 +1,5 @@
## Customize maint.mk -*- makefile -*-
-## Copyright (C) 2008-2015, 2018-2020 Free Software Foundation, Inc.
+## Copyright (C) 2008-2015, 2018-2021 Free Software Foundation, Inc.
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -12,7 +12,7 @@
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
-## along with this program. If not, see .
+## along with this program. If not, see .
# Update version, then recompile so that tests/bison --version be
# up-to-date, then compile our parser again with our up-to-date bison.
@@ -42,7 +42,7 @@
# Tests not to run as part of "make distcheck".
local-checks-to-skip = \
sc_immutable_NEWS \
- sc_prohibit_atoi_atof
+ sc_indent
# The local directory containing the checked-out copy of gnulib used in
# this release. Used solely to get a date for the "announcement" target.
@@ -51,7 +51,7 @@
bootstrap-tools = autoconf,automake,flex,gettext,gnulib
announcement_Cc_ = \
- bug-bison@gnu.org, help-bison@gnu.org, bison-patches@gnu.org, \
+ bug-bison@gnu.org, bison-announce@gnu.org, \
coordinator@translationproject.org
update-copyright: update-b4-copyright update-package-copyright-year
@@ -126,7 +126,7 @@
_space_before_paren_exempt =? \\n\\$$
_space_before_paren_exempt = \
- (^ *\#|(LA)?LR\([01]\)|percent_(code|define)|b4_syncline|m4_(define|init)|symbol)
+ (^ *\#|(LA)?LR\([01]\)|percent_(code|define)|b4_syncline|m4_(define|init))
# Ensure that there is a space before each open parenthesis in C code.
sc_space_before_open_paren:
@if $(VC_LIST_EXCEPT) | grep -l '\.[ch]$$' > /dev/null; then \
@@ -156,16 +156,19 @@
$(call exclude, \
bindtextdomain=^lib/main.c$$ \
cast_of_argument_to_free=^src/muscle-tab.c$$ \
- po_check=(^po/POTFILES.in|.md)$$ \
+ error_message_uppercase=etc/bench.pl.in$$ \
+ file_system=^doc/Doxyfile.in$$ \
+ po_check=^tests|(^po/POTFILES.in|.md)$$ \
preprocessor_indentation=^data/|^lib/|^src/parse-gram.[ch]$$ \
program_name=^lib/main.c$$ \
prohibit_always-defined_macros=^data/skeletons/yacc.c$$ \
prohibit_always-defined_macros+=?|^src/(parse-gram.c|system.h)$$ \
prohibit_always-defined_macros+=?|^tests/regression.at$$ \
+ prohibit_atoi_atof=^(doc|etc|examples|tests)/ \
prohibit_doubled_word=^tests/named-refs.at$$ \
prohibit_magic_number_exit=^doc/bison.texi$$ \
prohibit_magic_number_exit+=?|^tests/(conflicts|regression).at$$ \
- prohibit_strcmp=^doc/bison\.texi|examples|tests/local\.at$$ \
+ prohibit_strcmp=^doc/bison\.texi|examples|tests \
prohibit_tab_based_indentation=install-icc.sh|\.(am|mk)$$|^\.git|tests/input.at|Makefile$$ \
require_config_h=^(lib/yyerror|data/skeletons/(glr|yacc))\.c$$ \
require_config_h_first=^(lib/yyerror|data/skeletons/(glr|yacc))\.c$$ \
diff -Nru bison-3.5.1+dfsg/ChangeLog bison-3.8.2+dfsg/ChangeLog
--- bison-3.5.1+dfsg/ChangeLog 2020-01-19 13:35:38.000000000 +0000
+++ bison-3.8.2+dfsg/ChangeLog 2021-09-25 09:10:40.000000000 +0000
@@ -1,3 +1,11991 @@
+2021-09-25 Akim Demaille
+
+ version 3.8.2
+ * NEWS: Record release date.
+
+2021-09-25 Akim Demaille
+
+ tests: Apple clang issues warning on C++11 features
+ $ cat /tmp/foo.cc
+ using foo = int;
+ foo f;
+ $ clang++ -Wc++11-extensions -c /tmp/foo.cc
+ /tmp/foo.cc:1:13: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
+ using foo = int;
+ ^
+ 1 warning generated.
+ $ clang++ --version
+ Apple clang version 11.0.0 (clang-1100.0.33.17)
+ Target: x86_64-apple-darwin18.7.0
+ Thread model: posix
+ InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
+
+ * tests/local.at (AT_COMPILE_CXX): Make sure -std=c++11 is passed when
+ running glr2.cc. It may be overridden by another flag in CXXFLAGS
+ afterwards.
+
+2021-09-25 Akim Demaille
+
+ avoid using atoi
+ * cfg.mk: Disable sc_indent as auto indent is too invasive for now.
+ Enable sc_prohibit_atoi_atof, except where we don't care.
+ * src/location.c, src/muscle-tab.c: Use strtol instead of atoi.
+
+2021-09-24 Akim Demaille
+
+ news: update
+
+2021-09-18 Akim Demaille
+
+ gnulib: update
+ To get
+
+ commit 7818455627c5e54813ac89924b8b67d0bc869146
+ Author: Bruno Haible
+ Date: Fri Sep 17 22:22:50 2021 +0200
+
+ threadlib: Avoid crashes in thread-related functions on Cygwin 3.2.0.
+
+ Reported by Brian Inglis via Akim Demaille in
+ .
+
+ * m4/threadlib.m4 (gl_WEAK_SYMBOLS): Force a "guessing no" result on
+ Cygwin.
+
+2021-09-18 Akim Demaille
+
+ c++: use YY_NOEXCEPT where it helps
+ Suggested by Don Macpherson.
+
+
+ * data/skeletons/c++.m4, data/skeletons/glr2.cc,
+ * data/skeletons/lalr1.cc, data/skeletons/stack.hh: Use YY_NOEXCEPT
+ where it helps constructors.
+
+2021-09-13 Akim Demaille
+
+ gnulib: update
+
+2021-09-13 Akim Demaille
+
+ glr2.cc: semantic_option: use a symbol
+ * data/skeletons/c++.m4 (basic_symbol): Add assignment operators.
+ * data/skeletons/glr2.cc (semantic_option): Replace yytoken, yyvalue
+ and yylocation by yyla.
+
+2021-09-13 Akim Demaille
+
+ glr2.cc: don't publish move ctor to lalr1.cc
+ These operators were introduced in "c++: add move assignments to the
+ symbol type" (fdaedc780af0dd678a4f4fa3175a201a553be20a) for glr2.cc.
+
+ * data/skeletons/c++.m4: Define them for glr2.cc only.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: simplify semantic_option
+ * data/skeletons/glr2.cc (semantic_option): Simplify the rule-based
+ constructor. This shows that it should be easy to use a symbol_kind,
+ instead of the kind/value/location triple.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: we require C++11
+ * data/skeletons/glr2.cc: So no need for C++98 compatibility.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: introduse b4_glr2_cc_if
+ * data/skeletons/bison.m4 (b4_glr2_cc_if): Intro.
+ * data/skeletons/c++.m4: use.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: don't pass %parse-param to destroy
+ I regret that %destructor and %printer give access to the %parse-param
+ in lalr1.cc, since that prevents them from being implemented as a
+ simple destructor and operator<<. Let's not repeat the mistake in
+ glr2.cc. In addition, fixes a name conflict we have currently in
+ tests 566 568 570 657:
+
+ calc.cc:1395:85: error: declaration shadows a field of 'calc::parser' [-Werror,-Wshadow]
+ void glr_state::destroy (char const* yymsg, calc::parser& yyparser, semantic_value *result, int *count, int *nerrs)
+ ^
+ calc.hh:441:21: note: previous declaration is here
+ semantic_value *result;
+ ^
+
+ With this commit, the whole test suite passes for glr2.cc.
+
+ * data/skeletons/glr2.cc (glr_state::destroy): Don't take the user
+ arguments.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: kill trailing white spaces
+ Fixes several calc tests.
+
+ Tests 566 568 570 657 still fail because of a name clash when using
+ %parse-param:
+
+ calc.cc:1395:85: error: declaration shadows a field of 'calc::parser' [-Werror,-Wshadow]
+ void glr_state::destroy (char const* yymsg, calc::parser& yyparser, semantic_value *result, int *count, int *nerrs)
+ ^
+ calc.hh:441:21: note: previous declaration is here
+ semantic_value *result;
+ ^
+
+ * data/skeletons/glr2.cc: Fix indentation/trailing spaces.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: check linking conflicts
+ * tests/headers.at (Several Headers): Link two glr2.cc parsers.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: move strong_index_alias into the unnamed namespace
+ * data/skeletons/glr2.cc: here.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: use only symbol_kind_type, not yysymbol_kind_t
+ * data/skeletons/glr2.cc: here.
+ And prefer the unnamed namespace to static.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: prefer using, and remove useless type aliases
+ * data/skeletons/glr2.cc: here.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: put glr_state_set and glr_stack_item in unnamed namespace
+ * data/skeletons/glr2.cc: here.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: move state_stack into the unnamed namespace
+ * data/skeletons/glr2.cc: here.
+ Prefer `using` to `typedef`, this is C++11.
+ Use the type alias we introduced.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: style: clarify control flow
+ * data/skeletons/glr2.cc (yypreference): Be more functional-style.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: move glr_stack and glr_state into the parser class
+ In order to be able to link several glr2.cc parser together, we cannot
+ have glr_stack and glr_state be in no namespace. Putting them in the
+ unnamed namespace is not doable, since we need to fwd declare them in
+ the parser. Putting them in the specified namespace is not enough
+ either, since some users would like to be able to put several parsers
+ in the same name, only differing by the class name.
+
+ * data/skeletons/glr2.cc (glr_state, glr_stack): Move into yy::parser.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: put create_state_set_index in unnamed namespace
+ * data/skeletons/glr2.cc: here.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: prefer unnamed namespace to 'static'
+ * data/skeletons/glr2.cc: here.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: put semantic_option into an unnamed namespace
+ If we link several glr2.cc parsers together, we get linking failures
+ because of duplicate symbols.
+
+ * data/skeletons/glr2.cc (semantic_option::indexIn)
+ (semantic_option::next): Remove the useless overloads.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: don't publish YY_EXCEPTIONS
+ We don't need them in the header file.
+
+ * data/skeletons/glr2.cc (YY_EXCEPTIONS): Define only in the
+ implementation file.
+ * tests/headers.at (Several Parsers): Also check glr2.cc.
+
+2021-09-12 Akim Demaille
+
+ c++: demonstrate custom error messages in the examples
+ Let's use c++/glr to demonstrate custom error messages in C++ (not
+ just in glr2.cc).
+
+ * examples/c++/glr/c++-types.yy (report_syntax_error): New.
+ * examples/c++/glr/c++-types.test: Adjust.
+ * examples/c/bistromathic/parse.y: Comment changes.
+ * tests/local.at (AT_YYERROR_DEFINE(c++)): Use a nicer way to print
+ the lookakead's name.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: custom error messages
+ Reported by Tom Shields .
+
+
+ * data/skeletons/glr2.cc (context): New.
+ Use it to generate the error messages.
+ Add support for custom error messages.
+ * tests/calc.at: Check support for custom error messages.
+
+2021-09-12 Akim Demaille
+
+ glr2.cc: start the transition to using symbol_type
+ Currently glr2.cc uses three variables/struct members to denote the
+ symbols' kind (or state), value and location. lalr1.cc has two types
+ for "complete" symbols: symbol_type and stack_symbol_type. Let's use
+ that model in glr2.cc too.
+
+ For a start use yyla (a symbol_type) to denote the lookahead, instead
+ of the triple yytoken, yylval and yylloc. This will make easier the
+ introduction of the "context" subclass, used in parse.error=custom.
+
+ It simplifies the code in several places. For instance from:
+
+ symbol_kind_type yytoken_current = this->yytoken;]b4_variant_if([[
+ value_type yylval_current;
+ ]b4_symbol_variant([this->yytoken],
+ [yylval_current], [move], [this->yylval])], [[
+ value_type yylval_current = this->yylval;]])[]b4_locations_if([
+ location_type yylloc_current = this->yylloc;])[
+
+ to:
+
+ symbol_type yyla_current = std::move (this->yyla);
+
+ * data/skeletons/glr2.cc (yytoken, yylval, yylloc): Replace by...
+ (yyla): this.
+ Adjust all dependencies.
+ (yyloc_default): Remove, unused.
+ * tests/c++.at, tests/glr-regression.at, tests/types.at: C++11 is
+ required for glr2.cc.
+ Adjust to changes in glr2.cc.
+
+2021-09-12 Akim Demaille
+
+ c++: add move assignments to the symbol type
+ This will be used in glr2.cc, which requires C++11.
+
+ * data/skeletons/c++.m4 (basic_symbol, by_kind): Add move assignment.
+
+2021-09-12 Akim Demaille
+
+ c++: avoid using the obsolete names
+ * data/skeletons/c++.m4: Don't define obsolete identifiers in the case
+ of glr2.cc. Let's not start with technical debt.
+ * data/skeletons/glr2.cc, data/skeletons/lalr1.cc,
+ * data/skeletons/variant.hh: Use token_kind_type, not token_type.
+ * tests/c++.at, tests/local.at: Use value_type, not semantic_type.
+
+2021-09-12 Akim Demaille
+
+ regen
+
+2021-09-11 Akim Demaille
+
+ maint: post-release administrivia
+ * NEWS: Add header line for next release.
+ * .prev-version: Record previous version.
+ * cfg.mk (old_NEWS_hash): Auto-update.
+
+2021-09-11 Akim Demaille
+
+ version 3.8.1
+ * NEWS: Record release date.
+
+2021-09-11 Akim Demaille
+
+ portability: don't use strtof
+ It is not available on HP-UX 11i.
+ Reported by Larkin Nickle .
+
+
+ Gnulib provides no replacement, but anyway we should be using doubles,
+ since difftime uses doubles.
+
+ * bootstrap.conf: We want portability on stdtod.
+ * src/counterexample.c: Use double, not float, for time measurements.
+
+2021-09-11 Akim Demaille
+
+ yacc: declare yyerror/yylex only when POSIXLY_CORRECT
+ The recent changes to comply with POSIX are breaking Automake's test
+ suite.
+ Reported by Kiyoshi Kanazawa.
+
+
+ To limit the impact of POSIX changes, bind them to $POSIXLY_CORRECT.
+ Suggested by Karl Berry.
+
+
+ The existing `maintainer-check-posix` Make target checks these
+ changes.
+
+ * src/getargs.h, src/getargs.c (set_yacc): New.
+ Use it.
+ * data/skeletons/bison.m4 (b4_posix_if): New.
+ * data/skeletons/yacc.c (b4_declare_yyerror_and_yylex): Use it.
+ * doc/bison.texi, tests/local.at: Adjust.
+
+2021-09-07 Akim Demaille
+
+ maint: post-release administrivia
+ * NEWS: Add header line for next release.
+ * .prev-version: Record previous version.
+ * cfg.mk (old_NEWS_hash): Auto-update.
+
+2021-09-07 Akim Demaille
+
+ version 3.8
+ * NEWS: Record release date.
+
+2021-09-07 Akim Demaille
+
+ news: update
+
+2021-09-02 Akim Demaille
+
+ maint: post-release administrivia
+ * NEWS: Add header line for next release.
+ * .prev-version: Record previous version.
+ * cfg.mk (old_NEWS_hash): Auto-update.
+
+2021-09-02 Akim Demaille
+
+ version 3.7.91
+ * NEWS: Record release date.
+
+2021-09-02 Akim Demaille
+
+ tests: disable "Multistart reports"
+ For some reason this test fails on Solaris/x86. But multistart is not
+ part of 3.8, so we can postpone the debugging of this issue.
+ Reported by Dagobert Michelsen.
+
+
+ * tests/report.at (Multistart reports): Comment out.
+
+2021-08-29 Akim Demaille
+
+ style: c++: formatting changes
+ * data/skeletons/variant.hh, data/skeletons/glr2.cc: Fix space before
+ paren issue.
+
+2021-08-29 Akim Demaille
+
+ style: rename stmtMerge as stmt_merge
+ Follow the GNU Coding Style.
+
+ * doc/bison.texi, examples/c++/glr/c++-types.yy,
+ * examples/c/glr/c++-types.y, tests/cxx-type.at: s/stmtMerge/stmt_merge/g.
+
+2021-08-29 Akim Demaille
+
+ c++: beware of Visual C++ limitations
+ Contrary to what commit d8cc6b073e2802d871a16dc62418a7eb62ed2216 "c++:
+ shorten the assertions that check whether tokens are correct"
+ believed, MS Visual C++'s preprocessor limitation is not on the input
+ line length, but on the size of the line holding the full C++
+ statement.
+
+ Reported by Vince Huffaker
+
+
+ * data/skeletons/variant.hh (_b4_symbol_constructor_define): Hide the
+ assertion from Visual C++.
+
+2021-08-29 Akim Demaille
+
+ tests: don't postprocess stderr with sed
+ On Solaris, sed throws away the NUL bytes from the stream, even in C
+ locale. So instead of postprocessing bison's stderr to neutralize
+ changes in value of `argv[0]`, use an envvar to actually neutralize
+ variations of `argv[0]` during tests.
+
+ Reported by Dagobert Michelsen.
+
+
+ * src/main.c (main): Change `argv[0]` if BISON_PROGRAM_NAME is
+ defined.
+ * tests/bison.in: No longer mess with stderr, just pass
+ the expected BISON_PROGRAM_NAME value.
+
+2021-08-19 Akim Demaille
+
+ CI: don't require Autoconf 2.71
+
+2021-08-19 Akim Demaille
+
+ examples: don't demonstrate multistart, which is not part of 3.8
+ Besides, for mysterious reasons, this fails on some environment.
+ Reported by Dagobert Michelsen.
+
+
+ * examples/c/lexcalc/lexcalc.test, examples/c/lexcalc/parse.y,
+ * examples/c/lexcalc/scan.l: Revert to a single-start example.
+
+2021-08-19 Akim Demaille
+
+ tests: grep -E is not portable
+ Reported by Dagobert Michelsen.
+
+
+ * tests/calc.at: Use $EGREP.
+
+2021-08-19 Akim Demaille
+
+ glr2.cc: require C++11
+ Reported by Dagobert Michelsen.
+ https://lists.gnu.org/r/bug-bison/2021-08/msg00006.html
+
+ * m4/bison-cxx-std.m4 (_BISON_CXXSTD_98_snippet): We don't need
+ vector::data, it was only for glr2.cc, which is C++11 anyway.
+ (_BISON_CXXSTD_11_snippet): We need vector::data and std::swap on
+ arrays.
+ * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): We don't need
+ vector::data.
+ * tests/local.at (AT_COMPILE_CXX): Skip when glr2.cc and no support
+ for C++11.
+
+2021-08-13 Akim Demaille
+
+ readme: add D
+
+2021-08-13 Akim Demaille
+
+ maint: post-release administrivia
+ * NEWS: Add header line for next release.
+ * .prev-version: Record previous version.
+ * cfg.mk (old_NEWS_hash): Auto-update.
+
+2021-08-13 Akim Demaille
+
+ version 3.7.90
+ * NEWS: Record release date.
+
+2021-08-13 Akim Demaille
+
+ build: ignore syntax-check's file_system check on Doxyfile
+ * cfg.mk: Here.
+
+2021-08-12 Akim Demaille
+
+ tests: fix incorrect test case
+ In c2ba260487927a4cdf061fae10fdd1b387ca3d95 ("glr.c: fix signature
+ when using custom error messages"), I meant to add a test case for C,
+ not C++. It does not work in C++.
+
+ * tests/calc.at: Run for glr.c, not glr.cc.
+
+2021-08-12 Akim Demaille
+
+ gnulib: update
+
+2021-08-12 Akim Demaille
+
+ news: be clear that glr2.cc is C++11
+
+2021-08-12 Akim Demaille
+
+ build: modernize to newer Autoconf releases
+ * configure.ac: here.
+
+2021-08-12 Akim Demaille
+
+ build: reject C++ compilers that don't support std::vector::data
+ GCC 4.2 on macOS claims to support C++98, but does not feature it.
+
+ input.cc: In member function 'void state_stack::yycompressStack()':
+ input.cc:1774: error: 'class std::vector >' has no member named 'data'
+
+ Reported by Christopher Nielsen .
+ .
+
+ * m4/bison-cxx-std.m4 (_BISON_CXXSTD_98_snippet): Check for it.
+ * m4/cxx.m4 (BISON_TEST_FOR_WORKING_CXX_COMPILER): Ditto.
+
+2021-08-12 Akim Demaille
+
+ build: check for C++ 20 and 2b
+ C++20 is released.
+
+ * configure.ac, m4/bison-cxx-std.m4, tests/atlocal.in,
+ * tests/local.at: Replace 2a with 20, and add support for 2b.
+
+2021-08-12 Akim Demaille
+
+ tests: remove obsolete checks
+ * tests/atlocal.in: It was an error for tests to depend on gnulib:
+ they must not, as gnulib would hide portability issues that we want to
+ catch. So this piece of code is no longer useful, and must not be
+ useful.
+
+2021-08-12 Akim Demaille
+
+ tests: be robust to old versions of xlstproc
+ Reported by Christopher Nielsen .
+
+
+ * tests/report.at (AT_CHECK_HTML): New.
+ Use it.
+
+2021-08-11 Akim Demaille
+
+ c: fix _Noreturn support detection
+ Reported by Christopher Nielsen .
+ and
+ .
+
+ * data/skeletons/c.m4: Fix typo.
+
+2021-08-11 Akim Demaille
+
+ lalr1.cc: style changes
+ * data/skeletons/lalr1.cc: Formatting changes.
+ Use more `const`, as in glr2.cc.
+
+2021-08-11 Akim Demaille
+
+ glr.c: fix signature when using custom error messages
+ Reported by Tom Shields .
+
+ * data/skeletons/glr.c (yypcontext_location): Fix return type.
+ * tests/calc.at: Check the case pure, location, custom error messages.
+
+2021-08-11 Akim Demaille
+
+ tests: check symbol/token renumbering
+ In some extreme situations, with lots of useless tokens, Bison was
+ numbering them incorrectly, which resulted in a broken grammar.
+
+ commit a774839ca873d1082f79ba3c4eecc1e242a28ce1.
+
+ * tests/regression.at (Useless Tokens): New.
+
+2021-08-09 Akim Demaille
+
+ style: rename b4_lex as b4_yylex
+ For consistency with b4_yyerror_formals, etc.
+
+ * data/skeletons/bison.m4, data/skeletons/c.m4, data/skeletons/d.m4,
+ * data/skeletons/glr.c, data/skeletons/glr2.cc,
+ * data/skeletons/java.m4, data/skeletons/lalr1.cc,
+ * data/skeletons/lalr1.d, data/skeletons/lalr1.java,
+ * data/skeletons/yacc.c
+ (b4_lex, b4_lex_formals): Rename as...
+ (b4_yylex, b4_yylex_formals): these.
+
+2021-08-09 Akim Demaille
+
+ yacc: comply with recent POSIX updates: declare yyerror and yylex
+ In POSIX Yacc mode, declare yyerror and yylex unless already #defined,
+ or if YYERROR_IS_DECLARED/YYLEX_IS_DECLARED are defined (for
+ consistency with Bison's YYSTYPE_IS_DECLARED/YYLTYPE_IS_DECLARED).
+ See .
+
+ * data/skeletons/c.m4 (b4_function_declare): Resurect.
+ (b4_lex_formals): Since we will possibly expose this prototype
+ in the header, take the prefix into account.
+ * data/skeletons/yacc.c (b4_declare_yyerror_and_yylex): New.
+ (b4_shared_declarations): Use it.
+
+ * tests/local.at (AT_YACC_IF): New.
+ When in Yacc mode, set the `yacc` Autotest keyword.
+ (AT_YYERROR_DECLARE(c)): Don't declare in Yacc mode,
+ to avoid clashes (since this signature is static).
+ (AT_YYERROR_DEFINE(c)): Don't define as static in Yacc mode.
+ * tests/regression.at (Early token definitions with --yacc): Specify
+ that we are in Yacc mode.
+
+2021-08-09 Akim Demaille
+
+ build: enable -Wmismatched-dealloc
+ * configure.ac (warn_common): Here.
+
+2021-08-09 Akim Demaille
+
+ gnulib: update
+
+2021-08-08 Akim Demaille
+
+ bistromathic: beware of portability issues with readline
+ In some cases readline emits a trailing spaces after the last
+ suggestion, which results in errors such as:
+
+ ```
+ -( - atan cos exp ln number sin sqrt$
+ +( - atan cos exp ln number sin sqrt $
+ ```
+
+ Reported by Christopher Nielsen .
+
+
+
+ * examples/test (run): Add support for -t.
+ * examples/c/bistromathic/bistromathic.test: Use it.
+
+2021-08-07 Akim Demaille
+
+ d: prepare to be able to run LAC tests
+ Unfortunately it seems to be quite difficult to have "LAC: Exploratory
+ stack" run for D.
+
+ * data/skeletons/lalr1.d: We need File when traces are enabled.
+ * tests/local.at (AT_YYLEX_DEFINE(d)): New.
+ * tests/regression.at: Prepare for D, but don't run it, it does not
+ work.
+
+2021-08-07 Akim Demaille
+
+ tests: factor iterating over skeletons
+ * tests/local.at (AT_FOR_EACH_SKEL): New.
+ Use where appropriate.
+ * data/skeletons/lalr1.d: Reject -d.
+ * tests/input.at, tests/scanner.at: Also check D.
+
+2021-08-07 Akim Demaille
+
+ m4: catch suspicions of unevaluated macros
+ Check in m4's output if there are sequences such as m4_foo or b4_foo,
+ which are probably resulting from incorrect m4 processing.
+
+ It actually already is useful:
+
+ - it caught a leaking b4_lac_if leaking from glr.c, where LAC is not
+ supported, hence b4_lac_if is not defined.
+
+ - it also caught references to location.hh in position.hh when
+ location.hh does not exist.
+
+ - while making "Code injection" robust to these new warnings (it is
+ its very purpose to let b4_canary pass unevaluated), I saw that it
+ did not check lalr1.d, and when adding lalr1.d, it revealed it did
+ underquote ocurrences of token value types.
+
+ * src/scan-skel.l (macro): New abbreviation.
+ Use it.
+ * data/skeletons/glr.c: Don't use b4_lac_if, we don't have it.
+ * data/skeletons/location.cc: Don't generate position.hh when we don't
+ generate location.hh.
+ * data/skeletons/d.m4 (b4_basic_symbol_constructor_define): Fix
+ underquotation.
+ * data/skeletons/bison.m4 (b4_canary): New.
+ * tests/input.at (Code injection): Use it, and check lalr1.d too.
+
+2021-08-07 Akim Demaille
+
+ style: formatting changes in scan-code.l
+ * src/scan-code.l: Fix indentation.
+
+2021-08-07 Akim Demaille
+
+ doc: avoid #define YYDEBUG in C++
+ * doc/bison.texi (Enabling Traces): here.
+
+2021-08-06 Akim Demaille
+
+ tests: extract AT_LOCATION_PRINT_DECLARE and AT_LOCATION_PRINT_DEFINE
+ * tests/local.at (AT_LOCATION_PRINT_DECLARE)
+ (AT_LOCATION_PRINT_DEFINE): New.
+
+2021-08-06 Akim Demaille
+
+ tests: rename AT_YACC_IF as AT_YACC_C_IF
+ In data/, b4_yacc_if refers to %yacc, not yacc.c.
+
+ * tests/local.at (AT_YACC_IF): Rename as...
+ (AT_YACC_C_IF): this.
+
+2021-08-06 Akim Demaille
+
+ doc: more pointers to the examples
+ * doc/bison.texi (Infix Calc): Here.
+
+2021-08-06 Akim Demaille
+
+ git: add diff patterns for Autotest and Texinfo
+
+2021-08-06 Akim Demaille
+
+ CI: fix the GCC 9 build
+
+2021-08-04 Akim Demaille
+
+ todo: d: push and token ctors are done
+
+2021-08-04 Akim Demaille
+
+ doc: refer to the examples
+ * doc/bison.texi: Point to rpcalc, mfcalc, simple.y, calc++, c/glr and
+ c++/glr.
+
+2021-08-04 Akim Demaille
+
+ examples: modernize the example Makefiles
+ * examples/c++/Makefile, examples/c++/calc++/Makefile,
+ * examples/c++/glr/Makefile, examples/c/bistromathic/Makefile,
+ * examples/c/calc/Makefile, examples/c/glr/Makefile,
+ * examples/c/lexcalc/Makefile, examples/c/mfcalc/Makefile,
+ * examples/c/pushcalc/Makefile, examples/c/reccalc/Makefile,
+ * examples/c/rpcalc/Makefile, examples/d/calc/Makefile,
+ * examples/d/simple/Makefile, examples/java/calc/Makefile,
+ * examples/java/simple/Makefile:
+ Use --html to generate *.html directly.
+ No longer demonstrate --xml.
+ No longer show rules for xml to html.
+ Use --header, not --defines.
+ Use --graph without specifying the output file now that we
+ generate *.gv by default.
+
+2021-08-04 Akim Demaille
+
+ doc: glr: document typed mergers
+ See .
+
+ * doc/bison.texi (Merging GLR Parses): document typed mergers.
+ And avoid #define YYSTYPE.
+
+2021-08-04 Akim Demaille
+
+ style: tests: rebox comments
+ * tests/glr-regression.at: here.
+
+2021-08-04 Akim Demaille
+
+ news: update
+ In particular, announce lalr1.d.
+
+2021-08-03 Akim Demaille
+
+ doc: fix spello
+ * doc/bison.texi (Multiple start-symbols): here.
+
+2021-08-03 Akim Demaille
+
+ scan: fix typo in UTF-8 escape
+ We had:
+
+ ```
+ -mbchar ...|\xF0[\x\90-\xBF]([\x80-\xBF]{2})|...
+ +mbchar ...|\xF0[\x90-\xBF]([\x80-\xBF]{2})|...
+ ```
+
+ so a precise sequence that matches the incorrect regex can let NUL
+ bytes pass through, which triggers an assertion violation downstream.
+ It is a pity that Flex does not report an error for such input.
+
+ Reported by Ahcheong Lee .
+
+
+ * src/scan-gram.l (mbchar): Fix the bad regex.
+ * tests/input.at (Invalid inputs): Check that case.
+
+2021-08-03 Akim Demaille
+
+ todo: POSIX yacc and prototypes
+
+2021-08-03 Akim Demaille
+
+ doc: update Doxygen template file
+ * doc/Doxyfile.in: here.
+
+2021-08-03 Akim Demaille
+
+ doc: a bit of editing
+ * doc/bison.texi: Use @samp{...}, not "..." for pieces of code.
+ Use @samp{...}, not @command{...} for command lines.
+ Promote %header/--header over %defines/--defines.
+ Spellcheck.
+
+2021-08-03 Akim Demaille
+
+ gnulib: update
+
+2021-08-01 Alyssa Ross
+
+ getargs: don't translate first line of --version
+
+
+ * src/getargs.c (version): here.
+
+2021-08-01 Akim Demaille
+
+ all: fix confusion between token ctor and symbol ctor
+ The symbol constructors are genuine constructors. Token constructors
+ are plain functions that construct tokens.
+
+2021-07-25 Akim Demaille
+
+ d: minor clean up
+ * doc/bison.texi: Use @samp, not "...", around pieces of code.
+ * examples/d/calc/calc.y: Don't promote %union.
+
+2021-06-23 Akim Demaille
+
+ gnulib: update
+
+2021-06-06 Adela Vais
+
+ d: demonstrate the token constructors
+ * examples/d/calc/calc.y: Use the token constructors in the 'calc' example.
+
+2021-04-11 Adela Vais
+
+ d: update documentation
+ * doc/bison.texi: Various fixes.
+ (D Push Parser Interface, D Complete Symbols): New sections.
+
+2021-04-11 Adela Vais
+
+ d: demonstrate the push parser
+ * examples/d/calc/calc.y: Use a parser of type 'push' in the calc
+ example.
+
+2021-04-11 Adela Vais
+
+ d: add push parser support
+ Support the push-pull directive with the options pull, push and both.
+ Pull remains the default option.
+
+ * data/skeletons/d.m4: Add user aliases for the push parser's return
+ values: PUSH_MORE, ABORT, ACCEPT.
+ * data/skeletons/lalr1.d: Add push parser support.
+ * tests/calc.at: Test it.
+
+2021-03-26 Adela Vais
+
+ d: add token constructors support
+ The user can return from yylex() by calling the Symbol method of the
+ same name as the TokenKind reported, and adding the parameters for
+ value and location if necessary. These methods generate compile-time
+ errors if the parameters are not correlated. Token constructors work
+ with both %union and api.value.type union.
+
+ * data/skeletons/d.m4: Here.
+ * tests/calc.at: Test it.
+
+2021-03-26 Akim Demaille
+
+ d: add api.value.type union support
+ The union of the values is handled by the backend.
+ In D, unions can hold classes, structs, etc., so this is more similar
+ to the C++ api.value.type variant.
+
+ * data/skeletons/d.m4, data/skeletons/lalr1.d: Here.
+ * tests/calc.at, tests/local.at: Test it.
+
+2021-03-26 Adela Vais
+
+ d: rewrite Symbol's constructors in M4
+ The D code was becoming too complex.
+ M4 is easier to maintain in the long run.
+
+ * data/skeletons/d.m4: Here.
+
+2021-03-26 Akim Demaille
+
+ gnulib: update
+
+2021-03-10 Akim Demaille
+
+ files: please syntax-check
+ * src/files.c (string_free): syntax-check does not want us to cast
+ arguments to free.
+
+2021-03-10 Akim Demaille
+
+ Merge 3.7.6 into master
+ * maint:
+ maint: post-release administrivia
+ version 3.7.6
+ yacc: fix push parser
+ tables: fix again the handling of useless tokens
+
+2021-03-08 Akim Demaille
+
+ maint: post-release administrivia
+ * NEWS: Add header line for next release.
+ * .prev-version: Record previous version.
+ * cfg.mk (old_NEWS_hash): Auto-update.
+
+2021-03-08 Akim Demaille
+
+ version 3.7.6
+ * NEWS: Record release date.
+
+2021-03-07 Akim Demaille
+
+ doc: don't mention YY_LOCATION_PRINT
+ * doc/bison.texi (Syntax Error Reporting Function): Don't refer to
+ YY_LOCATION_PRINT, it is a private internal detail.
+
+2021-03-07 Akim Demaille
+
+ yacc: fix push parser
+ When a pstate is used for multiple successive parses, some state may
+ leak from one run into the following one. That was introduced in
+ 330552ea499ca474f65967160e9d4e50265f9631 "yacc.c: push: don't clear
+ the parser state when accepting/rejecting".
+
+ Reported by Ryan
+ https://lists.gnu.org/r/bug-bison/2021-03/msg00000.html
+
+ * data/skeletons/yacc.c (yypush_parse): We reusing a pstate from a
+ previous run, do behave as if it were the first run.
+ * tests/push.at (Pstate reuse): Check this.
+
+2021-03-07 Akim Demaille
+
+ tables: fix again the handling of useless tokens
+ The right-shift added in c22902e360e0fbbe9fd5657dcf107e03166da309
+ ("tables: fix handling for useless tokens") is incorrect. In
+ particular, we need to reset the "new" bits.
+
+ Reported by Balázs Scheidler.
+ https://github.com/akimd/bison/issues/74
+
+ * src/tables.c (pos_set_set): Fix the right-shift.
+
+2021-02-26 Akim Demaille
+
+ html: fix memory leak
+ * src/print-xml.c (print_html): Free allocated memory.
+
+2021-02-26 Akim Demaille
+
+ output: cache the mapped file names
+ Don't repeatedly call malloc/free for each call to map_file_name.
+
+ * bootstrap.conf: We need hash-map.
+ * src/files.h, src/files.c (map_file_name): The caller must not free
+ the result.
+ Adjust callers.
+ (mapped_dir_prefix, spec_mapped_header_file): Remove.
+ * src/files.c
+ (map_file_name): Rename as...
+ (map_file_name_alloc): this.
+ (mapped_files, map_file_name, string_equals, string_hash, string_free):
+ New.
+
+2021-02-26 Joshua Watt
+
+ output: use mapped file name for symbols
+ Applies the file name mapping before exporting it as a symbol. This
+ allows the symbols to correctly respect the --file-prefix-map command
+ line option.
+
+2021-02-26 Akim Demaille
+
+ style: formatting changes
+ * src/files.c, src/files.h: Save horizontal space.
+ Prefer `res` for returned values.
+ Put the doc into the header.
+
+2021-02-26 Akim Demaille
+
+ gnulib: update
+
+2021-02-25 Joshua Watt
+
+ doc: fix documented function name
+ * data/README.md: Fix the name of a referenced function to match the
+ name in code.
+
+2021-02-25 Akim Demaille
+
+ regen
+
+2021-02-09 Akim Demaille
+
+ doc: printing locations
+ Document YYLOCATION_PRINT.
+
+ * doc/bison.texi (Printing Locations): New node.
+
+2021-02-09 Akim Demaille
+
+ examples: improve some function prototypes
+ * examples/c/bistromathic/parse.y, examples/c/glr/c++-types.y,
+ * examples/c/lexcalc/parse.y: Use const where appropriate.
+ Avoid `yy` prefixes where it does not make sense.
+ Avoid the `p` prefix for pointers.
+
+2021-02-09 Akim Demaille
+
+ examples: use YYLOCATION_PRINT
+ * examples/c/bistromathic/parse.y, examples/c/glr/c++-types.y,
+ * examples/c/lexcalc/parse.y: Don't use the private internal detail
+ `YY_LOCATION_PRINT`, use `YYLOCATION_PRINT`.
+
+2021-02-09 Akim Demaille
+
+ c: rename YY_LOCATION_PRINT as YYLOCATION_PRINT and make it public
+ It is very helpful to be able to look at the locations in the debug
+ traces, let's provide the users with (i) a means to do that for their
+ location types, and (ii) a public macro to print locations when debug
+ traces are enabled.
+
+ * data/skeletons/c.m4 (b4_yy_location_print_define): Rename as...
+ (b4_yylocation_print_define): this.
+ Define YYLOCATION_PRINT instead of YY_LOCATION_PRINT.
+ Ensure backward compatibility for those who might have defined/used
+ YY_LOCATION_PRINT in spite the warnings.
+ Adjust dependencies.
+ * data/skeletons/glr2.cc: We don't use YYLOCATION_PRINT here.
+
+2021-02-09 Akim Demaille
+
+ examples: do not rely on YY_LOCATION_PRINT
+ * examples/c/bistromathic/parse.y (location_print): New.
+ Use it.
+
+2021-02-02 Akim Demaille
+
+ c: stop defining YY_LOCATION_PRINT when locations are not enabled
+ * data/skeletons/c.m4 (b4_yy_location_print_define): here.
+
+2021-02-02 Akim Demaille
+
+ graph: output foo.gv by default, instead of *.dot
+ That change was started in Bison 3.4. The announcement for 3.7 stated
+ that in Bison 3.8 we would use *.gv by default.
+
+ * src/files.c (compute_output_file_names): spec_graph_file defaults
+ too *.gv.
+ * doc/bison.texi, examples/c++/calc++/local.mk, tests/output.at:
+ Adjust.
+
+2021-02-01 Akim Demaille
+
+ tests: adjust to the removal of YYPRINT
+ * tests/regression.at: here.
+
+2021-02-01 Akim Demaille
+
+ yacc: remove support for YYPRINT
+ Its removal was annonced several times in NEWS (for Bison 3.5, 3.6, 3.7).
+
+ * data/skeletons/c.m4, data/skeletons/yacc.c: Remove support for YYPRINT.
+ * NEWS: Fix the mess introduced by the merge.
+ Document the removal of YYPRINT.
+ * doc/bison.texi (The YYPRINT Macro): Remove.
+
+2021-02-01 Akim Demaille
+
+ c++: issue a compile-time warning when #define YYSTYPE is used
+ Using #define YYSTYPE has always been strongly discouraged in C++.
+ Macros are dangerous and can result in subtle bugs.
+ https://lists.gnu.org/r/bug-bison/2020-12/msg00007.html
+
+ Maybe some people are currently using #define YYSTYPE. Instead of
+ dropping support right now, first issue a warning. Bison can "see" if
+ YYDEBUG is defined (it could even be on the command line), only the
+ compiler knows. Unfortunately `#warning` is non-portable, and
+ actually GCC even dies on it when `-pedantic` is enabled. So we need
+ to use `#pragma message`. We must make it conditional as some
+ compilers might not support it, but it doesn't matter if only _some_
+ compilers emit the warning: it should be enough to catch the attention
+ of the developers.
+
+ * data/skeletons/c++.m4: Issue a warning when the user defined
+ YYSTYPE.
+ * tests/actions.at: Don't #define YYSTYPE.
+ * tests/headers.at (Several parsers): Ignore the YYSTYPE in the
+ warning.
+
+2021-02-01 Akim Demaille
+
+ c++: make it clear that #define YYSTYPE is not supported
+ We have been accepting this for years, but it is deprecated: people
+ are expecting to define api.value.type instead.
+
+ * doc/bison.texi: Make it clear that YYSTYPE and YYLTYPE are for C
+ only.
+
+2021-02-01 Akim Demaille
+
+ c++: stop referring to YYSTYPE in yylex
+ * data/skeletons/glr2.cc, data/skeletons/lalr1.cc (b4_lex): Don't
+ refer to YYSTYPE, but to value_type.
+ Note that this is "symbolic" in the sense that these values are never
+ used by b4_function_call.
+
+2021-02-01 Akim Demaille
+
+ CI: try GCC 11 and Clang 11
+
+2021-02-01 Akim Demaille
+
+ gnulib: update
+
+2021-01-31 Akim Demaille
+
+ glr2.cc: no longer be part of b4_glr_cc_if
+ We are fully independant of glr.c/glr.cc, we no longer need to pretend
+ we are glr.cc.
+
+ * data/skeletons/bison.m4: here.
+
+2021-01-31 Akim Demaille
+
+ m4: provide macros for api.value.type=union
+ * data/skeletons/bison.m4 (b4_union_if): New.
+ Remove support for "%define variant", which was deprecated long ago.
+ * tests/local.at (AT_UNION_IF): New.
+
+2021-01-30 Akim Demaille
+
+ traces: display the Bison version
+ * src/main.c (main): When traces are enabled, display the Bison
+ version.
+ * tests/conflicts.at, tests/report.at, tests/sets.at:
+ Use AT_PACKAGE_VERSION (for package.m4) instead of post-processing the
+ output.
+
+2021-01-30 Akim Demaille
+
+ tests: run the main test suite on "make check"
+ Automake appears to not recognize "check-local" when it is not a
+ isolated target. Fixes 77a8b84fc8bbe39dc231a1f657fd56a50fac5855.
+
+ * tests/local.mk (check-local): Make it visible to Automake.
+
+2021-01-30 Adela Vais
+
+ d: tests: various style fixes
+ * tests/calc.at, tests/scanner.at: Here.
+ (yylex): Report values directly, without storing them to the union
+ first.
+
+2021-01-30 Paul Eggert
+
+ Update URLs to prefer https: to http:
+ Also, fix a few http: URLs that were no longer working.
+
+2021-01-29 Paul Eggert
+
+ Update URLs to prefer https: to http:
+ Also, fix a few http: URLs that were no longer working.
+
+2021-01-27 Akim Demaille
+
+ tests: provide check-examples and check-tests
+ * examples/local.mk (check-examples): New.
+ * tests/local.mk (check-tests): New.
+ * README-hacking.md: Document them.
+
+2021-01-27 Akim Demaille
+
+ bistromathic: use gettext for all the messages
+ * examples/c/bistromathic/parse.y: Add missing calls to _.
+
+2021-01-24 Adela Vais
+
+ d: tests: avoid mixing output from reportSyntaxError and getExpectedTokens
+ Function reportSyntaxError buffers and prints the message at the end.
+
+ * tests/local.at: Here.
+
+2021-01-24 Akim Demaille
+
+ glr2.cc: fix destructor support
+ Currently glr2.cc does not use 'symbol's everywhere, in various places
+ it also uses yykind, yyval and yyloc "by hand". So we need two
+ different calls for user-defined constructors: once for ~symbol,
+ another for yy_destroy_. Both need to call the user destructors with
+ different calling conventions.
+
+ * data/skeletons/glr2.cc (b4_symbol_action): Rename as...
+ (b4_symbol_action_for_yyval): this.
+ (b4_symbol_action): New, taken from lalr1.cc.
+ (yy_destroy_, yy_symbol_value_print_): Use b4_symbol_action_for_yyval.
+
+2021-01-24 Akim Demaille
+
+ glr2.cc: beware of types with angle brackets
+ For C++98, avoid "yyval.as>".
+
+ * data/skeletons/glr2.cc (b4_call_merger): Add spaces within "<...>".
+
+2021-01-24 Akim Demaille
+
+ package: fix details after merge with 3.7.5
+ * TODO, cfg.mk: Update.
+ * src/parse-gram.c, src/parse-gram.h: Regen.
+
+2021-01-24 Akim Demaille
+
+ Merge tag 'v3.7.5'
+ Three new commits:
+
+ commit 8358090292e21c61a583da542bad9099ad65f355
+ Author: Paul Eggert
+ Date: Wed Jan 20 18:30:16 2021 -0800
+
+ c: port to HP-UX 11.23
+
+ commit 2c294c132528ede23d8ae4959783a67e9ff05ac5
+ Author: Vincent Imbimbo
+ Date: Sat Jan 23 13:25:18 2021 -0500
+
+ cex: fix state-item pruning
+
+ commit c22902e360e0fbbe9fd5657dcf107e03166da309
+ Author: Akim Demaille
+ Date: Sat Jan 23 18:40:15 2021 +0100
+
+ tables: fix handling for useless tokens
+
+2021-01-24 Akim Demaille
+
+ doc: fix typo
+ Reported by Kaz Kylheku.
+ https://lists.gnu.org/r/bison-patches/2020-11/msg00019.html
+
+ * doc/bison.texi (Versioning): here.
+
+2021-01-24 Kaz Kylheku
+
+ doc: document best deployment practices.
+ * doc/bison.texi (Versioning): New node about practices
+ regarding dealing with multiple versions of Bison.
+
+2021-01-24 Akim Demaille
+
+ maint: post-release administrivia
+ * NEWS: Add header line for next release.
+ * .prev-version: Record previous version.
+ * cfg.mk (old_NEWS_hash): Auto-update.
+
+2021-01-24 Akim Demaille
+
+ version 3.7.5
+ * NEWS: Record release date.
+
+2021-01-24 Akim Demaille
+
+ tables: fix handling for useless tokens
+ In some rare conditions, the generated parser can be wrong when there
+ are useless tokens.
+
+ Reported by Balázs Scheidler.
+ https://github.com/akimd/bison/issues/72
+
+ Balázs managed to prove that the bug was introduced in
+
+ commit af1c6f973a60a51c609903713ff8f7fce0887025
+ Author: Theophile Ranquet
+ Date: Tue Nov 13 10:38:49 2012 +0000
+
+ tables: use bitsets for a performance boost
+
+ Suggested by Yuri at
+ .
+
+ The improvement is marginal for most grammars, but notable for large
+ grammars (e.g., PosgreSQL's postgre.y), and very large for the
+ sample.y grammar submitted by Yuri in
+ http://lists.gnu.org/archive/html/bison-patches/2012-01/msg00012.html.
+ Measured with --trace=time -fsyntax-only.
+
+ parser action tables postgre.y sample.y
+ Before 0,129 (44%) 37,095 (99%)
+ After 0,117 (42%) 5,046 (93%)
+
+ * src/tables.c (pos): Replace this set of integer coded as an unsorted
+ array of integers with...
+ (pos_set): this bitset.
+
+ which was implemented long ago, but that I installed only recently
+ (March 2019), first published in v3.3.90.
+
+ That patch introduces a bitset to represent a set of integers. It
+ managed negative integers by using a (fixed) base (the smallest
+ integer to represent). It avoided negative accesses into the bitset
+ by ignoring integers smaller than the base, under the asumption that
+ these cases correspond to useless tokens that are ignored anyway.
+ While it turns out to be true for all the test cases in the test suite
+ (!), Balázs' use case demonstrates that it is not always the case.
+
+ So we need to be able to accept negative integers that are smaller
+ than the current base.
+
+ "Amusingly" enough, the aforementioned patch was visibly unsure about
+ itself:
+
+ /* Store PLACE into POS_SET. PLACE might not belong to the set
+ of possible values for instance with useless tokens. It
+ would be more satisfying to eliminate the need for this
+ 'if'. */
+
+ This commit needs several improvements in the future:
+ - support from bitset for bit assignment and shifts
+ - amortized resizing of pos_set
+ - test cases
+
+ * src/tables.c (pos_set_base, pos_set_dump, pos_set_set, pos_set_test):
+ New.
+ Use them instead of using bitset_set and bitset_test directly.
+
+2021-01-24 Vincent Imbimbo
+
+ cex: fix state-item pruning
+ There were several bugs in pruning that would leave the state-item
+ graph in an inconsistent state which could cause crashes later on:
+
+ - Pruning now happens in one pass instead of two.
+
+ - Disabled state-items no longer prune the state-items they transition
+ to if that state-item has other states that transition to it.
+
+ - State-items that transition to disabled state-items are always
+ pruned even if they have productions.
+
+ Reported by Michal Bartkowiak
+ https://lists.gnu.org/r/bug-bison/2021-01/msg00000.html
+ and Zartaj Majeed
+ https://github.com/akimd/bison/issues/71
+
+ * src/state-item.c (prune_forward, prune_backward): Fuse into...
+ (prune_state_item): this.
+ Adjust callers.
+
+2021-01-23 Akim Demaille
+
+ package: pacify syntax-check
+ * cfg.mk: Currently we cannot update gnulib because of portability
+ issues with ancient versions of clang
+ (https://lists.gnu.org/r/bug-gnulib/2021-01/msg00241.html). So skip
+ the check about copyright date for gnulib.
+
+2021-01-23 Akim Demaille
+
+ news: update
+
+2021-01-23 Akim Demaille
+
+ package: bump copyrights to 2021
+ Run 'make update-copyright'.
+
+2021-01-23 Akim Demaille
+
+ %merge: associate it to its first definition, not the latest
+ Currently each time we meet %merge we record this location as the
+ defining location (and symbol). Instead, record the first definition.
+
+ In the generated code we go from
+
+ yy0->A = merge (*yy0, *yy1);
+
+ to
+
+ yy0->S = merge (*yy0, *yy1);
+
+ where S was indeed the first symbol, and in the diagnostics we go from
+
+ glr-regr18.y:30.18-24: error: result type clash on merge function 'merge': !=
+ 30 | sym2: sym3 %merge { $$ = $1; } ;
+ | ^~~~~~~
+ glr-regr18.y:29.18-24: note: previous declaration
+ 29 | sym1: sym2 %merge { $$ = $1; } ;
+ | ^~~~~~~
+ glr-regr18.y:31.13-19: error: result type clash on merge function 'merge': !=
+ 31 | sym3: %merge { $$ = 0; } ;
+ | ^~~~~~~
+ glr-regr18.y:30.18-24: note: previous declaration
+ 30 | sym2: sym3 %merge { $$ = $1; } ;
+ | ^~~~~~~
+
+ to
+
+ glr-regr18.y:30.18-24: error: result type clash on merge function 'merge': !=
+ 30 | sym2: sym3 %merge { $$ = $1; } ;
+ | ^~~~~~~
+ glr-regr18.y:29.18-24: note: previous declaration
+ 29 | sym1: sym2 %merge { $$ = $1; } ;
+ | ^~~~~~~
+ glr-regr18.y:31.13-19: error: result type clash on merge function 'merge': !=
+ 31 | sym3: %merge { $$ = 0; } ;
+ | ^~~~~~~
+ glr-regr18.y:29.18-24: note: previous declaration
+ 29 | sym1: sym2 %merge { $$ = $1; } ;
+ | ^~~~~~~
+
+ where both duplicates are reported against definition 1, rather than
+ using definition 1 as a reference when diagnosing about definition 2,
+ and then 2 as a reference for 3.
+
+ * src/reader.c (record_merge_function_type): Keep the first definition.
+ * tests/glr-regression.at: Adjust.
+
+2021-01-23 Akim Demaille
+
+ %merge: fix compatibility with api.value.type=union
+ Reported by Jot Dot.
+ https://lists.gnu.org/r/help-bison/2020-12/msg00014.html
+
+ * data/skeletons/glr.c, data/skeletons/glr2.cc (b4_call_merger): Use
+ the symbol's slot, not its type.
+ * examples/c/glr/c++-types.y: Use explicit per-symbol typing together
+ with api.value.type=union.
+ (yylex): Use yytoken_kind_t.
+
+2021-01-23 Akim Demaille
+
+ %merge: delegate the generation of calls to mergers to m4
+ Don't generate C code from bison, leave that to the skeletons.
+
+ * src/output.c (merger_output): Emit invocations to b4_call_merger.
+ * data/skeletons/glr.c (b4_call_merger): New.
+
+2021-01-23 Akim Demaille
+
+ %merge: let mergers record a typing-symbol, rather than a type
+ Symbols are richer than types, and in M4 it is my simpler (and more
+ common) to deal with symbols rather than types. So let's associate
+ mergers to a symbol rather than a type name.
+
+ * src/reader.h (merger_list): Replace the 'type' member by a symbol
+ member.
+ * src/reader.c (record_merge_function_type): Take a symbol as
+ argument, rather than a type name.
+ * src/output.c (merger_output): Adjust.
+
+2021-01-23 Akim Demaille
+
+ %merge: clearer tests on diagnostics
+ * tests/glr-regression.at: Use caret errors.
+
+2021-01-23 Akim Demaille
+
+ skeletons: introduce "slot"s for symbols
+ Extracted from d9cf99b6a5cb0345e91dfb90fe6d6473024ea97a, in the master
+ branch.
+
+ * data/skeletons/bison.m4 (b4_symbol_slot): New, with safer semantics
+ than type and type_tag.
+
+2021-01-23 Akim Demaille
+
+ style: YYUSE is private, make it YY_USE
+ This macro is not exposed to users, make start it with 'YY_'.
+
+ * data/skeletons/bison.m4, data/skeletons/c.m4, data/skeletons/glr.c,
+ * data/skeletons/glr.cc, data/skeletons/lalr1.cc,
+ * src/parse-gram.c, tests/actions.at, tests/c++.at, tests/headers.at,
+ * tests/local.at (YYUSE): Rename as...
+ (YY_USE): this.
+
+2021-01-23 Akim Demaille
+
+ package: codespell
+ * src/parse-gram.y: Fix spelling.
+
+2021-01-23 Akim Demaille
+
+ cex: fix traces: fix display of disabled items
+ The display of disabled state items is incorrect. The item is
+ stuttered, and lacks on end-of-line.
+
+ From
+
+ State 7:
+ 1 exp: exp • "⊕" exp
+ -> 1 exp: exp "⊕" • exp
+ <- 1 exp: • exp "⊕" exp
+
+ 2 exp: exp • "+" exp 2 exp: exp • "+" exp DISABLED
+ 2 exp: exp "+" exp •
+ <- 2 exp: exp "+" • exp
+
+ 3 exp: exp • "+" exp 3 exp: exp • "+" exp DISABLED
+ 3 exp: exp "+" exp •
+ <- 3 exp: exp "+" • exp
+
+ to
+
+ State 7:
+ 1 exp: exp • "⊕" exp
+ -> 1 exp: exp "⊕" • exp
+ <- 1 exp: • exp "⊕" exp
+
+ 2 exp: exp • "+" exp DISABLED
+
+ 2 exp: exp "+" exp •
+ <- 2 exp: exp "+" • exp
+
+ 3 exp: exp • "+" exp DISABLED
+
+ 3 exp: exp "+" exp •
+ <- 3 exp: exp "+" • exp
+
+ * src/state-item.c (state_items_report): Don't issue disabled items
+ twice, and issue two '\n' at their end.
+ * tests/conflicts.at: Check it.
+
+2021-01-23 Akim Demaille
+
+ cex: fix traces: add missing end-of-lines
+ In 430ca0fc632f5e8072fe468b8a99c640985f6926, I completely forgot that
+ `puts` adds a `\n`.
+
+ * src/lssi.c, src/state-item.c: Restore missing end-of-lines in the
+ output.
+
+2021-01-23 Akim Demaille
+
+ cex: add support for $TIME_LIMIT
+ * src/counterexample.c (TIME_LIMIT): Replace with...
+ (time_limit): this.
+ (counterexample_init): Check $TIME_LIMIT.
+ * src/scan-gram.l: Reorder includes.
+
+2021-01-23 Akim Demaille
+
+ cex: send traces to stderr, not stdout
+ When comparing traces from different machines, the mixture of
+ stdout/stderr in the output are making things uselessly difficult.
+
+ * src/lssi.c, src/state-item.c: Output debug traces on stderr.
+
+2021-01-23 Akim Demaille
+
+ c++: I'm tired of Flex's warnings
+ * doc/bison.texi: Disable another warning I'm tired to see.
+ New releases would be most welcome.
+
+2021-01-23 Akim Demaille