<pre style='margin:0'>
Dan Villiom Podlaski Christiansen (danchr) pushed a commit to branch unbreak-pyobjc-big-sur
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/ae20c214bba3e8d910a9f8594cde5f429ea6d72a">https://github.com/macports/macports-ports/commit/ae20c214bba3e8d910a9f8594cde5f429ea6d72a</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit ae20c214bba3e8d910a9f8594cde5f429ea6d72a
</span>Author: Dan Villiom Podlaski Christiansen <danchr@macports.org>
AuthorDate: Tue Feb 2 22:22:44 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    libffi: add closures patch from HomeBrew
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Apple added some symbols to the libffi included with Big Sur, and
</span><span style='display:block; white-space:pre;color:#404040;'>    PyObjC uses some of them.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes: https://trac.macports.org/ticket/62475
</span>---
 devel/libffi/Portfile                          |    5 +
 devel/libffi/files/patch-libffi-3.3-arm64.diff | 9608 ++++++++++++++++++++++++
 2 files changed, 9613 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/libffi/Portfile b/devel/libffi/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index aea69e87cd3..193b26d2d8c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/libffi/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/libffi/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,6 +41,11 @@ if {${os.platform} eq "darwin" && ${os.major} >= 20} {
</span>     # Remove once the included config.guess correctly identifies arm64
     use_autoreconf      yes
     autoreconf.args     -fvi
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set revision [expr ${revision} + 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # from homebrew, needed for PyObjC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append   patch-libffi-3.3-arm64.diff
</span> }
 
 if {${os.platform} eq "darwin" && ${os.major} < 11} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/libffi/files/patch-libffi-3.3-arm64.diff b/devel/libffi/files/patch-libffi-3.3-arm64.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..52953753de6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/libffi/files/patch-libffi-3.3-arm64.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,9608 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur Makefile.in libffi-3.3.new/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Makefile.in    2019-11-23 06:59:04.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/Makefile.in     2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Makefile.in generated by automake 1.16.1 from Makefile.am.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Makefile.in generated by automake 1.16.3 from Makefile.am.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # @configure_input@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1994-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This Makefile.in is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -303,8 +303,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(am__extra_recursive_targets)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cscope distdir distdir-am dist dist-all distcheck
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  $(LISP)fficonfig.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fficonfig.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Read a list of newline-separated strings from the standard input,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # and print each of them once, without duplicates.  Input order is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # *not* preserved.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -326,8 +326,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CSCOPE = cscope
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DIST_SUBDIRS = include testsuite man doc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/fficonfig.h.in \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  $(srcdir)/libffi.pc.in compile config.guess config.sub depcomp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  install-sh ltmain.sh missing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(srcdir)/libffi.pc.in ChangeLog compile config.guess \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  config.sub depcomp install-sh ltmain.sh missing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distdir = $(PACKAGE)-$(VERSION)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ top_distdir = $(distdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -366,6 +366,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DIST_ARCHIVES = $(distdir).tar.gz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GZIP_ENV = --best
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ DIST_TARGETS = dist-gzip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Exists only to be overridden by the user if desired.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AM_DISTCHECK_DVI_TARGET = dvi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distuninstallcheck_listfiles = find . -type f -print
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1529,6 +1531,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(am__post_remove_distdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++dist-zstd: distdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $(am__post_remove_distdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dist-tarZ: distdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo WARNING: "Support for distribution archives compressed with" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  "legacy program 'compress' is deprecated." >&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1571,6 +1577,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *.zip*) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unzip $(distdir).zip ;;\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *.tar.zst*) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   chmod -R a-w $(distdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   chmod u+w $(distdir)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1586,7 +1594,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       $(DISTCHECK_CONFIGURE_FLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       --srcdir=../.. --prefix="$$dc_install_base" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     && $(MAKE) $(AM_MAKEFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    && $(MAKE) $(AM_MAKEFLAGS) dvi \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     && $(MAKE) $(AM_MAKEFLAGS) check \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     && $(MAKE) $(AM_MAKEFLAGS) install \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     && $(MAKE) $(AM_MAKEFLAGS) installcheck \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1987,20 +1995,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clean-generic clean-libtool clean-noinstLTLIBRARIES \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   clean-toolexeclibLTLIBRARIES cscope cscopelist-am ctags \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ctags-am dist dist-all dist-bzip2 dist-gzip dist-hook \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  dist-lzip dist-shar dist-tarZ dist-xz dist-zip distcheck \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  distclean distclean-compile distclean-generic distclean-hdr \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  distclean-libtool distclean-tags distcleancheck distdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  distuninstallcheck dvi dvi-am html html-am info info-am \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  install install-am install-data install-data-am install-dvi \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  install-dvi-am install-exec install-exec-am install-html \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  install-html-am install-info install-info-am install-man \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  install-pdf install-pdf-am install-pkgconfigDATA install-ps \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  install-ps-am install-strip install-toolexeclibLTLIBRARIES \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  installcheck installcheck-am installdirs installdirs-am \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  maintainer-clean maintainer-clean-generic mostlyclean \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  uninstall-pkgconfigDATA uninstall-toolexeclibLTLIBRARIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  dist-lzip dist-shar dist-tarZ dist-xz dist-zip dist-zstd \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  distcheck distclean distclean-compile distclean-generic \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  distclean-hdr distclean-libtool distclean-tags distcleancheck \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  distdir distuninstallcheck dvi dvi-am html html-am info \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  info-am install install-am install-data install-data-am \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  install-dvi install-dvi-am install-exec install-exec-am \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  install-html install-html-am install-info install-info-am \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  install-man install-pdf install-pdf-am install-pkgconfigDATA \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  install-ps install-ps-am install-strip \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  install-toolexeclibLTLIBRARIES installcheck installcheck-am \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  installdirs installdirs-am maintainer-clean \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  maintainer-clean-generic mostlyclean mostlyclean-compile \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tags tags-am uninstall uninstall-am uninstall-pkgconfigDATA \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uninstall-toolexeclibLTLIBRARIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .PRECIOUS: Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur aclocal.m4 libffi-3.3.new/aclocal.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- aclocal.m4     2019-11-23 06:58:58.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/aclocal.m4      2021-01-04 19:48:48.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,6 +1,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# generated automatically by aclocal 1.16.3 -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1996-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -930,7 +930,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dnl aclocal-1.4 backwards compatibility:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dnl AC_DEFUN([AC_LTDL_DLSYM_USCORE], [])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2002-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -945,7 +945,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [am__api_version='1.16'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dnl require some minimum version.  Point them to the right macro.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-m4_if([$1], [1.16.1], [],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++m4_if([$1], [1.16.3], [],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -961,14 +961,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-[AM_AUTOMAKE_VERSION([1.16.1])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++[AM_AUTOMAKE_VERSION([1.16.3])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ m4_ifndef([AC_AUTOCONF_VERSION],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Figure out how to run the assembler.                      -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2001-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -988,7 +988,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2001-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1040,7 +1040,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # AM_CONDITIONAL                                            -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1997-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1071,7 +1071,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Usually this means the macro was only invoked conditionally.]])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1999-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1262,7 +1262,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Generate code to set up dependency tracking.              -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1999-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1301,7 +1301,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test $am_rc -ne 0; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for automatic dependency tracking.  Try re-running configure with the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for automatic dependency tracking.  If GNU make was not used, consider
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    re-running the configure script with MAKE="gmake" (or whatever is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    necessary).  You can also try re-running configure with the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     '--disable-dependency-tracking' option to at least be able to build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     the package (albeit without support for automatic dependency tracking).])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1328,7 +1330,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Do all the work for Automake.                             -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1996-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1525,7 +1527,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2001-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1546,7 +1548,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST([install_sh])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2003-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1568,7 +1570,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # From Jim Meyering
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1996-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1603,7 +1605,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check to see how 'make' treats includes.                    -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2001-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1646,7 +1648,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1997-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1667,12 +1669,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_REQUIRE_AUX_FILE([missing])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test x"${MISSING+set}" != xset; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  case $am_aux_dir in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *\ * | *\       *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  MISSING="\${SHELL} '$am_aux_dir/missing'"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Use eval to expand $SHELL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if eval "$MISSING --is-lightweight"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1685,7 +1682,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Helper functions for option handling.                     -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2001-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1714,7 +1711,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_DEFUN([_AM_IF_OPTION],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1999-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1761,7 +1758,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # For backward compatibility.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2001-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1780,7 +1777,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check to make sure that the build environment is sane.    -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1996-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1861,7 +1858,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rm -f conftest.file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2009-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1921,7 +1918,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2001-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1949,7 +1946,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_SUBST([INSTALL_STRIP_PROGRAM])])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2006-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1968,7 +1965,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check how to create a tarball.                            -*- Autoconf -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 2004-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Only in libffi-3.3.new: autom4te.cache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur compile libffi-3.3.new/compile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- compile        2019-11-01 03:30:05.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/compile 2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3,7 +3,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ scriptversion=2018-03-07.03; # UTC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1999-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Written by Tom Tromey <tromey@cygnus.com>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This program is free software; you can redistribute it and/or modify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,7 +53,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     MINGW*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       file_conv=mingw
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    CYGWIN*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    CYGWIN* | MSYS*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       file_conv=cygwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -67,7 +67,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   mingw/*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  cygwin/*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cygwin/* | msys/*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     file=`cygpath -m "$file" || echo "$file"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   wine/*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur config.guess libffi-3.3.new/config.guess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- config.guess   2019-10-31 08:49:54.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/config.guess    2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,8 +1,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #! /bin/sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Attempt to guess a canonical system name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#   Copyright 1992-2017 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   Copyright 1992-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-timestamp='2017-05-11'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++timestamp='2020-08-17'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; you can redistribute it and/or modify it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,7 +15,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # General Public License for more details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# along with this program; if not, see <http://www.gnu.org/licenses/>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# along with this program; if not, see <https://www.gnu.org/licenses/>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # As a special exception to the GNU General Public License, if you
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # distribute this file as part of a program that contains a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -27,7 +27,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # You can get the latest version of this script from:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Please send patches to <config-patches@gnu.org>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,7 +39,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Output the configuration name of the system \`$me' is run on.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-Operation modes:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Options:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -h, --help         print this help, then exit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -t, --time-stamp   print date of last modification, then exit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -v, --version      print version number, then exit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,7 +50,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GNU config.guess ($timestamp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Originally written by Per Bothner.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-Copyright 1992-2017 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Copyright 1992-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ This is free software; see the source for copying conditions.  There is NO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -84,8 +84,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-trap 'exit 1' 1 2 15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # compiler to aid in system detection is discouraged as it requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # temporary files to be created and, as you can see below, it is a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -96,34 +94,40 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Portable tmp directory creation inspired by the Autoconf team.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-set_cc_for_build='
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-: ${TMPDIR=/tmp} ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-dummy=$tmp/dummy ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-case $CC_FOR_BUILD,$HOST_CC,$CC in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ,,)    echo "int x;" > $dummy.c ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  for c in cc gcc c89 c99 ; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       CC_FOR_BUILD="$c"; break ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    fi ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  done ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if test x"$CC_FOR_BUILD" = x ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    CC_FOR_BUILD=no_compiler_found ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ,,*)   CC_FOR_BUILD=$CC ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-esac ; set_cc_for_build= ;'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++tmp=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# shellcheck disable=SC2172
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set_cc_for_build() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # prevent multiple calls if $tmp is already set
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    test "$tmp" && return 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    : "${TMPDIR=/tmp}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # shellcheck disable=SC2039
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dummy=$tmp/dummy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ,,)    echo "int x;" > "$dummy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         for driver in cc gcc c89 c99 ; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                 CC_FOR_BUILD="$driver"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                 break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         if test x"$CC_FOR_BUILD" = x ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             CC_FOR_BUILD=no_compiler_found
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ,,*)   CC_FOR_BUILD=$CC ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # (ghazi@noc.rutgers.edu 1994-08-24)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test -f /.attbin/uname ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PATH=$PATH:/.attbin ; export PATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -132,14 +136,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-case "${UNAME_SYSTEM}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case "$UNAME_SYSTEM" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Linux|GNU|GNU/*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # If the system lacks a compiler, then just pick glibc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # We could probably try harder.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   LIBC=gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  eval $set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  cat <<-EOF > $dummy.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cat <<-EOF > "$dummy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #include <features.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #if defined(__UCLIBC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   LIBC=uclibc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -149,13 +153,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   LIBC=gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # If ldd exists, use it to detect musl libc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if command -v ldd >/dev/null && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ldd --version 2>&1 | grep -q ^musl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      LIBC=musl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Note: order is significant - the case branches are not exclusive.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:NetBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # NetBSD (nbsd) targets should (where applicable) match one or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -169,30 +180,30 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # portion of the name.  We always set it to "unknown".
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sysctl="sysctl -n hw.machine_arch"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      /sbin/$sysctl 2>/dev/null || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      /usr/sbin/$sysctl 2>/dev/null || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      "/sbin/$sysctl" 2>/dev/null || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      "/usr/sbin/$sysctl" 2>/dev/null || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       echo unknown)`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  case "${UNAME_MACHINE_ARCH}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case "$UNAME_MACHINE_ARCH" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       armeb) machine=armeb-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       arm*) machine=arm-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       sh3el) machine=shl-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       sh3eb) machine=sh-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       sh5el) machine=sh5le-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       earmv*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          machine=${arch}${endian}-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          machine="${arch}${endian}"-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # The Operating System including object format, if it has switched
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # to ELF recently (or will in the future) and ABI.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  case "${UNAME_MACHINE_ARCH}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case "$UNAME_MACHINE_ARCH" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       earm*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           os=netbsdelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       arm*|i386|m68k|ns32k|sh3*|sparc|vax)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          eval $set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   | grep -q __ELF__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -208,10 +219,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Determine ABI tags.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  case "${UNAME_MACHINE_ARCH}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case "$UNAME_MACHINE_ARCH" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       earm*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           expr='s/^earmv[0-9]/-eabi/;s/eb$//'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # The OS release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -219,45 +230,60 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # thus, need a distinct triplet. However, they do not need
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # kernel version information, so it can be replaced with a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # suitable tag, in the style of linux-gnu.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  case "${UNAME_VERSION}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case "$UNAME_VERSION" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       Debian*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           release='-gnu'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # contains redundant information, the shorter form:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo "${machine}-${os}${release}${abi}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$machine-${os}${release}${abi-}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:Bitrig:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:OpenBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:LibertyBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *:MidnightBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:ekkoBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:SolidBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *:OS108:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     macppc:MirBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo powerpc-unknown-mirbsd${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:MirBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:Sortix:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-sortix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-sortix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *:Twizzler:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-twizzler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *:Redox:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-redox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    mips:OSF1:*.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo mips-dec-osf1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     alpha:OSF1:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case $UNAME_RELEASE in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -310,28 +336,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # A Tn.n version is a released field test version.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # A Xn.n version is an unreleased experimental baselevel.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # 1.2 uses "1.2" for uname -r.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exitcode=$?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   trap '' 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit $exitcode ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Alpha\ *:Windows_NT*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # How do we know it's Interix rather than the generic POSIX subsystem?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # Should we change UNAME_MACHINE based on the output of uname instead
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # of the specific Alpha model?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo alpha-pc-interix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    21064:Windows_NT:50:3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo alpha-dec-winnt3.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Amiga*:UNIX_System_V:4.0:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo m68k-unknown-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:[Aa]miga[Oo][Ss]:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-amigaos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-amigaos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:[Mm]orph[Oo][Ss]:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-morphos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-morphos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:OS/390:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo i370-ibm-openedition
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -343,7 +360,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo powerpc-ibm-os400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo arm-acorn-riscix${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo arm-acorn-riscix"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     arm*:riscos:*:*|arm*:RISCOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo arm-unknown-riscos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -370,24 +387,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       sparc) echo sparc-icl-nx7; exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     s390x:SunOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sun4H:SunOS:5.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo i386-pc-auroraux${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo i386-pc-auroraux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  eval $set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SUN_ARCH=i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # If there is a compiler, see if it is configured for 64-bit objects.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # This test works for both compilers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if test "$CC_FOR_BUILD" != no_compiler_found; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           grep IS_64BIT_ARCH >/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -395,13 +412,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           SUN_ARCH=x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sun4*:SunOS:6*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # According to config.sub, this is the proper way to canonicalize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # it's likely to be more like Solaris than SunOS4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sun4*:SunOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case "`/usr/bin/arch -k`" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -410,25 +427,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Japanese Language versions have a version number like `4.1.3-JL'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sun3*:SunOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo m68k-sun-sunos${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo m68k-sun-sunos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sun*:*:4.2BSD:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case "`/bin/arch`" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       sun3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo m68k-sun-sunos${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo m68k-sun-sunos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       sun4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo sparc-sun-sunos${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo sparc-sun-sunos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     aushp:SunOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sparc-auspex-sunos${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sparc-auspex-sunos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # The situation for MiNT is a little confusing.  The machine name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # can be virtually everything (everything which is not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -439,44 +456,44 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # MiNT.  But MiNT is downward compatible to TOS, so this should
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # be no problem.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo m68k-atari-mint${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo m68k-atari-mint"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo m68k-atari-mint${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo m68k-atari-mint"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo m68k-atari-mint${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo m68k-atari-mint"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo m68k-milan-mint${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo m68k-milan-mint"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo m68k-hades-mint${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo m68k-hades-mint"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo m68k-unknown-mint${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo m68k-unknown-mint"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     m68k:machten:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo m68k-apple-machten${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo m68k-apple-machten"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     powerpc:machten:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo powerpc-apple-machten${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo powerpc-apple-machten"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RISC*:Mach:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo mips-dec-mach_bsd4.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RISC*:ULTRIX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo mips-dec-ultrix${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo mips-dec-ultrix"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     VAX*:ULTRIX*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo vax-dec-ultrix${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo vax-dec-ultrix"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     2020:CLIX:*:* | 2430:CLIX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo clipper-intergraph-clix${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo clipper-intergraph-clix"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     mips:*:*:UMIPS | mips:*:*:RISCos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  eval $set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sed 's/^        //' << EOF >$dummy.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sed 's/^        //' << EOF > "$dummy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __cplusplus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdio.h>  /* for printf() prototype */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int main (int argc, char *argv[]) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -485,23 +502,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #if defined (host_mips) && defined (MIPSEB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #if defined (SYSTYPE_SYSV)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #if defined (SYSTYPE_SVR4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     exit (-1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  $CC_FOR_BUILD -o $dummy $dummy.c &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    SYSTEM_NAME=`$dummy $dummyarg` &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       { echo "$SYSTEM_NAME"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo mips-mips-riscos${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo mips-mips-riscos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Motorola:PowerMAX_OS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo powerpc-motorola-powermax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -527,17 +544,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     AViiON:dgux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # DG/UX returns AViiON for all architectures
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNAME_PROCESSOR=`/usr/bin/uname -p`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-         [ ${TARGET_BINARY_INTERFACE}x = x ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         test "$TARGET_BINARY_INTERFACE"x = x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo m88k-dg-dgux${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo m88k-dg-dgux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo m88k-dg-dguxbcs${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo m88k-dg-dguxbcs"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      echo i586-dg-dgux${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      echo i586-dg-dgux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     M88*:DolphinOS:*:*)   # DolphinOS (SVR3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -554,7 +571,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo m68k-tektronix-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:IRIX*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -563,17 +580,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo i386-ibm-aix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ia64:AIX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if [ -x /usr/bin/oslevel ] ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if test -x /usr/bin/oslevel ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           IBM_REV=`/usr/bin/oslevel`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:AIX:2:3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          eval $set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          sed 's/^                //' << EOF >$dummy.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          sed 's/^                //' << EOF > "$dummy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           #include <sys/systemcfg.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           main()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -584,7 +601,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   exit(0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   echo "$SYSTEM_NAME"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -598,27 +615,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:AIX:*:[4567])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           IBM_ARCH=rs6000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           IBM_ARCH=powerpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if [ -x /usr/bin/lslpp ] ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if test -x /usr/bin/lslpp ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${IBM_ARCH}-ibm-aix${IBM_REV}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:AIX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo rs6000-ibm-aix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo romp-ibm-bsd4.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;                             # report: romp-ibm BSD 4.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:BOSX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo rs6000-bull-bosx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -633,28 +650,28 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo m68k-hp-bsd4.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     9000/[34678]??:HP-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  case "${UNAME_MACHINE}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      9000/31? )            HP_ARCH=m68000 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      9000/[34]?? )         HP_ARCH=m68k ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case "$UNAME_MACHINE" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      9000/31?)            HP_ARCH=m68000 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      9000/[34]??)         HP_ARCH=m68k ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       9000/[678][0-9][0-9])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if [ -x /usr/bin/getconf ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if test -x /usr/bin/getconf; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              case "${sc_cpu_version}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              case "$sc_cpu_version" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 532)                      # CPU_PA_RISC2_0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  case "${sc_kernel_bits}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  case "$sc_kernel_bits" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     32) HP_ARCH=hppa2.0n ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     64) HP_ARCH=hppa2.0w ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   esac ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if [ "${HP_ARCH}" = "" ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              eval $set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              sed 's/^            //' << EOF >$dummy.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if test "$HP_ARCH" = ""; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              sed 's/^            //' << EOF > "$dummy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           #define _HPUX_SOURCE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -687,13 +704,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               test -z "$HP_ARCH" && HP_ARCH=hppa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           fi ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if [ ${HP_ARCH} = hppa2.0w ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if test "$HP_ARCH" = hppa2.0w
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      eval $set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -712,15 +729,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           HP_ARCH=hppa64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${HP_ARCH}-hp-hpux${HPUX_REV}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ia64:HP-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ia64-hp-hpux${HPUX_REV}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo ia64-hp-hpux"$HPUX_REV"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     3050*:HI-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  eval $set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sed 's/^        //' << EOF >$dummy.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sed 's/^        //' << EOF > "$dummy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -745,11 +762,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           { echo "$SYSTEM_NAME"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo unknown-hitachi-hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo hppa1.1-hp-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     9000/8??:4.3bsd:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -758,17 +775,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo hppa1.0-hp-mpeix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo hppa1.1-hp-osf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     hp8??:OSF1:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo hppa1.0-hp-osf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:OSF1:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if [ -x /usr/sbin/sysversion ] ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      echo ${UNAME_MACHINE}-unknown-osf1mk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if test -x /usr/sbin/sysversion ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      echo "$UNAME_MACHINE"-unknown-osf1mk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      echo ${UNAME_MACHINE}-unknown-osf1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      echo "$UNAME_MACHINE"-unknown-osf1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     parisc*:Lites*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -793,131 +810,123 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo c4-convex-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CRAY*Y-MP:*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CRAY*[A-Z]90:*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         -e 's/\.[^.]*$/.X/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CRAY*TS:*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CRAY*T3E:*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CRAY*SV1:*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:UNICOS/mp:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     5000:UNIX_System_V:4.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sparc*:BSD/OS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sparc-unknown-bsdi${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sparc-unknown-bsdi"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:BSD/OS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    arm:FreeBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNAME_PROCESSOR=`uname -p`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      | grep -q __ARM_PCS_VFP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:FreeBSD:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNAME_PROCESSOR=`/usr/bin/uname -p`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  case ${UNAME_PROCESSOR} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case "$UNAME_PROCESSOR" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       amd64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           UNAME_PROCESSOR=x86_64 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       i386)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           UNAME_PROCESSOR=i586 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*:CYGWIN*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-cygwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-cygwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:MINGW64*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-mingw64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-mingw64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:MINGW*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-mingw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-mingw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:MSYS*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-msys
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    i*:windows32*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # uname -m includes "-pc" on this system.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-mingw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-msys
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*:PW*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-pw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-pw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:Interix*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  case ${UNAME_MACHINE} in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case "$UNAME_MACHINE" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       x86)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo i586-pc-interix${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo i586-pc-interix"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       authenticamd | genuineintel | EM64T)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo x86_64-unknown-interix${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo x86_64-unknown-interix"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       IA64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo ia64-unknown-interix${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo ia64-unknown-interix"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo i${UNAME_MACHINE}-pc-mks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    8664:Windows_NT:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo x86_64-pc-mks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # How do we know it's Interix rather than the generic POSIX subsystem?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # UNAME_MACHINE based on the output of uname instead of i386?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo i586-pc-interix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*:UWIN*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-uwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-uwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo x86_64-unknown-cygwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    p*:CYGWIN*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo powerpcle-unknown-cygwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo x86_64-pc-cygwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     prep*:SunOS:5.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:GNU:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # the GNU system
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:GNU/*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # other systems with GNU libc and userland
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    i*86:Minix:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-minix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *:Minix:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-minix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     aarch64:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     aarch64_be:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNAME_MACHINE=aarch64_be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     alpha:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     EV5)   UNAME_MACHINE=alphaev5 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     EV56)  UNAME_MACHINE=alphaev56 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PCA56) UNAME_MACHINE=alphapca56 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -928,140 +937,178 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   objdump --private-headers /bin/sh | grep -q ld.so.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     arc:Linux:*:* | arceb:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     arm*:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  eval $set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       | grep -q __ARM_EABI__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           | grep -q __ARM_PCS_VFP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     avr32*:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     cris:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-axis-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     crisv32:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-axis-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     e2k:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     frv:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     hexagon:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ia64:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     k1om:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     m32r*:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     m68*:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     mips:Linux:*:* | mips64:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  eval $set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sed 's/^        //' << EOF >$dummy.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  IS_GLIBC=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  test x"${LIBC}" = xgnu && IS_GLIBC=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sed 's/^        //' << EOF > "$dummy.c"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #undef CPU
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #undef ${UNAME_MACHINE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  #undef ${UNAME_MACHINE}el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #undef mips
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #undef mipsel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #undef mips64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #undef mips64el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #if ${IS_GLIBC} && defined(_ABI64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LIBCABI=gnuabi64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #if ${IS_GLIBC} && defined(_ABIN32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LIBCABI=gnuabin32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LIBCABI=${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CPU=mipsisa64r6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CPU=mipsisa32r6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #if defined(__mips64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CPU=mips64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  CPU=mips
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  CPU=${UNAME_MACHINE}el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  MIPS_ENDIAN=el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  CPU=${UNAME_MACHINE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  MIPS_ENDIAN=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  CPU=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  MIPS_ENDIAN=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     mips64el:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     openrisc*:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo or1k-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo or1k-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     or32:Linux:*:* | or1k*:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     padre:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sparc-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sparc-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     parisc64:Linux:*:* | hppa64:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo hppa64-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo hppa64-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     parisc:Linux:*:* | hppa:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Look for CPU level
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    *)    echo hppa-unknown-linux-${LIBC} ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *)    echo hppa-unknown-linux-"$LIBC" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ppc64:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo powerpc64-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo powerpc64-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ppc:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo powerpc-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo powerpc-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ppc64le:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo powerpc64le-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo powerpc64le-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ppcle:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo powerpcle-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo powerpcle-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     riscv32:Linux:*:* | riscv64:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     s390:Linux:*:* | s390x:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sh64*:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sh*:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     sparc:Linux:*:* | sparc64:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     tile*:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     vax:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-dec-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     x86_64:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LIBCABI=$LIBC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if test "$CC_FOR_BUILD" != no_compiler_found; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          grep IS_X32 >/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          LIBCABI="$LIBC"x32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     xtensa*:Linux:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:DYNIX/ptx:4*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1075,34 +1122,34 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # I am not positive that other SVR4 systems won't match this,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # I just have to hope.  -- rms.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Use sysv4.2uw... so that sysv4* matches it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:OS/2:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # If we were able to find `uname', then EMX Unix compatibility
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # is probably installed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-os2-emx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-os2-emx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:XTS-300:*:STOP)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-stop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-stop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:atheos:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-atheos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-atheos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:syllable:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-syllable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-syllable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo i386-unknown-lynxos${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo i386-unknown-lynxos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:*DOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-msdosdjgpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-msdosdjgpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    i*86:*:4.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:*:5:[678]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1112,12 +1159,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       *Pentium)        UNAME_MACHINE=i586 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:*:3.2:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test -f /usr/options/cb.name; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   elif /bin/uname -X 2>/dev/null >/dev/null ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1127,9 +1174,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   && UNAME_MACHINE=i686
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   && UNAME_MACHINE=i686
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo ${UNAME_MACHINE}-pc-sysv32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo "$UNAME_MACHINE"-pc-sysv32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     pc:*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1149,9 +1196,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i860:*:4.*:*) # i860-SVR4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else # Add other i860-SVR4 vendors below as they are discovered.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     mini*:CTIX:SYS*5:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1171,9 +1218,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   test -r /etc/.relid \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     && { echo i486-ncr-sysv4; exit; } ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1182,28 +1229,28 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   test -r /etc/.relid \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo m68k-unknown-lynxos${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo m68k-unknown-lynxos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     mc68030:UNIX_System_V:4.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo m68k-atari-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     TSUNAMI:LynxOS:2.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sparc-unknown-lynxos${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sparc-unknown-lynxos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     rs6000:LynxOS:2.*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo rs6000-unknown-lynxos${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo rs6000-unknown-lynxos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo powerpc-unknown-lynxos${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo powerpc-unknown-lynxos"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SM[BE]S:UNIX_SV:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo mips-dde-sysv${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo mips-dde-sysv"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     RM*:ReliantUNIX-*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo mips-sni-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1214,7 +1261,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:SINIX-*:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if uname -p 2>/dev/null >/dev/null ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           UNAME_MACHINE=`(uname -p) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo ${UNAME_MACHINE}-sni-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo "$UNAME_MACHINE"-sni-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           echo ns32k-sni-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1234,23 +1281,23 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:VOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # From Paul.Green@stratus.com.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-stratus-vos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-stratus-vos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:VOS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # From Paul.Green@stratus.com.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo hppa1.1-stratus-vos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     mc68*:A/UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo m68k-apple-aux${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo m68k-apple-aux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     news*:NEWS-OS:6*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo mips-sony-newsos6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if [ -d /usr/nec ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo mips-nec-sysv${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if test -d /usr/nec; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo mips-nec-sysv"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo mips-unknown-sysv${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo mips-unknown-sysv"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     BeBox:BeOS:*:*)       # BeOS running on hardware made by Be, PPC only.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1269,60 +1316,71 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo x86_64-unknown-haiku
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SX-4:SUPER-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sx4-nec-superux${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sx4-nec-superux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SX-5:SUPER-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sx5-nec-superux${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sx5-nec-superux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SX-6:SUPER-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sx6-nec-superux${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sx6-nec-superux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SX-7:SUPER-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sx7-nec-superux${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sx7-nec-superux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SX-8:SUPER-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sx8-nec-superux${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sx8-nec-superux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SX-8R:SUPER-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sx8r-nec-superux${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sx8r-nec-superux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SX-ACE:SUPER-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo sxace-nec-superux${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo sxace-nec-superux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Power*:Rhapsody:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo powerpc-apple-rhapsody${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo powerpc-apple-rhapsody"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:Rhapsody:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    arm64:Darwin:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo aarch64-apple-darwin"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:Darwin:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  eval $set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if test "$UNAME_PROCESSOR" = unknown ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      UNAME_PROCESSOR=powerpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              grep IS_64BIT_ARCH >/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              case $UNAME_PROCESSOR in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  i386) UNAME_PROCESSOR=x86_64 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  powerpc) UNAME_PROCESSOR=powerpc64 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  UNAME_PROCESSOR=`uname -p`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case $UNAME_PROCESSOR in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      unknown) UNAME_PROCESSOR=powerpc ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if command -v xcode-select > /dev/null 2> /dev/null && \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ! xcode-select --print-path > /dev/null 2> /dev/null ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # Avoid executing cc if there is no toolchain installed as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # cc will be a stub that puts up a graphical alert
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # prompting the user to install developer tools.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      CC_FOR_BUILD=no_compiler_found
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if test "$CC_FOR_BUILD" != no_compiler_found; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             grep IS_64BIT_ARCH >/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case $UNAME_PROCESSOR in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              i386) UNAME_PROCESSOR=x86_64 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              powerpc) UNAME_PROCESSOR=powerpc64 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             grep IS_PPC >/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          UNAME_PROCESSOR=powerpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   elif test "$UNAME_PROCESSOR" = i386 ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # Avoid executing cc on OS X 10.9, as it ships with a stub
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # that puts up a graphical alert prompting to install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # developer tools.  Any system running Mac OS X 10.7 or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # later (Darwin 11 and later) is required to have a 64-bit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # processor. This is not true of the ARM version of Darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # that Apple uses in portable devices.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      UNAME_PROCESSOR=x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # uname -m returns i386 or x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      UNAME_PROCESSOR=$UNAME_MACHINE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:procnto*:*:* | *:QNX:[0123456789]*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNAME_PROCESSOR=`uname -p`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1330,22 +1388,25 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           UNAME_PROCESSOR=i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           UNAME_MACHINE=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:QNX:*:4*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo i386-pc-qnx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NEO-*:NONSTOP_KERNEL:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo neo-tandem-nsk${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo neo-tandem-nsk"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSE-*:NONSTOP_KERNEL:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo nse-tandem-nsk${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo nse-tandem-nsk"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSR-*:NONSTOP_KERNEL:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo nsr-tandem-nsk${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo nsr-tandem-nsk"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NSV-*:NONSTOP_KERNEL:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo nsv-tandem-nsk"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NSX-*:NONSTOP_KERNEL:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo nsx-tandem-nsk${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo nsx-tandem-nsk"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:NonStop-UX:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo mips-compaq-nonstopux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1354,18 +1415,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo bs2000-siemens-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     DS/*:UNIX_System_V:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:Plan9:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # "uname -m" is not consistent, so use $cputype instead. 386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # is converted to i386 for consistency with other x86
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # operating systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # shellcheck disable=SC2154
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test "$cputype" = 386; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       UNAME_MACHINE=i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       UNAME_MACHINE="$cputype"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-plan9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-plan9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:TOPS-10:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo pdp10-unknown-tops10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1386,14 +1448,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo pdp10-unknown-its
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     SEI:*:*:SEIUX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo mips-sei-seiux${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo mips-sei-seiux"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:DragonFly:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *:*VMS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNAME_MACHINE=`(uname -p) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  case "${UNAME_MACHINE}" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  case "$UNAME_MACHINE" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       A*) echo alpha-dec-vms ; exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       I*) echo ia64-dec-vms ; exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       V*) echo vax-dec-vms ; exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1402,32 +1464,190 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo i386-pc-xenix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:skyos:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:rdos:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-rdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-rdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     i*86:AROS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-pc-aros
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-pc-aros
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     x86_64:VMkernel:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  echo ${UNAME_MACHINE}-unknown-esx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-esx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     amd64:Isilon\ OneFS:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   echo x86_64-unknown-onefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    *:Unleashed:*:*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# No uname command or uname output not recognized.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++set_cc_for_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++cat > "$dummy.c" <<EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef _SEQUENT_
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/utsname.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <signal.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(_SIZE_T_) || defined(SIGLOST)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/utsname.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (sony)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (MIPSEB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     I don't know....  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("mips-sony-bsd\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/param.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("m68k-sony-newsos%s\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef NEWSOS4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  "4"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (NeXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !defined (__ARCHITECTURE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define __ARCHITECTURE__ "m68k"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int version;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (version < 4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (MULTIMAX) || defined (n16)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (UMAXV)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("ns32k-encore-sysv\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (CMU)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("ns32k-encore-mach\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("ns32k-encore-bsd\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (__386BSD__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("i386-pc-bsd\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (sequent)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (i386)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("i386-sequent-dynix\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (ns32000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("ns32k-sequent-dynix\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (_SEQUENT_)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  struct utsname un;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uname(&un);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (strncmp(un.version, "V2", 2) == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    printf ("i386-sequent-ptx2\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    printf ("i386-sequent-ptx1\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("i386-sequent-ptx\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (vax)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if !defined (ultrix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/param.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (BSD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if BSD == 43
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("vax-dec-bsd4.3\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if BSD == 199006
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("vax-dec-bsd4.3reno\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("vax-dec-bsd\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("vax-dec-bsd\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(_SIZE_T_) || defined(SIGLOST)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  struct utsname un;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uname (&un);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("vax-dec-ultrix%s\n", un.release); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("vax-dec-ultrix\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(_SIZE_T_) || defined(SIGLOST)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  struct utsname *un;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  uname (&un);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("mips-dec-ultrix%s\n", un.release); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("mips-dec-ultrix\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined (alliant) && defined (i860)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  printf ("i860-alliant-bsd\n"); exit (0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  exit (1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`$dummy` &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  { echo "$SYSTEM_NAME"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Apollos put the system type in the environment.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++echo "$0: unable to guess system type" >&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case "$UNAME_MACHINE:$UNAME_SYSTEM" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    mips:Linux | mips64:Linux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # If we got here on MIPS GNU/Linux, output extra information.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cat >&2 <<EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++the system type. Please install a C compiler and try again.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cat >&2 <<EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-$0: unable to guess system type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ This script (version $timestamp), has failed to recognize the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-operating system you are using. If your script is old, overwrite
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-config.guess and config.sub with the latest versions from:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++operating system you are using. If your script is old, overwrite *all*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++copies of config.guess and config.sub with the latest versions from:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++year=`echo $timestamp | sed 's,-.*,,'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# shellcheck disable=SC2003
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "`expr "\`date +%Y\`" - "$year"`" -lt 3 ; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   cat >&2 <<EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ If $0 has already been updated, send the following data and any
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ information you think might be pertinent to config-patches@gnu.org to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1450,16 +1670,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-UNAME_MACHINE = ${UNAME_MACHINE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-UNAME_RELEASE = ${UNAME_RELEASE}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-UNAME_SYSTEM  = ${UNAME_SYSTEM}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-UNAME_VERSION = ${UNAME_VERSION}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++UNAME_MACHINE = "$UNAME_MACHINE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++UNAME_RELEASE = "$UNAME_RELEASE"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++UNAME_SYSTEM  = "$UNAME_SYSTEM"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++UNAME_VERSION = "$UNAME_VERSION"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Local variables:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# eval: (add-hook 'write-file-hooks 'time-stamp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# eval: (add-hook 'before-save-hook 'time-stamp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # time-stamp-start: "timestamp='"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # time-stamp-format: "%:y-%02m-%02d"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # time-stamp-end: "'"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur config.sub libffi-3.3.new/config.sub
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- config.sub     2019-10-31 08:49:54.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/config.sub      2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,8 +1,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #! /bin/sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Configuration validation subroutine script.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#   Copyright 1992-2017 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   Copyright 1992-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-timestamp='2017-04-02'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++timestamp='2020-08-17'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is free software; you can redistribute it and/or modify it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,7 +15,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # General Public License for more details.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # You should have received a copy of the GNU General Public License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# along with this program; if not, see <http://www.gnu.org/licenses/>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# along with this program; if not, see <https://www.gnu.org/licenses/>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # As a special exception to the GNU General Public License, if you
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # distribute this file as part of a program that contains a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -33,7 +33,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Otherwise, we print the canonical config type on stdout and succeed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # You can get the latest version of this script from:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This file is supposed to be the same for all GNU packages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # and recognize all the CPU types, system types and aliases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -57,7 +57,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Canonicalize a configuration name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-Operation modes:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Options:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -h, --help         print this help, then exit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -t, --time-stamp   print date of last modification, then exit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -v, --version      print version number, then exit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -67,7 +67,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version="\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ GNU config.sub ($timestamp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-Copyright 1992-2017 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Copyright 1992-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ This is free software; see the source for copying conditions.  There is NO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -89,12 +89,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     - )   # Use stdin as input.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        break ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     -* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       echo "$me: invalid option $1$help"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       echo "$me: invalid option $1$help" >&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        exit 1 ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     *local*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # First pass through any local machine types.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       echo $1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       echo "$1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        exit ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     * )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -110,1252 +110,1167 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     exit 1;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Here we must recognize all the valid KERNEL-OS combinations.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-case $maybe_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  kopensolaris*-gnu* | cloudabi*-eabi* | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  storm-chaos* | os2-emx* | rtmk-nova*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    os=-$maybe_os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  android-linux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    os=-linux-android
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if [ $basic_machine != $1 ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    then os=`echo $1 | sed 's/.*-/-/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    else os=; fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-### Let's recognize common machines as not being operating systems so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-### that things like config.sub decstation-3100 work.  We also
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-### recognize some manufacturers as not being operating systems, so we
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-### can provide default operating systems below.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sun*os*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          # Prevent following clause from handling this invalid input.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -apple | -axis | -knuth | -cray | -microblaze*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=$1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -bluegene*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-cnk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sim | -cisco | -oki | -wec | -winbond)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=$1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -scout)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -wrs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=$1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -chorusos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-chorusos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=$1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -chorusrdb)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-chorusrdb
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=$1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -hiux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sco6)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sco5v6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sco5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sco3.2v5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sco4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sco3.2v4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sco3.2.[4-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sco3.2v[4-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          # Don't forget version if it is 3.2v4 or newer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sco5v6*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          # Don't forget version if it is 3.2v4 or newer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sco*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sco3.2v2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -udk*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -isc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-isc2.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -clix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=clipper-intergraph
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -isc*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -lynx*178)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-lynxos178
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -lynx*5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-lynxos5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -lynx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-lynxos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Split fields of configuration type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# shellcheck disable=SC2162
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++IFS="-" read field1 field2 field3 field4 <<EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Separate into logical components for further validation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $1 in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-*-*-*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo Invalid configuration \`"$1"\': more than four components >&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -ptx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-*-*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_machine=$field1-$field2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=$field3-$field4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -windowsnt*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=`echo $os | sed -e 's/windowsnt/winnt/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # parts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          maybe_os=$field2-$field3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case $maybe_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  nto-qnx* | linux-* | uclinux-uclibc* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | storm-chaos* | os2-emx* | rtmk-nova*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=$field1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=$maybe_os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  android-linux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=$field1-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=linux-android
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=$field1-$field2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=$field3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -psos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-psos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # A lone config we happen to match not fitting any pattern
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case $field1-$field2 in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  decstation-3100)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=mips-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          # Second component is usually, but not always the OS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          case $field2 in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  # Prevent following clause from handling this valid os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  sun*os*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          basic_machine=$field1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          basic_os=$field2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  # Manufacturers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  | unicom* | ibm* | next | hp | isi* | apollo | altos* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  | convergent* | ncr* | news | 32* | 3600* | 3100* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  | ultra | tti* | harris | dolphin | highlevel | gould \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  | cbm | ns | masscomp | apple | axis | knuth | cray \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  | microblaze* | sim | cisco \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  | oki | wec | wrs | winbond)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          basic_machine=$field1-$field2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          basic_machine=$field1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          basic_os=$field2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -mint | -mint[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-atari
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # Convert single-component short-hands not valid as part of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # multi-component configurations.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case $field1 in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  386bsd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  a29khif)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=a29k-amd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=udi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  adobe68k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68010-adobe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=scout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  alliant)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=fx80-alliant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  altos | altos3068)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-altos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  am29k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=a29k-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  amdahl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=580-amdahl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  amiga)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  amigaos | amigados)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=amigaos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  amigaunix | amix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  apollo68)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-apollo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  apollo68bsd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-apollo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  aros)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=aros
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  aux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-apple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=aux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  balance)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=ns32k-sequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=dynix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  blackfin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=bfin-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  cegcc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=arm-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=cegcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  convex-c1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=c1-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  convex-c2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=c2-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  convex-c32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=c32-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  convex-c34)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=c34-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  convex-c38)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=c38-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  cray)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=j90-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  crds | unos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-crds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  da30)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-da30
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  decstation | pmax | pmin | dec3100 | decstatn)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=mips-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  delta88)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m88k-motorola
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  dicos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=dicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  djgpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i586-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=msdosdjgpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  ebmon29k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=a29k-amd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=ebmon
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  es1800 | OSE68k | ose68k | ose | OSE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-ericsson
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  gmicro)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=tron-gmicro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  go32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=go32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  h8300hms)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=h8300-hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=hms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  h8300xray)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=h8300-hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=xray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  h8500hms)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=h8500-hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=hms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  harris)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m88k-harris
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  hp300 | hp300hpux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=hpux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  hp300bsd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  hppaosf)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=hppa1.1-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=osf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  hppro)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=hppa1.1-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  i386mach)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i386-mach
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=mach
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  isi68 | isi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-isi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  m68knommu)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  magnum | m3230)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=mips-mips
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  merlin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=ns32k-utek
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  mingw64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=x86_64-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=mingw64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  mingw32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=mingw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  mingw32ce)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=arm-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=mingw32ce
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  monitor)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-rom68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  morphos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=powerpc-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=morphos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  moxiebox)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=moxie-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=moxiebox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  msdos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=msdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  msys)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=msys
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  mvs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i370-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=mvs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  nacl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=le32-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=nacl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  ncr3000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i486-ncr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  netbsd386)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=netbsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  netwinder)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=armv4l-rebel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  news | news700 | news800 | news900)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=newsos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  news1000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68030-sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=newsos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  necv70)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=v70-nec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  nh3000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-harris
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=cxux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  nh[45]000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m88k-harris
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=cxux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  nindy960)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i960-intel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=nindy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  mon960)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i960-intel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=mon960
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  nonstopux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=mips-compaq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=nonstopux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  os400)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=powerpc-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=os400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  OSE68000 | ose68000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68000-ericsson
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  os68k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=os68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  paragon)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i860-intel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=osf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  parisc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=hppa-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  psp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=mipsallegrexel-sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=psp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  pw32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i586-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=pw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  rdos | rdos64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=x86_64-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=rdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  rdos32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=rdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  rom68k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-rom68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sa29200)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=a29k-amd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=udi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sei)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=mips-sei
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=seiux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sequent)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i386-sequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sps7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-bull
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  st2000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  stratus)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i860-stratus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sun2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68000-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sun2os3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68000-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sun2os4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68000-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sunos4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sun3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sun3os3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sun3os4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sunos4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sun4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sun4os3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sun4os4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sunos4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sun4sol2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=solaris2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sun386 | sun386i | roadrunner)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i386-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sv1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=sv1-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  symmetry)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i386-sequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=dynix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  t3e)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=alphaev5-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  t90)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=t90-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  toad1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=pdp10-xkl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=tops20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  tpf)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=s390x-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=tpf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  udi29k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=a29k-amd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=udi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  ultra3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=a29k-nyu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sym1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  v810 | necv810)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=v810-nec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  vaxv)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=vax-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  vms)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=vax-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=vms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  vsta)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=vsta
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  vxworks960)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i960-wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  vxworks68)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=m68k-wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  vxworks29k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=a29k-wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  xbox)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=mingw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  ymp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=ymp-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_machine=$1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          basic_os=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Decode aliases for certain CPU-COMPANY combinations.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Decode 1-component or ad-hoc basic machines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # Recognize the basic CPU types without company name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # Some are omitted here because they have special meanings below.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  1750a | 580 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | a29k \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | aarch64 | aarch64_be \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | am33_2.0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | arc | arceb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | avr | avr32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | ba \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | be32 | be64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | bfin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | c4x | c8051 | clipper \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | d10v | d30v | dlx | dsp16xx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | e2k | epiphany \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | fido | fr30 | frv | ft32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | hexagon \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | i370 | i860 | i960 | ia16 | ia64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | ip2k | iq2000 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | k1om \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | le32 | le64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | lm32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | m32c | m32r | m32rle | m68000 | m68k | m88k \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | maxq | mb | microblaze | microblazeel | mcore | mep | metag \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips | mipsbe | mipseb | mipsel | mipsle \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips16 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64 | mips64el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64octeon | mips64octeonel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64orion | mips64orionel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64r5900 | mips64r5900el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64vr | mips64vrel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64vr4100 | mips64vr4100el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64vr4300 | mips64vr4300el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64vr5000 | mips64vr5000el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64vr5900 | mips64vr5900el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa32 | mipsisa32el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa32r2 | mipsisa32r2el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa32r6 | mipsisa32r6el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa64 | mipsisa64el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa64r2 | mipsisa64r2el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa64r6 | mipsisa64r6el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa64sb1 | mipsisa64sb1el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa64sr71k | mipsisa64sr71kel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsr5900 | mipsr5900el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipstx39 | mipstx39el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mn10200 | mn10300 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | moxie \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | msp430 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | nds32 | nds32le | nds32be \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | nios | nios2 | nios2eb | nios2el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | ns16k | ns32k \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | open8 | or1k | or1knd | or32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | pdp10 | pdp11 | pj | pjl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | powerpc | powerpc64 | powerpc64le | powerpcle \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | pru \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | pyramid \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | riscv32 | riscv64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | rl78 | rx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | score \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | sh64 | sh64le \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | spu \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | ubicom32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | visium \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | wasm32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | we32k \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | x86 | xc16x | xstormy16 | xtensa \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | z8k | z80)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=$basic_machine-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  c54x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=tic54x-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  c55x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=tic55x-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  c6x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=tic6x-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  leon|leon[3-9])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sparc-$basic_machine
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=$basic_machine-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Here we handle the default manufacturer of certain CPU types.  It is in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # some cases the only manufacturer, in others, it is the most popular.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w89k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=winbond
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  op50n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=oki
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ms1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mt-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  op60c)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=oki
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  strongarm | thumb | xscale)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=arm-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ibm*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=i370
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xgate)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=$basic_machine-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  orion105)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=clipper
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=highlevel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xscaleeb)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=armeb-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  mac | mpw | mac-mpw)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=apple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xscaleel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=armel-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  pmac | pmac-mpw)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=powerpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=apple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # We use `pc' rather than `unknown'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # because (1) that's what they normally are, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # (2) the word "unknown" tends to confuse beginning users.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  i*86 | x86_64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    basic_machine=$basic_machine-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # Object if more than one company name word.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *-*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # Recognize the basic CPU types with company name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  580-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | a29k-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | aarch64-* | aarch64_be-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | avr-* | avr32-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | ba-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | be32-* | be64-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | bfin-* | bs2000-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | c[123]* | c30-* | [cjt]90-* | c4x-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | c8051-* | clipper-* | craynv-* | cydra-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | d10v-* | d30v-* | dlx-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | e2k-* | elxsi-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | h8300-* | h8500-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | hexagon-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | ip2k-* | iq2000-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | k1om-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | le32-* | le64-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | lm32-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | m32c-* | m32r-* | m32rle-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | microblaze-* | microblazeel-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips16-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64-* | mips64el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64octeon-* | mips64octeonel-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64orion-* | mips64orionel-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64r5900-* | mips64r5900el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64vr-* | mips64vrel-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64vr4100-* | mips64vr4100el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64vr4300-* | mips64vr4300el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64vr5000-* | mips64vr5000el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mips64vr5900-* | mips64vr5900el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa32-* | mipsisa32el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa32r2-* | mipsisa32r2el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa32r6-* | mipsisa32r6el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa64-* | mipsisa64el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa64r2-* | mipsisa64r2el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa64r6-* | mipsisa64r6el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa64sb1-* | mipsisa64sb1el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsisa64sr71k-* | mipsisa64sr71kel-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipsr5900-* | mipsr5900el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mipstx39-* | mipstx39el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mmix-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | mt-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | msp430-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | nds32-* | nds32le-* | nds32be-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | nios-* | nios2-* | nios2eb-* | nios2el-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | none-* | np1-* | ns16k-* | ns32k-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | open8-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | or1k*-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | orion-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | pru-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | pyramid-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | riscv32-* | riscv64-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | rl78-* | romp-* | rs6000-* | rx-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | sparclite-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | tahoe-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | tile*-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | tron-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | ubicom32-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | vax-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | visium-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | wasm32-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | we32k-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | x86-* | x86_64-* | xc16x-* | xps100-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | xstormy16-* | xtensa*-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | ymp-* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  | z8k-* | z80-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # Recognize the basic CPU types without company name, with glob match.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xtensa*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=$basic_machine-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Recognize the various machine names and aliases which stand
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # for a CPU type and a company and sometimes even an OS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  386bsd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68000-att
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=m68000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=att
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   3b*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=we32k-att
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  a29khif)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=a29k-amd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-udi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  abacus)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=abacus-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  adobe68k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68010-adobe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-scout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  alliant | fx80)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=fx80-alliant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  altos | altos3068)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-altos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  am29k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=a29k-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  amd64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=x86_64-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  amd64-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  amdahl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=580-amdahl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  amiga | amiga-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  amigaos | amigados)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-amigaos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  amigaunix | amix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  apollo68)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-apollo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  apollo68bsd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-apollo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  aros)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-aros
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  asmjs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=asmjs-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  aux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-apple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-aux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  balance)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=ns32k-sequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-dynix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  blackfin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=bfin-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  blackfin-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=we32k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=att
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   bluegene*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=powerpc-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-cnk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  c54x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  c55x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  c6x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  c90)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=c90-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  cegcc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=arm-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-cegcc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  convex-c1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=c1-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  convex-c2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=c2-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  convex-c32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=c32-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  convex-c34)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=c34-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  convex-c38)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=c38-convex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  cray | j90)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=j90-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  craynv)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=craynv-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-unicosmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  cr16 | cr16-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=cr16-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  crds | unos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-crds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  crisv32 | crisv32-* | etraxfs*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=crisv32-axis
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  cris | cris-* | etrax*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=cris-axis
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  crx)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=crx-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  da30 | da30-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-da30
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mips-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=powerpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=cnk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   decsystem10* | dec10*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=pdp10-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-tops10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=pdp10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=tops10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   decsystem20* | dec20*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=pdp10-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-tops20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=pdp10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=tops20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   delta | 3300 | motorola-3300 | motorola-delta \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         | 3300-motorola | delta-motorola)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-motorola
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=motorola
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  delta88)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m88k-motorola
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  dicos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-dicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  djgpp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i586-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-msdosdjgpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  dpx20 | dpx20-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=rs6000-bull
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bosx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  dpx2* | dpx2*-bull)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-bull
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  e500v[12])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=powerpc-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=$os"spe"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  e500v[12]-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=$os"spe"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ebmon29k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=a29k-amd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-ebmon
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  elxsi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=elxsi-elxsi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  dpx2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=bull
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   encore | umax | mmax)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=ns32k-encore
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=ns32k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=encore
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  es1800 | OSE68k | ose68k | ose | OSE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-ericsson
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  elxsi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=elxsi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=elxsi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=${basic_os:-bsd}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fx2800)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i860-alliant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=i860
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=alliant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   genix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=ns32k-ns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  gmicro)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=tron-gmicro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  go32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-go32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=ns32k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=ns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   h3050r* | hiux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  h8300hms)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=h8300-hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-hms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  h8300xray)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=h8300-hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-xray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  h8500hms)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=h8500-hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-hms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  harris)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m88k-harris
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  hp300-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  hp300bsd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  hp300hpux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-hpux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hp3k9[0-9][0-9] | hp9[0-9][0-9])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.0-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hp9k2[0-9][0-9] | hp9k31[0-9])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68000-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=m68000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hp9k3[2-9][0-9])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hp9k6[0-9][0-9] | hp6[0-9][0-9])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.0-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hp9k7[0-79][0-9] | hp7[0-79][0-9])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hp9k78[0-9] | hp78[0-9])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           # FIXME: really hppa2.0-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           # FIXME: really hppa2.0-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hp9k8[0-9][13679] | hp8[0-9][13679])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hp9k8[0-9][0-9] | hp8[0-9][0-9])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.0-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  hppa-next)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-nextstep3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  hppaosf)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-osf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  hppro)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  i370-ibm* | ibm*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i370-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   i*86v32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=`echo "$1" | sed -e 's/86.*/86/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=sysv32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   i*86v4*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=`echo "$1" | sed -e 's/86.*/86/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   i*86v)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=`echo "$1" | sed -e 's/86.*/86/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   i*86sol2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-solaris2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  i386mach)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-mach
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mach
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  i386-vsta | vsta)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-vsta
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=`echo "$1" | sed -e 's/86.*/86/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=solaris2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  j90 | j90-cray)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=j90
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=${basic_os:-unicos}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   iris | iris4d)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mips-sgi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              -irix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=mips
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=sgi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case $basic_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              irix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  os=-irix4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  basic_os=irix4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  isi68 | isi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-isi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  leon-*|leon[3-9]-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  m68knommu)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  m68knommu-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  m88k-omron*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m88k-omron
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  magnum | m3230)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mips-mips
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  merlin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=ns32k-utek
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  microblaze*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=microblaze-xilinx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  mingw64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=x86_64-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mingw64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  mingw32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mingw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  mingw32ce)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=arm-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mingw32ce
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   miniframe)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68000-convergent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-atari
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  mips3*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=m68000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=convergent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  mips3*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  monitor)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-rom68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  morphos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=powerpc-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-morphos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  moxiebox)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=moxie-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-moxiebox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  msdos)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-msdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ms1-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  msys)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-msys
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  mvs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i370-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mvs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  nacl)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=le32-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-nacl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ncr3000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i486-ncr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  netbsd386)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-netbsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  netwinder)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=armv4l-rebel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  news | news700 | news800 | news900)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-newsos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  news1000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68030-sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-newsos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=atari
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=mint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   news-3600 | risc-news)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mips-sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-newsos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  necv70)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=v70-nec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  next | m*-next )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-next
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              -nextstep* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=mips
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=newsos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  next | m*-next)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=next
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case $basic_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              openstep*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              nextstep*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              -ns2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                os=-nextstep2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              ns2*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                basic_os=nextstep2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                os=-nextstep3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                basic_os=nextstep3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  nh3000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-harris
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-cxux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  nh[45]000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m88k-harris
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-cxux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  nindy960)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i960-intel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-nindy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  mon960)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i960-intel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mon960
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  nonstopux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mips-compaq
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-nonstopux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   np1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=np1-gould
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  neo-tandem)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=neo-tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  nse-tandem)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=nse-tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  nsr-tandem)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=nsr-tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  nsx-tandem)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=nsx-tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=np1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=gould
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   op50n-* | op60c-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-oki
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  openrisc | openrisc-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=or32-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  os400)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=powerpc-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-os400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  OSE68000 | ose68000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68000-ericsson
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  os68k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-os68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=oki
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pa-hitachi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  paragon)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i860-intel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-osf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  parisc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  parisc-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pbd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sparc-tti
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=sparc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=tti
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pbb)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-tti
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pc532 | pc532-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=ns32k-pc532
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=tti
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pc98)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pc98-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  pc532)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=ns32k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=pc532
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pentium | p5 | k5 | k6 | nexgen | viac3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i586-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pentiumpro | p6 | 6x86 | athlon | athlon_*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pentiumii | pentium2 | pentiumiii | pentium3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  pn)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=pn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=gould
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pentium4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i786-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  power)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=power
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ps2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pentiumpro-* | p6-* | 6x86-* | athlon-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  rm[46]00)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=mips
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=siemens
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  rtpc | rtpc-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=romp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pentium4-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sde)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=mipsisa32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=sde
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=${basic_os:-elf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  simso-wrs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=sparclite
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pn)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=pn-gould
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tower | tower-32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=ncr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  power)  basic_machine=power-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  vpp*|vx|vx-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=f301
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=fujitsu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ppc | ppcbe)    basic_machine=powerpc-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w65)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=w65
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=wdc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ppc-* | ppcbe-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ppcle | powerpclittle)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=powerpcle-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  w89k-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=winbond
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ppcle-* | powerpclittle-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  none)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ppc64)  basic_machine=powerpc64-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  leon|leon[3-9])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=sparc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=$basic_machine
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  leon-*|leon[3-9]-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=sparc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=`echo "$basic_machine" | sed 's/-.*//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ppc64le | powerpc64little)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=powerpc64le-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # shellcheck disable=SC2162
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          IFS="-" read cpu vendor <<EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$basic_machine
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ppc64le-* | powerpc64little-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # We use `pc' rather than `unknown'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # because (1) that's what they normally are, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # (2) the word "unknown" tends to confuse beginning users.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  i*86 | x86_64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=$basic_machine
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ps2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # These rules are duplicated from below for sake of the special case above;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # i.e. things that normalized to x86 arches should also default to "pc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  pc98)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pw32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i586-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-pw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  rdos | rdos64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=x86_64-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-rdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  rdos32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-rdos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  rom68k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-rom68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  x64 | amd64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  rm[46]00)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mips-siemens
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Recognize the basic CPU types without company name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=$basic_machine
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  rtpc | rtpc-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=romp-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++unset -v basic_machine
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Decode basic machines in the full and proper CPU-Company form.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # some cases the only manufacturer, in others, it is the most popular.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  craynv-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=${basic_os:-unicosmp}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  s390 | s390-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=s390-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  c90-unknown | c90-cray)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=${Basic_os:-unicos}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  s390x | s390x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=s390x-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fx80-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=alliant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sa29200)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=a29k-amd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-udi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  romp-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sb1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mipsisa64sb1-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  mmix-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=knuth
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sb1el)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mipsisa64sb1el-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  microblaze-unknown | microblazeel-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=xilinx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sde)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mipsisa32-sde
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  rs6000-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sei)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mips-sei
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-seiux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  vax-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sequent)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-sequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  pdp11-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sh)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sh-hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-hms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  we32k-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=att
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sh5el)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sh5le-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cydra-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=cydrome
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sh64)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sh64-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  i370-ibm*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sparclite-wrs | simso-wrs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sparclite-wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  orion-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=highlevel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sps7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-bull
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  xps-unknown | xps100-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=xps100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=honeywell
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  spur)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=spur-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Here we normalize CPU types with a missing or matching vendor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  dpx20-unknown | dpx20-bull)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=rs6000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=bull
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=${basic_os:-bosx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  st2000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Here we normalize CPU types irrespective of the vendor
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  amd64-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  stratus)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i860-stratus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  blackfin-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=bfin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  strongarm-* | thumb-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  c54x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=tic54x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sun2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68000-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  c55x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=tic55x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sun2os3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68000-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  c6x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=tic6x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sun2os4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68000-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sunos4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  e500v[12]-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=powerpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=${basic_os}"spe"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sun3os3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  mips3*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=mips64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sun3os4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sunos4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ms1-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=mt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sun4os3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  m68knommu-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=m68k
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sun4os4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sunos4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=s12z
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sun4sol2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-solaris2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  openrisc-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=or32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sun3 | sun3-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  parisc-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=hppa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sun4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=i586
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sun386 | sun386i | roadrunner)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=i686
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sv1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sv1-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=i686
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  symmetry)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i386-sequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-dynix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  pentium4-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=i786
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  t3e)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=alphaev5-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  pc98-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=i386
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  t90)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=t90-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ppc-* | ppcbe-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=powerpc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tile*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=$basic_machine-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-linux-gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ppcle-* | powerpclittle-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=powerpcle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tx39)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mipstx39-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ppc64-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=powerpc64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tx39el)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mipstx39el-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ppc64le-* | powerpc64little-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=powerpc64le
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  toad1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=pdp10-xkl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-tops20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sb1-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=mipsisa64sb1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tower | tower-32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-ncr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sb1el-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=mipsisa64sb1el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  tpf)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=s390x-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-tpf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  udi29k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=a29k-amd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-udi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ultra3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=a29k-nyu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sym1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  v810 | necv810)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=v810-nec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  vaxv)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=vax-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  vms)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=vax-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-vms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sh5e[lb]-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  vpp*|vx|vx-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=f301-fujitsu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  spur-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=spur
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  vxworks960)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i960-wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  vxworks68)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  vxworks29k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=a29k-wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  wasm32)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=wasm32-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  w65*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=w65-wdc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  strongarm-* | thumb-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=arm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  w89k-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-winbond
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tx39-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=mipstx39
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xbox)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=i686-pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mingw32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tx39el-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=mipstx39el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  xps | xps100)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=xps100-honeywell
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  x64-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=x86_64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   xscale-* | xscalee[bl]-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ymp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=ymp-cray
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-unicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  z8k-*-coff)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=z8k-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sim
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  z80-*-coff)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=z80-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sim
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  none)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=none-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  arm64-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=aarch64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Here we handle the default manufacturer of certain CPU types.  It is in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# some cases the only manufacturer, in others, it is the most popular.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  w89k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-winbond
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  op50n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-oki
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  op60c)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=hppa1.1-oki
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  romp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=romp-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  mmix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=mmix-knuth
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Recognize the canonical CPU Types that limit and/or modify the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # company names they are paired with.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cr16-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=${basic_os:-elf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  rs6000)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=rs6000-ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  crisv32-* | etraxfs*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=crisv32
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=axis
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  vax)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=vax-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cris-* | etrax*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=cris
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=axis
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pdp10)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          # there are many clones, so DEC is not a safe bet
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=pdp10-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  crx-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=${basic_os:-elf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pdp11)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=pdp11-dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  we32k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=we32k-att
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sh-unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  neo-tandem)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=neo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=sparc-sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  nse-tandem)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=nse
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  cydra)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=cydra-cydrome
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  nsr-tandem)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=nsr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  orion)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=orion-highlevel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  nsv-tandem)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=nsv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  orion105)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=clipper-highlevel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  nsx-tandem)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=nsx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=tandem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  mac | mpw | mac-mpw)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=m68k-apple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  mipsallegrexel-sony)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          cpu=mipsallegrexel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=sony
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pmac | pmac-mpw)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=powerpc-apple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          # Make sure to match an already-canonicalized machine name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tile*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          basic_os=${basic_os:-linux-gnu}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # Recognize the canonical CPU types that are allowed with any
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # company name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case $cpu in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  1750a | 580 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | a29k \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | aarch64 | aarch64_be \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | abacus \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | alphapca5[67] | alpha64pca5[67] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | am33_2.0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | amdgcn \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | arc | arceb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | arm | arm[lb]e | arme[lb] | armv* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | avr | avr32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | asmjs \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | ba \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | be32 | be64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | bfin | bpf | bs2000 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | c[123]* | c30 | [cjt]90 | c4x \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | c8051 | clipper | craynv | csky | cydra \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | d10v | d30v | dlx | dsp16xx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | e2k | elxsi | epiphany \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | h8300 | h8500 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | hexagon \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | i370 | i*86 | i860 | i960 | ia16 | ia64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | ip2k | iq2000 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | k1om \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | le32 | le64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | lm32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | m32c | m32r | m32rle \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | m88110 | m88k | maxq | mb | mcore | mep | metag \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | microblaze | microblazeel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mips | mipsbe | mipseb | mipsel | mipsle \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mips16 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mips64 | mips64eb | mips64el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mips64octeon | mips64octeonel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mips64orion | mips64orionel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mips64r5900 | mips64r5900el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mips64vr | mips64vrel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mips64vr4100 | mips64vr4100el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mips64vr4300 | mips64vr4300el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mips64vr5000 | mips64vr5000el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mips64vr5900 | mips64vr5900el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mipsisa32 | mipsisa32el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mipsisa32r2 | mipsisa32r2el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mipsisa32r6 | mipsisa32r6el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mipsisa64 | mipsisa64el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mipsisa64r2 | mipsisa64r2el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mipsisa64r6 | mipsisa64r6el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mipsisa64sb1 | mipsisa64sb1el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mipsisa64sr71k | mipsisa64sr71kel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mipsr5900 | mipsr5900el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mipstx39 | mipstx39el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mmix \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mn10200 | mn10300 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | moxie \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | mt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | msp430 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | nds32 | nds32le | nds32be \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | nfp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | nios | nios2 | nios2eb | nios2el \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | none | np1 | ns16k | ns32k | nvptx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | open8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | or1k* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | or32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | orion \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | picochip \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | pdp10 | pdp11 | pj | pjl | pn | power \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | pru \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | pyramid \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | riscv | riscv32 | riscv64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | rl78 | romp | rs6000 | rx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | s390 | s390x \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | score \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | sh | shl \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | sparclite \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | spu \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | tahoe \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | tron \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | ubicom32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | vax \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | visium \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | w65 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | wasm32 | wasm64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | we32k \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | x86 | x86_64 | xc16x | xgate | xps100 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | xstormy16 | xtensa* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | ymp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  | z8k | z80)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Here we canonicalize certain aliases for manufacturers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *-digital*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  digital*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=dec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *-commodore*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  commodore*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          vendor=cbm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1363,203 +1278,215 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Decode manufacturer-specific aliases for certain operating systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-if [ x"$os" != x"" ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test x$basic_os != x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # First match some system type aliases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # that might get confused with valid system types.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # -solaris* is a basic system type, with this one exception.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -auroraux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-auroraux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# set os.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $basic_os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gnu/linux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          kernel=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=`echo $basic_os | sed -e 's|gnu/linux|gnu|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  nto-qnx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          kernel=nto
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=`echo $basic_os | sed -e 's|nto-qnx|qnx|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # shellcheck disable=SC2162
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          IFS="-" read kernel os <<EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$basic_os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++EOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Default OS when just kernel was specified
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  nto*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          kernel=nto
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=`echo $basic_os | sed -e 's|nto|qnx|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  linux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          kernel=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=`echo $basic_os | sed -e 's|linux|gnu|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -solaris1 | -solaris1.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=`echo $os | sed -e 's|solaris1|sunos4|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          kernel=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=$basic_os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -solaris)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-solaris2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Now, normalize the OS (knowing we just have one component, it's not a kernel,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# etc.)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # First match some system type aliases that might get confused
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # with valid system types.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # solaris* is a basic system type, with this one exception.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  auroraux)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=auroraux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -svr4*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bluegene*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=cnk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -unixware*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv4.2uw
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  solaris1 | solaris1.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=`echo $os | sed -e 's|solaris1|sunos4|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -gnu/linux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  solaris)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=solaris2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # First accept the basic system types.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # The portable systems comes first.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # Each alternative MUST END IN A *, to match a version number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # -sysv* is not here because it comes later, after sysvr4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -sym* | -kopensolaris* | -plan9* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -aos* | -aros* | -cloudabi* | -sortix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -linux-newlib* | -linux-musl* | -linux-uclibc* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # Remember, each alternative MUST END IN *, to match a version number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -qnx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              x86-* | i*86-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  os=-nto$os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unixware*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv4.2uw
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -nto-qnx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # es1800 is here to avoid being matched by es* (a different OS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  es1800*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -nto*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=`echo $os | sed -e 's|nto|nto-qnx|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Some version numbers need modification
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  chorusos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=chorusos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  isc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=isc2.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -mac*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=`echo $os | sed -e 's|mac|macos|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sco6)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sco5v6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -linux-dietlibc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-linux-dietlibc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sco5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sco3.2v5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -linux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=`echo $os | sed -e 's|linux|linux-gnu|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sco4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sco3.2v4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sunos5*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=`echo $os | sed -e 's|sunos5|solaris2|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sco3.2.[4-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sunos6*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=`echo $os | sed -e 's|sunos6|solaris3|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sco*v* | scout)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # Don't match below
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -opened*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-openedition
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sco*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sco3.2v2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -os400*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-os400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  psos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=psos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -wince*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-wince
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  qnx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case $cpu in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              x86 | i*86)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  os=nto-$os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -osfrose*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-osfrose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  hiux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=hiuxwe2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -osf*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-osf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  lynx*178)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=lynxos178
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -utek*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  lynx*5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=lynxos5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -dynix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  lynxos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # don't get caught up in next wildcard
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -acis*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-aos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  lynx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=lynxos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -atheos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-atheos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  mac[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=`echo "$os" | sed -e 's|mac|macos|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -syllable*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-syllable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  opened*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=openedition
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -386bsd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  os400*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=os400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -ctix* | -uts*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sunos5*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -nova*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-rtmk-nova
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sunos6*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -ns2 )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-nextstep2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  wince*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=wince
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -nsk*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-nsk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  utek*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # Preserve the version number of sinix5.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sinix5.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=`echo $os | sed -e 's|sinix|sysv|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  dynix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  acis*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=aos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sinix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  atheos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=atheos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -tpf*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-tpf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  syllable*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=syllable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -triton*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  386bsd)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -oss*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ctix* | uts*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -svr4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  nova*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=rtmk-nova
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -svr3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ns2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=nextstep2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sysvr4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Preserve the version number of sinix5.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sinix5.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=`echo $os | sed -e 's|sinix|sysv|'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # This must come after -sysvr4.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -sysv*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sinix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -ose*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tpf*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=tpf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -es1800*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  triton*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -xenix)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-xenix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  oss*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  svr4*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -aros*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-aros
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  svr3)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -zvmoe)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-zvmoe
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sysvr4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -dicos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-dicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ose*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=ose
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -nacl*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=mint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -ios)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  dicos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=dicos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -none)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  pikeos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # Until real need of OS specific support for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # particular features comes up, bare metal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # configurations are quite functional.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case $cpu in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              arm*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  os=eabi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  os=elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          # Get rid of the `-' at the beginning of $os.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=`echo $os | sed 's/[^-]*-//'`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # No normalization, but not necessarily accepted, that comes below.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Here we handle the default operating systems that come with various machines.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1572,264 +1499,352 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # will signal an error saying that MANUFACTURER isn't an operating
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # system, and we'll never get to this point.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++kernel=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $cpu-$vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   score-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   spu-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-acorn)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-riscix1.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=riscix1.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   arm*-rebel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          kernel=linux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=gnu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   arm*-semi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-aout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=aout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   c4x-* | tic4x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   c8051-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  clipper-intergraph)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=clix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hexagon-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tic54x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tic55x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tic6x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # This must come before the *-dec entry.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pdp10-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-tops20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=tops20
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pdp11-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-dec | vax-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-ultrix4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=ultrix4.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   m68*-apollo)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-domain
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=domain
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   i386-sun)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sunos4.0.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sunos4.0.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   m68000-sun)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sunos3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   m68*-cisco)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-aout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=aout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   mep-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   mips*-cisco)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   mips*-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   or32-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-tti)  # must be before sparc entry or we get the wrong os.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sparc-* | *-sun)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sunos4.1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sunos4.1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   pru-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=elf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-be)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-beos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *-haiku)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-haiku
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=beos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-ibm)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-aix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=aix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-knuth)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mmixware
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=mmixware
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-wec)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-winbond)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-oki)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=proelf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-hp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-hpux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=hpux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-hitachi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-hiux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=hiux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-cbm)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-amigaos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=amigaos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-dg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-dgux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=dgux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-dolphin)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   m68k-ccur)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-rtu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=rtu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   m88k-omron*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-luna
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=luna
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *-next )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-nextstep
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-next)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=nextstep
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-sequent)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-ptx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=ptx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-crds)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-unos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=unos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-ns)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-genix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=genix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   i370-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mvs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *-next)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-nextstep3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=mvs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-gould)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-highlevel)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-encore)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=bsd
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-sgi)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-irix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=irix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-siemens)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=sysv4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-masscomp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-rtu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=rtu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   f30[01]-fujitsu | f700-fujitsu)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-uxpv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=uxpv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-rom68k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-*bug)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=coff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-apple)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-macos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=macos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *-atari*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-mint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=mint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-wrs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=vxworks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          os=-none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          os=none
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Now, validate our (potentially fixed-up) OS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Sometimes we do "kernel-abi", so those need to count as OSes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  musl* | newlib* | uclibc*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Likewise for "kernel-libc"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  eabi | eabihf | gnueabi | gnueabihf)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Now accept the basic system types.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # The portable systems comes first.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Each alternative MUST end in a * to match a version number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | hiux* | abug | nacl* | netware* | windows* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | os9* | macos* | osx* | ios* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | mpw* | magic* | mmixware* | mon960* | lnews* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | aos* | aros* | cloudabi* | sortix* | twizzler* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | mirbsd* | netbsd* | dicos* | openedition* | ose* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | udi* | lites* | ieee* | go32* | aux* | hcos* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | chorusrdb* | cegcc* | glidix* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | midipix* | mingw32* | mingw64* | mint* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | uxpv* | beos* | mpeix* | udk* | moxiebox* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | interix* | uwin* | mks* | rhapsody* | darwin* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | openstep* | oskit* | conix* | pw32* | nonstopux* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | storm-chaos* | tops10* | tenex* | tops20* | its* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | skyos* | haiku* | rdos* | toppers* | drops* | es* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       | nsk* | powerunix* | genode* | zvmoe* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # This one is extra strict with allowed versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # Don't forget version if it is 3.2v4 or newer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  none)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# As a final step for OS-related things, validate the OS-kernel combination
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# (given a valid OS), if there is a kernel.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $kernel-$os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  -dietlibc* | -newlib* | -musl* | -uclibc* )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # These are just libc implementations, not actual OSes, and thus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # require a kernel.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  kfreebsd*-gnu* | kopensolaris*-gnu*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  nto-qnx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-eabi* | *-gnueabi*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  -*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          # Blank kernel with real OS is always fine.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Here we handle the case where we know the os, and the CPU type, but not the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # manufacturer.  We pick the logical manufacturer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-vendor=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-case $basic_machine in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *-unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          case $os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -riscix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case $vendor in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  unknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          case $cpu-$os in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-riscix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=acorn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -sunos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-sunos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=sun
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -cnk*|-aix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-cnk* | *-aix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -beos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-beos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -hpux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-hpux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -mpeix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-mpeix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=hp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -hiux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-hiux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -unos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-unos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=crds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -dgux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-dgux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=dg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -luna*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-luna*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=omron
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -genix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-genix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=ns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -mvs* | -opened*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-clix*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          vendor=intergraph
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-mvs* | *-opened*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-os400*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -os400*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  s390-* | s390x-*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -ptx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-ptx*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=sequent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -tpf*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-tpf*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=ibm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -vxsim* | -vxworks* | -windiss*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-vxsim* | *-vxworks* | *-windiss*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=wrs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -aux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-aux*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=apple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -hms*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-hms*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=hitachi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -mpw* | -macos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-mpw* | *-macos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=apple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=atari
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  -vos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  *-vos*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           vendor=stratus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-echo $basic_machine$os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++echo "$cpu-$vendor-${kernel:+$kernel-}$os"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Local variables:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# eval: (add-hook 'write-file-hooks 'time-stamp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# eval: (add-hook 'before-save-hook 'time-stamp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # time-stamp-start: "timestamp='"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # time-stamp-format: "%:y-%02m-%02d"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # time-stamp-end: "'"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur configure libffi-3.3.new/configure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure      2019-11-23 06:59:04.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/configure       2021-01-04 19:48:48.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3082,12 +3082,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test x"${MISSING+set}" != xset; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  case $am_aux_dir in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *\ * | *\       *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  MISSING="\${SHELL} '$am_aux_dir/missing'"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Use eval to expand $SHELL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if eval "$MISSING --is-lightweight"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8413,16 +8408,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     darwin1.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    darwin*) # darwin 5.x on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # if running on 10.5 or later, the deployment target defaults
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # to the OS version, if on x86, and 10.4, the deployment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # target defaults to 10.4. Don't you love it?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  10.0,*86*-darwin8*|10.0,*-darwin[91]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  10.[012][,.]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      case ${MACOSX_DEPLOYMENT_TARGET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  10.[012],*|,*powerpc*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  10.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12042,9 +12032,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # before this can be enabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hardcode_into_libs=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # Add ABI-specific directories to the system library path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Ideally, we could use ldconfig to report *all* directores which are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # searched for libraries, however this is still not possible.  Aside from not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # being certain /sbin/ldconfig is available, command
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -12053,7 +12040,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # appending ld.so.conf contents (and includes) to the search path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test -f /etc/ld.so.conf; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[         ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # We used to test for /lib/ld.so.1 and disable shared libraries on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16007,9 +15994,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # before this can be enabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hardcode_into_libs=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # Add ABI-specific directories to the system library path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Ideally, we could use ldconfig to report *all* directores which are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # searched for libraries, however this is still not possible.  Aside from not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # being certain /sbin/ldconfig is available, command
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -16018,7 +16002,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # appending ld.so.conf contents (and includes) to the search path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test -f /etc/ld.so.conf; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[         ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # We used to test for /lib/ld.so.1 and disable shared libraries on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18411,6 +18395,59 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiler supports pointer authentication" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo_n "checking whether compiler supports pointer authentication... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ${libffi_cv_as_ptrauth+:} false; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  $as_echo_n "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   libffi_cv_as_ptrauth=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* end confdefs.h.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++main ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __clang__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if __has_feature(ptrauth_calls)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  define HAVE_PTRAUTH 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef HAVE_PTRAUTH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# error Pointer authentication not supported
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_ACEOF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if ac_fn_c_try_compile "$LINENO"; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  libffi_cv_as_ptrauth=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  libffi_cv_as_ptrauth=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_ptrauth" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "$libffi_cv_as_ptrauth" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "x$libffi_cv_as_ptrauth" = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "#define HAVE_PTRAUTH 1" >>confdefs.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Set additional defines for Apple Silicon.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case "$target" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    aarch64-apple-darwin* | arm64-apple-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$as_echo "#define FFI_TRAMPOLINE_WHOLE_DYLIB 1" >>confdefs.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check whether --enable-pax_emutramp was given.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if test "${enable_pax_emutramp+set}" = set; then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21144,7 +21181,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ as_fn_error $? "Something went wrong bootstrapping makefile fragments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    for automatic dependency tracking.  Try re-running configure with the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    for automatic dependency tracking.  If GNU make was not used, consider
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    re-running the configure script with MAKE=\"gmake\" (or whatever is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    necessary).  You can also try re-running configure with the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     '--disable-dependency-tracking' option to at least be able to build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     the package (albeit without support for automatic dependency tracking).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ See \`config.log' for more details" "$LINENO" 5; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur configure.ac libffi-3.3.new/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure.ac   2019-11-23 06:58:22.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/configure.ac    2021-01-04 19:48:35.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -176,6 +176,35 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_CACHE_CHECK([whether compiler supports pointer authentication],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   libffi_cv_as_ptrauth, [
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   libffi_cv_as_ptrauth=unknown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   AC_TRY_COMPILE(,[
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __clang__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# if __has_feature(ptrauth_calls)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  define HAVE_PTRAUTH 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef HAVE_PTRAUTH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# error Pointer authentication not supported
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             ],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             [libffi_cv_as_ptrauth=yes],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             [libffi_cv_as_ptrauth=no])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++if test "x$libffi_cv_as_ptrauth" = xyes; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    AC_DEFINE(HAVE_PTRAUTH, 1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        [Define if your compiler supports pointer authentication.])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Set additional defines for Apple Silicon.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++case "$target" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    aarch64-apple-darwin* | arm64-apple-darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  AC_DEFINE([FFI_TRAMPOLINE_WHOLE_DYLIB], 1, [Creating a separate libffi-trampolines.dylib and remapping the entire dylib])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_ARG_ENABLE(pax_emutramp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   [  --enable-pax_emutramp       enable pax emulated trampolines, for we can't use PROT_EXEC],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur depcomp libffi-3.3.new/depcomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- depcomp        2019-11-01 03:30:05.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/depcomp 2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3,7 +3,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ scriptversion=2018-03-07.03; # UTC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1999-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1999-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This program is free software; you can redistribute it and/or modify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # it under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur doc/Makefile.in libffi-3.3.new/doc/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- doc/Makefile.in        2019-11-23 06:59:04.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/doc/Makefile.in 2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Makefile.in generated by automake 1.16.1 from Makefile.am.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Makefile.in generated by automake 1.16.3 from Makefile.am.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # @configure_input@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1994-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This Makefile.in is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur doc/mdate-sh libffi-3.3.new/doc/mdate-sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- doc/mdate-sh   2019-11-01 03:30:05.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/doc/mdate-sh    2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3,7 +3,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ scriptversion=2018-03-07.03; # UTC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1995-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1995-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This program is free software; you can redistribute it and/or modify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur doc/texinfo.tex libffi-3.3.new/doc/texinfo.tex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- doc/texinfo.tex        2019-11-22 10:27:54.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/doc/texinfo.tex 2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,14 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % texinfo.tex -- TeX macros to handle Texinfo files.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Load plain if necessary, i.e., if running under initex.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\texinfoversion{2018-02-12.17}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\texinfoversion{2020-10-24.12}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Copyright 1985, 1986, 1988, 1990-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % This texinfo.tex file is free software: you can redistribute it and/or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % modify it under the terms of the GNU General Public License as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,7 +33,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % The texinfo.tex in any given distribution could well be out
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % of date, so if that's what you're using, please check.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Send bug reports to bug-texinfo@gnu.org.  Please include including a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Send bug reports to bug-texinfo@gnu.org.  Please include a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % complete document in each bug report with which we can reproduce the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % problem.  Patches are, of course, greatly appreciated.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -182,7 +179,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Hyphenation fixes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \hyphenation{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  auto-ma-ti-cal-ly ap-pen-dix bit-map bit-maps
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ap-pen-dix bit-map bit-maps
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   data-base data-bases eshell fall-ing half-way long-est man-u-script
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -221,7 +218,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @errormsg{MSG}.  Do the index-like expansions on MSG, but if things
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % aren't perfect, it's not the end of the world, being an error message,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % after all.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\errormsg{\begingroup \indexnofonts \doerrormsg}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\doerrormsg#1{\errmessage{#1}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -244,17 +241,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\finalout{\overfullrule=0pt }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Do @cropmarks to get crop marks.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newif\ifcropmarks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\let\cropmarks = \cropmarkstrue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Dimensions to add cropmarks at corners.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Added by P. A. MacKay, 12 Nov. 1986
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newdimen\cornerlong  \cornerlong=1pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newdimen\cornerthick \cornerthick=.3pt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newdimen\topandbottommargin \topandbottommargin=.75in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Output a mark which sets \thischapter, \thissection and \thiscolor.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -270,8 +257,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % \domark is called twice inside \chapmacro, to add one
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % mark before the section break, and one after.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-%   In the second call \prevchapterdefs is the same as \lastchapterdefs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% and \prevsectiondefs is the same as \lastsectiondefs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%   In the second call \prevchapterdefs is the same as \currentchapterdefs,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% and \prevsectiondefs is the same as \currentsectiondefs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %   Then if the page is not broken at the mark, some of the previous
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % section appears on the page, and we can get the name of this section
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % from \firstmark for @everyheadingmarks top.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -279,11 +266,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % See page 260 of The TeXbook.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\domark{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \toks0=\expandafter{\lastchapterdefs}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \toks2=\expandafter{\lastsectiondefs}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \toks0=\expandafter{\currentchapterdefs}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \toks2=\expandafter{\currentsectiondefs}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \toks4=\expandafter{\prevchapterdefs}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \toks6=\expandafter{\prevsectiondefs}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \toks8=\expandafter{\lastcolordefs}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \toks8=\expandafter{\currentcolordefs}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \mark{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    \the\toks0 \the\toks2  % 0: marks for @everyheadingmarks top
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \noexpand\or \the\toks4 \the\toks6  % 1: for @everyheadingmarks bottom
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -300,19 +287,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @setcolor (or @url, or @link, etc.) between @contents and the very
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % first @chapter.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\gettopheadingmarks{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifcase0\topmark\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifcase0\the\savedtopmark\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifx\thischapter\empty \ifcase0\firstmark\fi \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\getbottomheadingmarks{\ifcase1\botmark\fi}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\getcolormarks{\ifcase2\topmark\fi}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\getcolormarks{\ifcase2\the\savedtopmark\fi}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Avoid "undefined control sequence" errors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\lastchapterdefs{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\lastsectiondefs{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\lastsection{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\currentchapterdefs{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\currentsectiondefs{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\currentsection{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\prevchapterdefs{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\prevsectiondefs{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\lastcolordefs{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\currentcolordefs{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Margin to add to right of even pages, to left of odd pages.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newdimen\bindingoffset
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -322,51 +309,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Main output routine.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \chardef\PAGE = 255
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\output = {\onepageout{\pagecontents\PAGE}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newtoks\defaultoutput
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\defaultoutput = {\savetopmark\onepageout{\pagecontents\PAGE}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\output=\expandafter{\the\defaultoutput}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newbox\headlinebox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newbox\footlinebox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% When outputting the double column layout for indices, an output routine
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% is run several times, which hides the original value of \topmark.  This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% can lead to a page heading being output and duplicating the chapter heading
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% of the index.  Hence, save the contents of \topmark at the beginning of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% the output routine.  The saved contents are valid until we actually
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \shipout a page.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% (We used to run a short output routine to actually set \topmark and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \firstmark to the right values, but if this was called with an empty page
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% containing whatsits for writing index entries, the whatsits would be thrown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% away and the index auxiliary file would remain empty.)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newtoks\savedtopmark
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newif\iftopmarksaved
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\topmarksavedtrue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\savetopmark{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \iftopmarksaved\else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \global\savedtopmark=\expandafter{\topmark}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \global\topmarksavedtrue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % \onepageout takes a vbox as an argument.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% \shipout a vbox for a single page, adding an optional header, footer,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% cropmarks, and footnote.  This also causes index entries for this page
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% to be written to the auxiliary files.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \shipout a vbox for a single page, adding an optional header, footer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% and footnote.  This also causes index entries for this page to be written
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% to the auxiliary files.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\onepageout#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \hoffset=\normaloffset
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifodd\pageno  \advance\hoffset by \bindingoffset
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else \advance\hoffset by -\bindingoffset\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Common context changes for both heading and footing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Do this outside of the \shipout so @code etc. will be expanded in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % the headline as they should be, not taken literally (outputting ''code).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\commmonheadfootline{\let\hsize=\txipagewidth \texinfochars}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \checkchapterpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Retrieve the information for the headings from the marks in the page,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % and call Plain TeX's \makeheadline and \makefootline, which use the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % values in \headline and \footline.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % This is used to check if we are on the first page of a chapter.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifcase1\topmark\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \let\prevchaptername\thischaptername
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifcase0\firstmark\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \let\curchaptername\thischaptername
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % Common context changes for both heading and footing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % Do this outside of the \shipout so @code etc. will be expanded in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % the headline as they should be, not taken literally (outputting ''code).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\commonheadfootline{\let\hsize=\txipagewidth \texinfochars}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \global\setbox\headlinebox = \vbox{\commonheadfootline \makeheadline}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifx\curchaptername\prevchaptername
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \let\thischapterheading\thischapter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % \thischapterheading is the same as \thischapter except it is blank
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % for the first page of a chapter.  This is to prevent the chapter name 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % being shown twice.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \def\thischapterheading{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \global\setbox\headlinebox = \vbox{\commmonheadfootline \makeheadline}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \global\setbox\footlinebox = \vbox{\commmonheadfootline \makefootline}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \global\setbox\footlinebox = \vbox{\commonheadfootline \makefootline}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Set context for writing to auxiliary files like index files.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -374,37 +371,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % take effect in \write's, yet the group defined by the \vbox ends
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % before the \shipout runs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \indexdummies         % don't expand commands in the output.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \normalturnoffactive  % \ in index entries must not stay \, e.g., if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               % the page break happens to be in the middle of an example.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               % We don't want .vr (or whatever) entries like this:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               % \entry{{\indexbackslash }acronym}{32}{\code {\acronym}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               % "\acronym" won't work when it's read back in;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               % it needs to be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-               % {\code {{\backslashcurfont }acronym}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \atdummies         % don't expand commands in the output.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \turnoffactive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \shipout\vbox{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % Do this early so pdf references go to the beginning of the page.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \ifcropmarks \vbox to \outervsize\bgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \hsize = \outerhsize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \vskip-\topandbottommargin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \vtop to0pt{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \line{\ewtop\hfil\ewtop}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \nointerlineskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \line{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            \vbox{\moveleft\cornerthick\nstop}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            \hfill
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            \vbox{\moveright\cornerthick\nstop}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \vss}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \vskip\topandbottommargin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \line\bgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \hfil % center the page within the outer (page) hsize.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \ifodd\pageno\hskip\bindingoffset\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \vbox\bgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \unvbox\headlinebox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \pagebody{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \ifdim\ht\footlinebox > 0pt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -415,24 +387,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \unvbox\footlinebox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \ifcropmarks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \egroup % end of \vbox\bgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \hfil\egroup % end of (centering) \line\bgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \vskip\topandbottommargin plus1fill minus1fill
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \boxmaxdepth = \cornerthick
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \vbox to0pt{\vss
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \line{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            \vbox{\moveleft\cornerthick\nsbot}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            \hfill
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            \vbox{\moveright\cornerthick\nsbot}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \nointerlineskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \line{\ewbot\hfil\ewbot}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \egroup % \vbox from first cropmarks clause
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }% end of \shipout\vbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }% end of group with \indexdummies
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \global\topmarksavedfalse
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \advancepageno
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifnum\outputpenalty>-20000 \else\dosupereject\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -451,17 +408,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Here are the rules for the cropmarks.  Note that they are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% offset so that the space between them is truly \outerhsize or \outervsize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% (P. A. MacKay, 12 November, 1986)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\nstop{\vbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\nsbot{\vbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Check if we are on the first page of a chapter.  Used for printing headings.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newif\ifchapterpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\checkchapterpage{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % Get the chapter that was current at the end of the last page
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifcase1\the\savedtopmark\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\prevchaptername\thischaptername
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\curchaptername\thischaptername
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifx\curchaptername\prevchaptername
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \chapterpagefalse
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \chapterpagetrue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Argument parsing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -487,11 +449,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% First remove any @comment, then any @c comment.  Also remove a @texinfoc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% comment (see \scanmacro for details).  Pass the result on to \argcheckspaces.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% First remove any @comment, then any @c comment.  Pass the result on to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \argcheckspaces.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\argremovec#1\c#2\ArgTerm{\argremovetexinfoc #1\texinfoc\ArgTerm}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\argremovetexinfoc#1\texinfoc#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1050,7 +1011,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\setfilename=\comment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @bye.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\outer\def\bye{\chappager\pagelabels\tracingstats=1\ptexend}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \message{pdf,}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1092,7 +1053,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             tex.sprint(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               string.format(string.char(0x5c) .. string.char(0x25) .. '03o' ..
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             string.char(0x5c) .. string.char(0x25) .. '03o',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                            (c / 256), (c % 256)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                            math.floor(c / 256), math.floor(c % 256)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             c = c - 0x10000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             local c_hi = c / 1024 + 0xd800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1102,8 +1063,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             string.char(0x5c) .. string.char(0x25) .. '03o' ..
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             string.char(0x5c) .. string.char(0x25) .. '03o' ..
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             string.char(0x5c) .. string.char(0x25) .. '03o',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                            (c_hi / 256), (c_hi % 256),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                            (c_lo / 256), (c_lo % 256)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                            math.floor(c_hi / 256), math.floor(c_hi % 256),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                            math.floor(c_lo / 256), math.floor(c_lo % 256)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1116,15 +1077,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       function PDFescstr(str)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         for c in string.bytes(str) do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if c <= 0x20 or c >= 0x80 or c == 0x28 or c == 0x29 or c == 0x5c then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            tex.sprint(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            tex.sprint(-2,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               string.format(string.char(0x5c) .. string.char(0x25) .. '03o',
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             c))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            tex.sprint(string.char(c))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            tex.sprint(-2, string.char(c))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % The -2 in the arguments here gives all the input to TeX catcode 12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % (other) or 10 (space), preventing undefined control sequence errors. See
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % https://lists.gnu.org/archive/html/bug-texinfo/2019-08/msg00031.html
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \endgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\pdfescapestring#1{\directlua{PDFescstr('\luaescapestring{#1}')}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifnum\luatexversion>84
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1163,11 +1128,60 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newif\ifpdforxetex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\pdforxetexfalse
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\ifpdf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \pdforxetextrue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\ifx\XeTeXrevision\thisisundefined\else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \pdforxetextrue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Output page labels information.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% See PDF reference v.1.7 p.594, section 8.3.1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\ifpdf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\pagelabels{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\title{0 << /P (T-) /S /D >>}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \edef\roman{\the\romancount << /S /r >>}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \edef\arabic{\the\arabiccount << /S /D >>}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % Page label ranges must be increasing.  Remove any duplicates.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % (There is a slight chance of this being wrong if e.g. there is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % a @contents but no @titlepage, etc.)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifnum\romancount=0 \def\roman{}\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifnum\arabiccount=0 \def\title{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \ifnum\romancount=\arabiccount \def\roman{}\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifnum\romancount<\arabiccount
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \pdfcatalog{/PageLabels << /Nums [\title \roman \arabic ] >> }\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \pdfcatalog{/PageLabels << /Nums [\title \arabic \roman ] >> }\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\pagelabels\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newcount\pagecount \pagecount=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newcount\romancount \romancount=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newcount\arabiccount \arabiccount=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\ifpdf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\ptxadvancepageno\advancepageno
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\advancepageno{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \ptxadvancepageno\global\advance\pagecount by 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % PDF uses PostScript string constants for the names of xref targets,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % for display in the outlines, and in other places.  Thus, we have to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % double any backslashes.  Otherwise, a name like "\node" will be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % interpreted as a newline (\n), followed by o, d, e.  Not good.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % related messages.  The final outcome is that it is up to the TeX user
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % to double the backslashes and otherwise make the string valid, so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1219,7 +1233,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Set color, and create a mark which defines \thiscolor accordingly,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % so that \makeheadline knows which color to restore.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\setcolor#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \domark
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \pdfsetcolor{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1227,7 +1241,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\maincolor{\rgbBlack}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \pdfsetcolor{\maincolor}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \edef\thiscolor{\maincolor}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\lastcolordefs{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\currentcolordefs{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\makefootline{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \baselineskip24pt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1453,7 +1467,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % subentries, which we calculated on our first read of the .toc above.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % We use the node names as the destinations.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % Currently we prefix the section name with the section number
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % for chapter and appendix headings only in order to avoid too much
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % horizontal space being required in the PDF viewer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \def\numchapentry##1##2##3##4{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \dopdfoutline{##2 ##1}{count-\expnumber{chap##2}}{##3}{##4}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \def\unnchapentry##1##2##3##4{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \def\numsecentry##1##2##3##4{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1472,7 +1492,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % their "best" equivalent, based on the @documentencoding.  Too
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % much work for too little return.  Just use the ASCII equivalents
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % we use for the index sort strings.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \indexnofonts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \setupdatafile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % We can have normal brace characters in the PDF outlines, unlike
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1528,6 +1548,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \startlink attr{/Border [0 0 0]}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \endgroup}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % \pdfgettoks - Surround page numbers in #1 with @pdflink.  #1 may
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % be a simple number, or a list of numbers in the case of an index
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % entry.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1602,7 +1625,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Set color, and create a mark which defines \thiscolor accordingly,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % so that \makeheadline knows which color to restore.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\setcolor#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \xdef\currentcolordefs{\gdef\noexpand\thiscolor{#1}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \domark
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \pdfsetcolor{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1610,7 +1633,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\maincolor{\rgbBlack}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \pdfsetcolor{\maincolor}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \edef\thiscolor{\maincolor}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\lastcolordefs{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\currentcolordefs{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\makefootline{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \baselineskip24pt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1692,9 +1715,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % Therefore, we read toc only once.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % We use node names as destinations.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % Currently we prefix the section name with the section number
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % for chapter and appendix headings only in order to avoid too much
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % horizontal space being required in the PDF viewer.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \def\partentry##1##2##3##4{}% ignore parts in the outlines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \def\numchapentry##1##2##3##4{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \dopdfoutline{##1}{1}{##3}{##4}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \dopdfoutline{##2 ##1}{1}{##3}{##4}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \def\numsecentry##1##2##3##4{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \dopdfoutline{##1}{2}{##3}{##4}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \def\numsubsecentry##1##2##3##4{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1706,7 +1733,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \let\appsecentry\numsecentry%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \let\appsubsecentry\numsubsecentry%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \let\appsubsubsecentry\numsubsubsecentry%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \let\unnchapentry\numchapentry%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \def\unnchapentry##1##2##3##4{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \dopdfoutline{##1}{1}{##3}{##4}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \let\unnsecentry\numsecentry%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \let\unnsubsecentry\numsubsecentry%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \let\unnsubsubsecentry\numsubsubsecentry%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2202,7 +2230,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % A few fonts for @defun names and args.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \setfont\defbf\bfshape{10}{\magstep1}{OT1}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\setfont\defsl\slshape{10}{\magstep1}{OT1TT}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\setfont\defsl\slshape{10}{\magstep1}{OT1}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\df{\let\ttfont=\deftt \let\bffont = \defbf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\ttslfont=\defttsl \let\slfont=\defsl \bf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2350,7 +2378,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % A few fonts for @defun names and args.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \setfont\defbf\bfshape{10}{\magstephalf}{OT1}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\setfont\defsl\slshape{10}{\magstephalf}{OT1TT}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\setfont\defsl\slshape{10}{\magstephalf}{OT1}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\df{\let\ttfont=\deftt \let\bffont = \defbf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\slfont=\defsl \let\ttslfont=\defttsl \bf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2519,7 +2547,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\it{\fam=\itfam \setfontstyle{it}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\sl{\fam=\slfam \setfontstyle{sl}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\tt{\fam=\ttfam \setfontstyle{tt}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\tt{\fam=\ttfam \setfontstyle{tt}}\def\ttstylename{tt}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Texinfo sort of supports the sans serif font style, which plain TeX does not.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % So we set up a \sf.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2753,7 +2781,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Commands to set the quote options.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \parseargdef\codequoteundirected{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\temp{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifx\temp\onword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2794,7 +2822,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % If we are in a monospaced environment, however, 1) always use \ttsl,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % and 2) do not add an italic correction.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\dosmartslant#1#2{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifusingtt 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifusingtt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {{\ttsl #2}\let\next=\relax}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \next
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2873,7 +2901,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @t, explicit typewriter.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\t#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {\tt \rawbackslash \plainfrenchspacing #1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {\tt \plainfrenchspacing #1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2900,7 +2928,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Turn off hyphenation.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \nohyphenation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \rawbackslash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \plainfrenchspacing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #1%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2942,14 +2969,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \gdef\codedash{\futurelet\next\codedashfinish}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \gdef\codedashfinish{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \normaldash % always output the dash character itself.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Now, output a discretionary to allow a line break, unless
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % (a) the next character is a -, or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % (b) the preceding character is a -.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % E.g., given --posix, we do not want to allow a break after either -.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Given --foo-bar, we do want to allow a break between the - and the b.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \ifx\next\codedash \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \ifx\codedashprev\codedash 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \ifx\codedashprev\codedash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \else \discretionary{}{}{}\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % we need the space after the = for the case when \next itself is a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3011,10 +3038,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % arg (if given), and not the url (which is then just the link target).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newif\ifurefurlonlylink
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% The default \pretolerance setting stops the penalty inserted in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \urefallowbreak being a discouragement to line breaking.  Set it to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% a negative value for this paragraph only.  Hopefully this does not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% conflict with redefinitions of \par done elsewhere.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\nopretolerance{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\pretolerance=-1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\par{\endgraf\pretolerance=100 \let\par\endgraf}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % The main macro is \urefbreak, which allows breaking at expected
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% places within the url.  (There used to be another version, which
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% didn't support automatic breaking.)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\urefbreak{\begingroup \urefcatcodes \dourefbreak}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% places within the url.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\urefbreak{\nopretolerance \begingroup \urefcatcodes \dourefbreak}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\uref=\urefbreak
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\dourefbreak#1{\urefbreakfinish #1,,,\finish}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3031,7 +3066,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         % For pdfTeX and LuaTeX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \ifurefurlonlylink
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           % PDF plus option to not display url, show just arg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \unhbox0             
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          \unhbox0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           % PDF, normally display both arg and url for consistency,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           % visibility, if the pdf is eventually used to print, etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3044,7 +3079,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           % For XeTeX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           \ifurefurlonlylink
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             % PDF plus option to not display url, show just arg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            \unhbox0             
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            \unhbox0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             % PDF, normally display both arg and url for consistency,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             % visibility, if the pdf is eventually used to print, etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3087,41 +3122,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \global\def/{\normalslash}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% we put a little stretch before and after the breakable chars, to help
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% line breaking of long url's.  The unequal skips make look better in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% cmtt at least, especially for dots.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\urefprestretchamount{.13em}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\urefpoststretchamount{.1em}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\urefprestretch{\urefprebreak \hskip0pt plus\urefprestretchamount\relax}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\urefpoststretch{\urefpostbreak \hskip0pt plus\urefprestretchamount\relax}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\urefcodeamp{\urefprestretch \&\urefpoststretch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\urefcodedot{\urefprestretch .\urefpoststretch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\urefcodehash{\urefprestretch \#\urefpoststretch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\urefcodequest{\urefprestretch ?\urefpoststretch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\urefcodeamp{\urefprebreak \&\urefpostbreak}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\urefcodedot{\urefprebreak .\urefpostbreak}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\urefcodehash{\urefprebreak \#\urefpostbreak}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\urefcodequest{\urefprebreak ?\urefpostbreak}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\urefcodeslash{\futurelet\next\urefcodeslashfinish}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\/=\active
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \global\def\urefcodeslashfinish{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \urefprestretch \slashChar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \urefprebreak \slashChar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Allow line break only after the final / in a sequence of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % slashes, to avoid line break between the slashes in http://.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \ifx\next/\else \urefpoststretch \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \ifx\next/\else \urefpostbreak \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% One more complication: by default we'll break after the special
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% characters, but some people like to break before the special chars, so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% allow that.  Also allow no breaking at all, for manual control.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% By default we'll break after the special characters, but some people like to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% break before the special chars, so allow that.  Also allow no breaking at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% all, for manual control.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \parseargdef\urefbreakstyle{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\txiarg{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifx\txiarg\wordnone
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else\ifx\txiarg\wordbefore
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \def\urefprebreak{\urefallowbreak}\def\urefpostbreak{\nobreak}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else\ifx\txiarg\wordafter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \def\urefprebreak{\nobreak}\def\urefpostbreak{\urefallowbreak}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \errhelp = \EMsimple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \errmessage{Unknown @urefbreakstyle setting `\txiarg'}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3131,6 +3158,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\wordbefore{before}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\wordnone{none}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Allow a ragged right output to aid breaking long URL's.  There can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% be a break at the \allowbreak with no extra glue (if the existing stretch in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% the line is sufficient), a break at the \penalty with extra glue added
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% at the end of the line, or no break at all here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%   Changing the value of the penalty and/or the amount of stretch affects how
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% preferable one choice is over the other.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\urefallowbreak{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \penalty0\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \hskip 0pt plus 2 em\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \penalty1000\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \hskip 0pt plus -2 em\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \urefbreakstyle after
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @url synonym for @uref, since that's how everyone uses it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3141,7 +3181,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % So now @email is just like @uref, unless we are pdf.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %\def\email#1{\angleleft{\tt #1}\angleright}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\ifpdf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\ifpdforxetex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\email#1{\doemail#1,,\finish}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\doemail#1,#2,#3\finish{\begingroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \unsepspaces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3151,18 +3191,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \endlink
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \endgroup}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifx\XeTeXrevision\thisisundefined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \let\email=\uref
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \def\email#1{\doemail#1,,\finish}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \def\doemail#1,#2,#3\finish{\begingroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \unsepspaces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \pdfurl{mailto:#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \setbox0 = \hbox{\ignorespaces #2}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \endlink
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \endgroup}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\email=\uref
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3335,10 +3364,29 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\sup{\ifmmode \expandafter\ptexsp \else \expandafter\finishsup\fi}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\finishsup#1{$\ptexsp{\hbox{\switchtolllsize #1}}$}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% provide this command from LaTeX as it is very common
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\frac#1#2{{{#1}\over{#2}}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% @displaymath.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \globaldefs is needed to recognize the end lines in \tex and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \end tex.  Set \thisenv as @end displaymath is seen before @end tex.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{\obeylines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\globaldefs=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\envdef\displaymath{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\tex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\thisenv{\displaymath}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++$$%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\Edisplaymath{$$
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\thisenv{\tex}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\end tex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % except specified as a normal braced arg, so no newlines to worry about.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\outfmtnametex{tex}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \long\def\inlinefmt#1{\doinlinefmt #1,\finish}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3346,7 +3394,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\inlinefmtname{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % FMTNAME is tex, else ELSE-TEXT.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3362,7 +3410,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % *right* brace they would have to use a command anyway, so they may as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % well use a command to get a left brace too.  We could re-use the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % delimiter character idea from \verb, but it seems like overkill.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \long\def\inlineraw{\tex \doinlineraw}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \long\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\doinlinerawtwo#1,#2,\finish{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3539,7 +3587,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @pounds{} is a sterling sign, which Knuth put in the CM italic font.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\pounds{{\it\$}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\pounds{\ifmonospace{\ecfont\char"BF}\else{\it\$}\fi}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @euro{} comes from a separate font, depending on the current style.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % We use the free feym* fonts from the eurosym package by Henrik
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3639,7 +3687,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % for non-CM glyphs.  That is ec* for regular text and tc* for the text
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % companion symbols (LaTeX TS1 encoding).  Both are part of the ec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % package and follow the same conventions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\ecfont{\etcfont{e}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\tcfont{\etcfont{t}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3688,11 +3736,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Quotes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\chardef\quotedblleft="5C
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\chardef\quotedblright=`\"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \chardef\quoteleft=`\`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \chardef\quoteright=`\'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% only change font for tt for correct kerning and to avoid using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \ecfont unless necessary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\quotedblleft{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifmonospace{\ecfont\char"10}\else{\char"5C}\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\quotedblright{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifmonospace{\ecfont\char"11}\else{\char`\"}\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \message{page headings,}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3711,7 +3767,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               after the title page.}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\setshortcontentsaftertitlepage{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \errmessage{@setshortcontentsaftertitlepage has been removed as a Texinfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              command; move your @shortcontents and @contents commands if you 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              command; move your @shortcontents and @contents commands if you
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               want the contents after the title page.}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \parseargdef\shorttitlepage{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3766,7 +3822,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % don't worry much about spacing, ragged right.  This should be used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % inside a \vbox, and fonts need to be set appropriately first. \par should
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % be specified before the end of the \vbox, since a vbox is a group.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\raggedtitlesettings{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \rm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \hyphenpenalty=10000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3814,12 +3870,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newtoks\evenheadline    % headline on even pages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newtoks\oddheadline     % headline on odd pages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newtoks\evenchapheadline% headline on even pages with a new chapter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newtoks\oddchapheadline % headline on odd pages with a new chapter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newtoks\evenfootline    % footline on even pages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newtoks\oddfootline     % footline on odd pages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Now make \makeheadline and \makefootline in Plain TeX use those variables
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                            \else \the\evenheadline \fi}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\headline={{\textfonts\rm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            \ifchapterpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              \ifodd\pageno\the\oddchapheadline\else\the\evenchapheadline\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              \ifodd\pageno\the\oddheadline\else\the\evenheadline\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            \fi}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             \else \the\evenfootline \fi}\HEADINGShook}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\HEADINGShook=\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3835,12 +3898,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\evenheading{\parsearg\evenheadingxxx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\evenheadingyyy #1\|#2\|#3\|#4\finish{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \global\evenchapheadline=\evenheadline}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\oddheading{\parsearg\oddheadingxxx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\oddheadingyyy #1\|#2\|#3\|#4\finish{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \global\oddchapheadline=\oddheadline}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3907,37 +3972,34 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \parseargdef\headings{\csname HEADINGS#1\endcsname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\headingsoff{% non-global headings elimination
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \evenheadline={\hfil}\evenfootline={\hfil}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   \oddheadline={\hfil}\oddfootline={\hfil}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \evenheadline={\hfil}\evenfootline={\hfil}\evenchapheadline={\hfil}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   \oddheadline={\hfil}\oddfootline={\hfil}\oddchapheadline={\hfil}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \HEADINGSoff  % it's the default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % When we turn headings on, set the page number to 1.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\pageone{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \global\pageno=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \global\arabiccount = \pagecount
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % For double-sided printing, put current file name in lower left corner,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % chapter name on inside top of right hand pages, document
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % title on inside top of left hand pages, and page numbers on outside top
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % edge of all pages.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\HEADINGSdouble{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\pageno=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\evenfootline={\hfil}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\oddfootline={\hfil}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\evenheadline={\line{\folio\hfil\thistitle}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\oddheadline={\line{\thischapterheading\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\let\contentsalignmacro = \chapoddpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\pageone
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\HEADINGSdoublex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\contentsalignmacro = \chappager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % For single-sided printing, chapter title goes across top left of page,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % page number on top right.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\HEADINGSsingle{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\pageno=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\evenfootline={\hfil}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\oddfootline={\hfil}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\evenheadline={\line{\thischapterheading\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\oddheadline={\line{\thischapterheading\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\let\contentsalignmacro = \chappager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\pageone
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\HEADINGSsinglex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\HEADINGSon{\HEADINGSdouble}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3947,7 +4009,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\evenfootline={\hfil}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\oddfootline={\hfil}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\evenheadline={\line{\folio\hfil\thistitle}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\oddheadline={\line{\thischapterheading\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\oddheadline={\line{\thischapter\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\evenchapheadline={\line{\folio\hfil}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\oddchapheadline={\line{\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\let\contentsalignmacro = \chapoddpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3955,8 +4019,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\HEADINGSsinglex{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\evenfootline={\hfil}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\oddfootline={\hfil}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\evenheadline={\line{\thischapterheading\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\oddheadline={\line{\thischapterheading\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\evenheadline={\line{\thischapter\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\oddheadline={\line{\thischapter\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\evenchapheadline={\line{\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\oddchapheadline={\line{\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\let\contentsalignmacro = \chappager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% for @setchapternewpage off
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\HEADINGSsinglechapoff{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\pageone
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\evenfootline={\hfil}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\oddfootline={\hfil}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\evenheadline={\line{\thischapter\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\oddheadline={\line{\thischapter\hfil\folio}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\evenchapheadline=\evenheadline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\oddchapheadline=\oddheadline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\let\contentsalignmacro = \chappager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4389,7 +4467,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % multitable-only commands.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @headitem starts a heading row, which we typeset in bold.  Assignments
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % have to be global since we are inside the implicit group of an
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % alignment entry.  \everycr below resets \everytab so we don't have to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4696,19 +4774,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% We have this subroutine so that we can handle at least some @value's
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% properly in indexes (we call \makevalueexpandable in \indexdummies).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% The command has to be fully expandable (if the variable is set), since
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% the result winds up in the index file.  This means that if the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% variable's value contains other Texinfo commands, it's almost certain
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% it will fail (although perhaps we could fix that with sufficient work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% to do a one-level expansion on the result, instead of complete).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Unfortunately, this has the consequence that when _ is in the *value*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% of an @set, it does not print properly in the roman fonts (get the cmr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% dot accent at position 126 instead).  No fix comes to mind, and it's
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% been this way since 2003 or earlier, so just ignore it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\expandablevalue#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \expandafter\ifx\csname SET#1\endcsname\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {[No value for ``#1'']}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4721,13 +4786,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Like \expandablevalue, but completely expandable (the \message in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % definition above operates at the execution level of TeX).  Used when
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % writing to auxiliary files, due to the expansion that \write does.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% If flag is undefined, pass through an unexpanded @value command: maybe it 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% If flag is undefined, pass through an unexpanded @value command: maybe it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % will be set by the time it is read back in.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % NB flag names containing - or _ may not work here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\dummyvalue#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \expandafter\ifx\csname SET#1\endcsname\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \noexpand\value{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \string\value{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \csname SET#1\endcsname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4737,7 +4802,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % if possible, otherwise sort late.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\indexnofontsvalue#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \expandafter\ifx\csname SET#1\endcsname\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ZZZZZZZ
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ZZZZZZZ%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \csname SET#1\endcsname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4745,7 +4810,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % with @set.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % To get the special treatment we need for `@end ifset,' we call
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % \makecond and then redefine.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4778,7 +4843,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % without the @) is in fact defined.  We can only feasibly check at the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % TeX level, so something like `mathcode' is going to considered
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % defined even though it is not a Texinfo command.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \makecond{ifcommanddefined}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4884,32 +4949,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % like the previous two, but they put @code around the argument.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\docodeindexxxx #1{\docind{\indexname}{#1}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Used when writing an index entry out to an index file to prevent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% expansion of Texinfo commands that can appear in an index entry.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\indexdummies{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \escapechar = `\\     % use backslash in output files.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \definedummyletter\@%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \definedummyletter\ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % For texindex which always views { and } as separators.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\{{\lbracechar{}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\}{\rbracechar{}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Do the redefinitions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \definedummies
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Used for the aux and toc files, where @ is the escape character.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Used for the aux, toc and index files to prevent expansion of Texinfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% commands.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\atdummies{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummyletter\@%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummyletter\ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummyletter\{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummyletter\}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \definedummyletter\&%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Do the redefinitions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummies
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4933,8 +4984,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\definedummyletter#1{\def#1{\string#1}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\definedummyaccent\definedummyletter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Called from \indexdummies and \atdummies, to effectively prevent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% the expansion of commands.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Called from \atdummies to prevent the expansion of commands.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\definedummies{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4981,8 +5031,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummyword\TeX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Assorted special characters.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \definedummyword\ampchar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummyword\atchar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummyword\arrow
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \definedummyword\backslashchar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummyword\bullet
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummyword\comma
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummyword\copyright
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5019,6 +5071,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummyword\sup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \definedummyword\textdegree
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \definedummyword\subentry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % We want to disable all macros so that they are not expanded by \write.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \macrolist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \let\value\dummyvalue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5099,11 +5153,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \commondummyword\xref
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% For testing: output @{ and @} in index sort strings as \{ and \}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newif\ifusebracesinindexes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\indexlbrace\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\indexrbrace\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\let\indexatchar\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\let\indexbackslash\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {\catcode`\@=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \catcode`\\=13
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5137,10 +5190,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \gdef\indexnonalnumreappear{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \useindexbackslash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \let-\normaldash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \let<\normalless
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \def\@{@}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5174,64 +5225,66 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \let\lbracechar\{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \let\rbracechar\}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\do\indexnofontsdef
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Non-English letters.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\AA{AA}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\AE{AE}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\DH{DZZ}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\L{L}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\OE{OE}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\O{O}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\TH{TH}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\aa{aa}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\ae{ae}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\dh{dzz}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\exclamdown{!}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\l{l}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\oe{oe}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\ordf{a}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\ordm{o}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\o{o}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\questiondown{?}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\ss{ss}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\th{th}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\LaTeX{LaTeX}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\TeX{TeX}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Assorted special characters.  \defglyph gives the control sequence a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % definition that removes the {} that follows its use.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\atchar{@}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\arrow{->}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\bullet{bullet}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\comma{,}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\copyright{copyright}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\dots{...}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\enddots{...}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\equiv{==}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\error{error}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\euro{euro}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\expansion{==>}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\geq{>=}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\guillemetleft{<<}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\guillemetright{>>}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\guilsinglleft{<}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\guilsinglright{>}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\leq{<=}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\lbracechar{\{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\minus{-}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\point{.}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\pounds{pounds}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\print{-|}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\quotedblbase{"}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\quotedblleft{"}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\quotedblright{"}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\quoteleft{`}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\quoteright{'}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\quotesinglbase{,}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\rbracechar{\}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\registeredsymbol{R}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\result{=>}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \defglyph\textdegree{o}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\AA{AA}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\AE{AE}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\DH{DZZ}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\L{L}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\OE{OE}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\O{O}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\TH{TH}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\aa{aa}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\ae{ae}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\dh{dzz}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\exclamdown{!}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\l{l}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\oe{oe}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\ordf{a}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\ordm{o}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\o{o}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\questiondown{?}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\ss{ss}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\th{th}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\LaTeX{LaTeX}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\TeX{TeX}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % Assorted special characters.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\atchar{@}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\arrow{->}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\bullet{bullet}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\comma{,}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\copyright{copyright}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\dots{...}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\enddots{...}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\equiv{==}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\error{error}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\euro{euro}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\expansion{==>}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\geq{>=}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\guillemetleft{<<}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\guillemetright{>>}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\guilsinglleft{<}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\guilsinglright{>}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\leq{<=}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\lbracechar{\{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\minus{-}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\point{.}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\pounds{pounds}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\print{-|}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\quotedblbase{"}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\quotedblleft{"}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\quotedblright{"}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\quoteleft{`}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\quoteright{'}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\quotesinglbase{,}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\rbracechar{\}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\registeredsymbol{R}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\result{=>}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \do\textdegree{o}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % We need to get rid of all macros, leaving only the arguments (if present).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Of course this is not nearly correct, but it is the best we can do for now.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5246,41 +5299,38 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \macrolist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \let\value\indexnofontsvalue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\defglyph#1#2{\def#1##1{#2}} % see above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Give the control sequence a definition that removes the {} that follows
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% its use, e.g. @AA{} -> AA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\indexnofontsdef#1#2{\def#1##1{#2}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Most index entries go through here, but \dosubind is the general case.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% #1 is the index name, #2 is the entry text.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\doind#1#2{\dosubind{#1}{#2}{}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% There is also \dosubind {index}{topic}{subtopic}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% which makes an entry in a two-level index such as the operation index.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% TODO: Two-level index?  Operation index?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Workhorse for all indexes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% #1 is name of index, #2 is stuff to put there, #3 is subentry --
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% empty if called from \doind, as we usually are (the main exception
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% is with most defuns, which call us directly).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\dosubind#1#2#3{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% #1 is the index name, #2 is the entry text.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\doind#1#2{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \iflinks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \requireopenindexfile{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % Store the main index entry text (including the third arg).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \toks0 = {#2}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % If third arg is present, precede it with a space.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \def\thirdarg{#3}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \ifx\thirdarg\empty \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \toks0 = \expandafter{\the\toks0 \space #3}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \edef\writeto{\csname#1indfile\endcsname}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \def\indextext{#2}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \safewhatsit\doindwrite
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Same as \doind, but for code indices
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\docind#1#2{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \iflinks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \requireopenindexfile{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \edef\writeto{\csname#1indfile\endcsname}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \safewhatsit\dosubindwrite
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \def\indextext{#2}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \safewhatsit\docindwrite
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5295,28 +5345,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifx\suffix\indexisfl\def\suffix{f1}\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Open the file
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \immediate\openout\csname#1indfile\endcsname \jobname.\suffix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Using \immediate above here prevents an object entering into the current 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % Using \immediate above here prevents an object entering into the current
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % box, which could confound checks such as those in \safewhatsit for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % preceding skips.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \typeout{Writing index file \jobname.\suffix}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \fi}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\indexisfl{fl}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Output \ as {\indexbackslash}, because \ is an escape character in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% the index files.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\let\indexbackslash=\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{\catcode`\@=0 \catcode`\\=\active
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  @gdef@useindexbackslash{@def\{{@indexbackslash}}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Definition for writing index entry text.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\sortas#1{\ignorespaces}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Definition for writing index entry sort key.  Should occur at the at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% the beginning of the index entry, like
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-%     @cindex @sortas{september} \september
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% The \ignorespaces takes care of following space, but there's no way
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% to remove space before it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Definition for writing index entry sort key.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \catcode`\-=13
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \gdef\indexwritesortas{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5327,51 +5363,158 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \xdef\indexsortkey{#1}\endgroup}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\indexwriteseealso#1{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \gdef\pagenumbertext{\string\seealso{#1}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\indexwriteseeentry#1{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \gdef\pagenumbertext{\string\seeentry{#1}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% The default definitions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\sortas#1{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\seealso#1{\i{\putwordSeeAlso}\ #1}% for sorted index file only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\putwordSeeAlso{See also}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\seeentry#1{\i{\putwordSee}\ #1}% for sorted index file only
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Write the entry in \toks0 to the index file.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Given index entry text like "aaa @subentry bbb @sortas{ZZZ}":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%   * Set \bracedtext to "{aaa}{bbb}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%   * Set \fullindexsortkey to "aaa @subentry ZZZ"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%   * If @seealso occurs, set \pagenumbertext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\dosubindwrite{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Put the index entry in the margin if desired.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifx\SETmarginindex\relax\else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\splitindexentry#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \gdef\fullindexsortkey{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \xdef\bracedtext{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\sep{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\seealso##1{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\seeentry##1{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \expandafter\doindexsegment#1\subentry\finish\subentry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% append the results from the next segment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\doindexsegment#1\subentry{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\segment{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifx\segment\isfinish
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % Fully expand the segment, throwing away any @sortas directives, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % trim spaces.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \edef\trimmed{\segment}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \ifincodeindex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \edef\trimmed{\noexpand\code{\trimmed}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \xdef\bracedtext{\bracedtext{\trimmed}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % Get the string to sort by.  Process the segment with all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % font commands turned off.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \bgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \let\sortas\indexwritesortas
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \let\seealso\indexwriteseealso
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \let\seeentry\indexwriteseeentry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \indexnofonts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % The braces around the commands are recognized by texindex.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \def\lbracechar{{\string\indexlbrace}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \def\rbracechar{{\string\indexrbrace}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \let\{=\lbracechar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \let\}=\rbracechar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \def\@{{\string\indexatchar}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \def\atchar##1{\@}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \def\backslashchar{{\string\indexbackslash}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \uccode`\~=`\\ \uppercase{\let~\backslashchar}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \let\indexsortkey\empty
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \global\let\pagenumbertext\empty
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % Execute the segment and throw away the typeset output.  This executes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % any @sortas or @seealso commands in this segment.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \setbox\dummybox = \hbox{\segment}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \ifx\indexsortkey\empty{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \indexnonalnumdisappear
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \xdef\trimmed{\segment}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \xdef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \xdef\indexsortkey{\trimmed}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % Append to \fullindexsortkey.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \edef\tmp{\gdef\noexpand\fullindexsortkey{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  \fullindexsortkey\sep\indexsortkey}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \tmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \egroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \def\sep{\subentry}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \expandafter\doindexsegment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\isfinish{\finish}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newbox\dummybox % used above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\let\subentry\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Use \ instead of @ in index files.  To support old texi2dvi and texindex.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% This works without changing the escape character used in the toc or aux
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% files because the index entries are fully expanded here, and \string uses
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% the current value of \escapechar.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\escapeisbackslash{\escapechar=`\\}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Use \ in index files by default.  texi2dvi didn't support @ as the escape
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% character (as it checked for "\entry" in the files, and not "@entry").  When
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% the new version of texi2dvi has had a chance to become more prevalent, then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% the escape character can change back to @ again.  This should be an easy
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% change to make now because both @ and \ are only used as escape characters in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% index files, never standing for themselves.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\set txiindexescapeisbackslash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Write the entry in \indextext to the index file.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newif\ifincodeindex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\doindwrite{\incodeindexfalse\doindwritex}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\docindwrite{\incodeindextrue\doindwritex}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\doindwritex{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \maybemarginindex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Remember, we are within a group.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \indexdummies % Must do this here, since \bf, etc expand at this stage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \useindexbackslash % \indexbackslash isn't defined now so it will be output 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                     % as is; and it will print as backslash.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % The braces around \indexbrace are recognized by texindex.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Get the string to sort by, by processing the index entry with all
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % font commands turned off.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {\indexnofonts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   \def\lbracechar{{\indexlbrace}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   \def\rbracechar{{\indexrbrace}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   \let\{=\lbracechar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   \let\}=\rbracechar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   \indexnonalnumdisappear
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   \xdef\indexsortkey{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   \let\sortas=\indexwritesortas
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   \edef\temp{\the\toks0}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   \setbox\dummybox = \hbox{\temp}% Make sure to execute any \sortas
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   \ifx\indexsortkey\empty
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     \xdef\indexsortkey{\temp}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     \ifx\indexsortkey\empty\xdef\indexsortkey{ }\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \atdummies
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \expandafter\ifx\csname SETtxiindexescapeisbackslash\endcsname\relax\else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \escapeisbackslash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % For texindex which always views { and } as separators.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\{{\lbracechar{}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\}{\rbracechar{}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \uccode`\~=`\\ \uppercase{\def~{\backslashchar{}}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % Split the entry into primary entry and any subentries, and get the index
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % sort key.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \splitindexentry\indextext
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Set up the complete index entry, with both the sort key and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % the original text, including any font commands.  We write
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % three arguments to \entry to the .?? file (four in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % subentry case), texindex reduces to two when writing the .??s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % sorted result.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \edef\temp{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \write\writeto{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \string\entry{\indexsortkey}{\noexpand\folio}{\the\toks0}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \string\entry{\fullindexsortkey}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        {\ifx\pagenumbertext\empty\noexpand\folio\else\pagenumbertext\fi}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \bracedtext}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \temp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newbox\dummybox % used above
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Put the index entry in the margin if desired (undocumented).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\maybemarginindex{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifx\SETmarginindex\relax\else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \relax\indextext}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\let\SETmarginindex=\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Take care of unwanted page breaks/skips around a whatsit:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5459,9 +5602,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %  \entry {topic}{pagelist}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %     for a topic that is used without subtopics
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %  \primary {topic}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%  \entry {topic}{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %     for the beginning of a topic that is used with subtopics
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %  \secondary {subtopic}{pagelist}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %     for each subtopic.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%  \secondary {subtopic}{}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%     for a subtopic with sub-subtopics
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%  \tertiary {subtopic}{subsubtopic}{pagelist}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%     for each sub-subtopic.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Define the user-accessible indexing commands
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @findex, @vindex, @kindex, @cindex.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5473,11 +5621,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\tindex {\tpindex}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\pindex {\pgindex}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\cindexsub {\begingroup\obeylines\cindexsub}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{\obeylines %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\gdef\cindexsub "#1" #2^^M{\endgroup %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\dosubind{cp}{#2}{#1}}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Define the macros used in formatting output of the sorted index material.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @printindex causes a particular index (the ??s file) to get printed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5491,14 +5634,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \plainfrenchspacing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \everypar = {}% don't want the \kern\-parindent from indentation suppression.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % See if the index file exists and is nonempty.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Change catcode of @ here so that if the index file contains
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % \initial {@}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % as its first line, TeX doesn't complain about mismatched braces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % (because it thinks @} is a control sequence).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \catcode`\@ = 12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % See comment in \requireopenindexfile.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\indexname{#1}\ifx\indexname\indexisfl\def\indexname{f1}\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % See if the index file exists and is nonempty.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \openin 1 \jobname.\indexname s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifeof 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % \enddoublecolumns gets confused if there is no text in the index,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5508,8 +5647,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \putwordIndexNonexistent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \typeout{No file \jobname.\indexname s.}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \catcode`\\ = 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % If the index file exists but is empty, then \openin leaves \ifeof
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % false.  We have to make TeX try to read something from the file, so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % it can discover if there is anything in it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5517,47 +5654,55 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \ifeof 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \putwordIndexIsEmpty
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % Index files are almost Texinfo source, but we use \ as the escape
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % character.  It would be better to use @, but that's too big a change
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % to make right now.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \def\indexbackslash{\ttbackslash}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \let\indexlbrace\{   % Likewise, set these sequences for braces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \let\indexrbrace\}   % used in the sort key.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \begindoublecolumns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \let\dotheinsertentrybox\dotheinsertentryboxwithpenalty
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % Read input from the index file line by line.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \loopdo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \ifeof1 \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \read 1 to \nextline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \indexinputprocessing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \thisline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \ifeof1\else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \let\thisline\nextline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \repeat
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      %%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \enddoublecolumns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \expandafter\printindexzz\thisline\relax\relax\finish%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \closein 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \endgroup}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\loopdo#1\repeat{\def\body{#1}\loopdoxxx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\loopdoxxx{\let\next=\relax\body\let\next=\loopdoxxx\fi\next}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\indexinputprocessing{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifeof1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \let\firsttoken\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% If the index file starts with a backslash, forgo reading the index
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% file altogether.  If somebody upgrades texinfo.tex they may still have
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% old index files using \ as the escape character.  Reading this would
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% at best lead to typesetting garbage, at worst a TeX syntax error.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\printindexzz#1#2\finish{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \expandafter\ifx\csname SETtxiindexescapeisbackslash\endcsname\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \uccode`\~=`\\ \uppercase{\if\noexpand~}\noexpand#1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \expandafter\ifx\csname SETtxiskipindexfileswithbackslash\endcsname\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\errmessage{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ERROR: A sorted index file in an obsolete format was skipped.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++To fix this problem, please upgrade your version of 'texi2dvi'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++or 'texi2pdf' to that at <https://ftp.gnu.org/gnu/texinfo>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++If you are using an old version of 'texindex' (part of the Texinfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++distribution), you may also need to upgrade to a newer version (at least 6.0).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++You may be able to typeset the index if you run
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++'texindex \jobname.\indexname' yourself.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++You could also try setting the 'txiindexescapeisbackslash' flag by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++running a command like
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'.  If you do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++this, Texinfo will try to use index files in the old format.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++If you continue to have problems, deleting the index files and starting again
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++might help (with 'rm \jobname.?? \jobname.??s')%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        (Skipped sorted index file in obsolete format)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \begindoublecolumns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \input \jobname.\indexname s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \enddoublecolumns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \edef\act{\gdef\noexpand\firsttoken{\getfirsttoken\nextline}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \act
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \begindoublecolumns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \catcode`\\=0\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % Make @ an escape character to give macros a chance to work.  This
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % should work because we (hopefully) don't otherwise use @ in index files.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %\catcode`\@=12\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \catcode`\@=0\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \input \jobname.\indexname s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \enddoublecolumns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\getfirsttoken#1{\expandafter\getfirsttokenx#1\endfirsttoken}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\long\def\getfirsttokenx#1#2\endfirsttoken{\noexpand#1}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % These macros are used by the sorted index file itself.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Change them to control the appearance of the index.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5566,12 +5711,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \catcode`\|=13 \catcode`\<=13 \catcode`\>=13 \catcode`\+=13 \catcode`\"=13
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \catcode`\$=3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \gdef\initialglyphs{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % special control sequences used in the index sort key
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\indexlbrace\{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\indexrbrace\}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\indexatchar\@%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\indexbackslash{\math{\backslash}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Some changes for non-alphabetic characters.  Using the glyphs from the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % math fonts looks more consistent than the typewriter font used elsewhere
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % for these characters.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\indexbackslash{\math{\backslash}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \let\\=\indexbackslash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \uccode`\~=`\\ \uppercase{\def~{\math{\backslash}}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % In case @\ is used for backslash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \uppercase{\let\\=~}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Can't get bold backslash so don't use bold forward slash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\/=13
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def/{{\secrmnotbold \normalslash}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5601,7 +5753,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % bottom of a column to reduce an increase in inter-line spacing.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \nobreak
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \vskip 0pt plus 5\baselineskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \penalty -300 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \penalty -300
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \vskip 0pt plus -5\baselineskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Typeset the initial.  Making this add up to a whole number of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5631,12 +5783,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\entry{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \begingroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % For pdfTeX and XeTeX.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % The redefinition of \domark stops marks being added in \pdflink to 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % preserve coloured links across page boundaries.  Otherwise the marks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % would get in the way of \lastbox in \insertentrybox.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \let\domark\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Start a new paragraph if necessary, so our assignments below can't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % affect previous text.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \par
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5669,35 +5815,31 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \gdef\finishentry#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \egroup % end box A
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \dimen@ = \wd\boxA % Length of text of entry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \global\setbox\boxA=\hbox\bgroup\unhbox\boxA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % #1 is the page number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % Get the width of the page numbers, and only use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % leaders if they are present.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \global\setbox\boxB = \hbox{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \ifdim\wd\boxB = 0pt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \null\nobreak\hfill\ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \null\nobreak\indexdotfill % Have leaders before the page number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \global\setbox\boxA=\hbox\bgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \unhbox\boxA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % #1 is the page number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \ifpdf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \pdfgettoks#1.%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \hskip\skip\thinshrinkable\the\toksA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % Get the width of the page numbers, and only use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % leaders if they are present.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \global\setbox\boxB = \hbox{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \ifdim\wd\boxB = 0pt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \null\nobreak\hfill\ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \ifx\XeTeXrevision\thisisundefined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          \hskip\skip\thinshrinkable #1%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \null\nobreak\indexdotfill % Have leaders before the page number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \ifpdforxetex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           \pdfgettoks#1.%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           \hskip\skip\thinshrinkable\the\toksA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          \hskip\skip\thinshrinkable #1%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \egroup % end \boxA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \ifdim\wd\boxB = 0pt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \global\setbox\entrybox=\vbox{\unhbox\boxA}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \global\setbox\entrybox=\vbox\bgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \noindent\unhbox\boxA\par
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \nobreak
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \else\bgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % We want the text of the entries to be aligned to the left, and the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % page numbers to be aligned to the right.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5727,7 +5869,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \advance\dimen@ii by 1\dimen@i
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \ifdim\wd\boxA > \dimen@ii % If the entry doesn't fit in one line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \ifdim\dimen@ > 0.8\dimen@ii   % due to long index text
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        % Try to split the text roughly evenly.  \dimen@ will be the length of 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        % Try to split the text roughly evenly.  \dimen@ will be the length of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         % the first line.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \dimen@ = 0.7\dimen@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \dimen@ii = \hsize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5763,55 +5905,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \egroup % The \vbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \endgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \dotheinsertentrybox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newskip\thinshrinkable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \skip\thinshrinkable=.15em minus .15em
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newbox\entrybox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\insertentrybox{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ourunvbox\entrybox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% default definition
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\let\dotheinsertentrybox\insertentrybox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Use \lastbox to take apart vbox box by box, and add each sub-box
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% to the current vertical list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\ourunvbox#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\bgroup % for local binding of \delayedbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Remove the last box from box #1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \global\setbox#1=\vbox{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \unvbox#1%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \unskip % remove any glue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \unpenalty
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \global\setbox\interbox=\lastbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \setbox\delayedbox=\box\interbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifdim\ht#1=0pt\else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \ourunvbox#1 % Repeat on what's left of the box
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \nobreak
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \box\delayedbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\egroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newbox\delayedbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newbox\interbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Used from \printindex.  \firsttoken should be the first token
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% after the \entry.  If it's not another \entry, we are at the last
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% line of a group of index entries, so insert a penalty to discourage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% widowed index entries.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\dotheinsertentryboxwithpenalty{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifx\firsttoken\isentry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \penalty 9000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \insertentrybox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\isentry{\entry}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Like plain.tex's \dotfill, except uses up at least 1 em.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % The filll stretch here overpowers both the fil and fill stretch to push
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % the page number to the right.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5821,24 +5919,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\primary #1{\line{#1\hfil}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newskip\secondaryindent \secondaryindent=0.5cm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\secondary#1#2{{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \parfillskip=0in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \parskip=0in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \hangindent=1in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \hangafter=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifpdf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \ifx\XeTeXrevision\thisisundefined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      #2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \par
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\secondary{\indententry{0.5cm}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\tertiary{\indententry{1cm}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\indententry#1#2#3{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \bgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \leftskip=#1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \entry{#2}{#3}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \egroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Define two-column mode, which we use to typeset indexes.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Adapted from the TeXbook, page 416, which is to say,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5848,60 +5937,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newbox\partialpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newdimen\doublecolumnhsize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Use inside an output routine to save \topmark and \firstmark
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\savemarks{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \global\savedtopmark=\expandafter{\topmark }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \global\savedfirstmark=\expandafter{\firstmark }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newtoks\savedtopmark
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newtoks\savedfirstmark
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Set \topmark and \firstmark for next time \output runs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Can't be run from withinside \output (because any material
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% added while an output routine is active, including 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% penalties, is saved for after it finishes).  The page so far
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% should be empty, otherwise what's on it will be thrown away.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\restoremarks{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \mark{\the\savedtopmark}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \bgroup\output = {%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \setbox\dummybox=\box\PAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }abc\eject\egroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % "abc" because output routine doesn't fire for a completely empty page.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \mark{\the\savedfirstmark}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % If not much space left on page, start a new page.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifdim\pagetotal>0.8\vsize\vfill\eject\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Grab any single-column material above us.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \output = {%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % Here is a possibility not foreseen in manmac: if we accumulate a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % whole lot of material, we might end up calling this \output
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % routine twice in a row (see the doublecol-lose test, which is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % essentially a couple of indexes with @setchapternewpage off).  In
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % that case we just ship out what is in \partialpage with the normal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % output routine.  Generally, \partialpage will be empty when this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % runs and this will be a no-op.  See the indexspread.tex test case.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \ifvoid\partialpage \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \onepageout{\pagecontents\partialpage}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \savetopmark
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \global\setbox\partialpage = \vbox{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % Unvbox the main output page.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \unvbox\PAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \kern-\topskip \kern\baselineskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \savemarks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \eject % run that output routine to set \partialpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \restoremarks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % We recover the two marks that the last output routine saved in order
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % to propagate the information in marks added around a chapter heading,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % which could be otherwise be lost by the time the final page is output.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Use the double-column output routine for subsequent pages.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \output = {\doublecolumnout}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5927,7 +5977,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \divide\doublecolumnhsize by 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \hsize = \doublecolumnhsize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Double the \vsize as well.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % Get the available space for the double columns -- the normal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % (undoubled) page height minus any material left over from the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % previous page.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \advance\vsize by -\ht\partialpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \vsize = 2\vsize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5940,17 +5992,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\doublecolumnout{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \savetopmark
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \splittopskip=\topskip \splitmaxdepth=\maxdepth
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Get the available space for the double columns -- the normal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % (undoubled) page height minus any material left over from the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % previous page.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \dimen@ = \vsize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \divide\dimen@ by 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % box0 will be the left-hand column, box2 the right.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \setbox0=\vsplit\PAGE to\dimen@ \setbox2=\vsplit\PAGE to\dimen@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \global\advance\vsize by 2\ht\partialpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \onepageout\pagesofar
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \onepageout\pagesofar % empty except for the first time we are called
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \unvbox\PAGE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \penalty\outputpenalty
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5966,7 +6016,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Finished with with double columns.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Finished with double columns.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\enddoublecolumns{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % The following penalty ensures that the page builder is exercised
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % _before_ we change the output routine.  This is necessary in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -5998,7 +6048,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \output = {%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Split the last of the double-column material.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \savemarks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \savetopmark
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \balancecolumns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \eject % call the \output just set
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6006,10 +6056,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Having called \balancecolumns once, we do not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % want to call it again.  Therefore, reset \output to its normal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % definition right away.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \global\output = {\onepageout{\pagecontents\PAGE}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \global\output=\expandafter{\the\defaultoutput}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \endgroup % started in \begindoublecolumns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \restoremarks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Leave the double-column material on the current page, no automatic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % page break.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \box\balancedcolumns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6028,18 +6077,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newbox\balancedcolumns
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \setbox\balancedcolumns=\vbox{shouldnt see this}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Only called for the last of the double column material.  \doublecolumnout 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Only called for the last of the double column material.  \doublecolumnout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % does the others.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\balancecolumns{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \setbox0 = \vbox{\unvbox\PAGE}% like \box255 but more efficient, see p.120.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \dimen@ = \ht0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \advance\dimen@ by \topskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \advance\dimen@ by-\baselineskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifdim\dimen@<5\baselineskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifdim\dimen@<7\baselineskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Don't split a short final column in two.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \setbox2=\vbox{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \global\setbox\balancedcolumns=\vbox{\pagesofar}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % double the leading vertical space
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \advance\dimen@ by \topskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \advance\dimen@ by-\baselineskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \divide\dimen@ by 2 % target to split to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \dimen@ii = \dimen@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \splittopskip = \topskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6055,7 +6105,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Now the left column is in box 1, and the right column in box 3.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % Check whether the left column has come out higher than the page itself.  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % Check whether the left column has come out higher than the page itself.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % (Note that we have doubled \vsize for the double columns, so
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % the actual height of the page is 0.5\vsize).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \ifdim2\ht1>\vsize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6174,11 +6224,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @raisesections: treat @section as chapter, @subsection as section, etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\raisesections{\global\advance\secbase by -1}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\let\up=\raisesections % original BFox name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @lowersections: treat @chapter as section, @section as subsection, etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\lowersections{\global\advance\secbase by 1}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\let\down=\lowersections % original BFox name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % we only have subsub.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \chardef\maxseclevel = 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6354,7 +6402,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\top\unnumbered
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Sections.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\seczzz#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \global\subsecno=0 \global\subsubsecno=0  \global\advance\secno by 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6377,7 +6425,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Subsections.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % normally calls numberedsubseczzz:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \outer\parseargdef\numberedsubsec{\numhead2{#1}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\numberedsubseczzz#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6402,7 +6450,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Subsubsections.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % normally numberedsubsubseczzz:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \outer\parseargdef\numberedsubsubsec{\numhead3{#1}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\numberedsubsubseczzz#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6492,18 +6540,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\CHAPPAGoff{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\let\contentsalignmacro = \chappager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\let\pchapsepmacro=\chapbreak
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\let\pagealignmacro=\chappager}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\global\def\HEADINGSon{\HEADINGSsinglechapoff}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\CHAPPAGon{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\let\contentsalignmacro = \chappager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\let\pchapsepmacro=\chappager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\let\pagealignmacro=\chappager
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\def\HEADINGSon{\HEADINGSsingle}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\CHAPPAGodd{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\let\contentsalignmacro = \chapoddpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\let\pchapsepmacro=\chapoddpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\let\pagealignmacro=\chapoddpage
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\def\HEADINGSon{\HEADINGSdouble}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \CHAPPAGon
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6523,27 +6569,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \expandafter\ifx\thisenv\titlepage\else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \checkenv{}% chapters, etc., should not start inside an environment.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % FIXME: \chapmacro is currently called from inside \titlepage when
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % \setcontentsaftertitlepage to print the "Table of Contents" heading, but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % this should probably be done by \sectionheading with an option to print
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % in chapter size.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Insert the first mark before the heading break (see notes for \domark).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \let\prevchapterdefs=\lastchapterdefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \let\prevsectiondefs=\lastsectiondefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\prevchapterdefs=\currentchapterdefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\prevsectiondefs=\currentsectiondefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \gdef\currentsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                         \gdef\thissection{}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\temptype{#2}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifx\temptype\Ynothingkeyword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \gdef\currentchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           \gdef\thischapter{\thischaptername}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else\ifx\temptype\Yomitfromtockeyword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \gdef\currentchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           \gdef\thischapter{}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else\ifx\temptype\Yappendixkeyword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \toks0={#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \xdef\lastchapterdefs{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \xdef\currentchapterdefs{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \gdef\noexpand\thischaptername{\the\toks0}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \gdef\noexpand\thischapternum{\appendixletter}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % \noexpand\putwordAppendix avoids expanding indigestible
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6554,7 +6595,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \toks0={#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \xdef\lastchapterdefs{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \xdef\currentchapterdefs{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \gdef\noexpand\thischaptername{\the\toks0}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \gdef\noexpand\thischapternum{\the\chapno}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % \noexpand\putwordChapter avoids expanding indigestible
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6574,18 +6615,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Now the second mark, after the heading break.  No break points
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % between here and the heading.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \let\prevchapterdefs=\lastchapterdefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \let\prevsectiondefs=\lastsectiondefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\prevchapterdefs=\currentchapterdefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\prevsectiondefs=\currentsectiondefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \domark
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \chapfonts \rm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \let\footnote=\errfootnoteheading % give better error message
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % Have to define \lastsection before calling \donoderef, because the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % Have to define \currentsection before calling \donoderef, because the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % xref code eventually uses it.  On the other hand, it has to be called
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % after \pchapsepmacro, or the headline will change too soon.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \gdef\lastsection{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \gdef\currentsection{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Only insert the separating space if we have a chapter/appendix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % number, and don't print the unnumbered ``number''.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6674,10 +6715,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \csname #2fonts\endcsname \rm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Insert first mark before the heading break (see notes for \domark).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \let\prevsectiondefs=\lastsectiondefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \let\prevsectiondefs=\currentsectiondefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \ifx\temptype\Ynothingkeyword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \ifx\sectionlevel\seckeyword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \gdef\currentsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                               \gdef\thissection{\thissectionname}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \else\ifx\temptype\Yomitfromtockeyword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6685,7 +6726,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \else\ifx\temptype\Yappendixkeyword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \ifx\sectionlevel\seckeyword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \toks0={#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \xdef\lastsectiondefs{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \xdef\currentsectiondefs{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           \gdef\noexpand\thissectionname{\the\toks0}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           \gdef\noexpand\thissectionnum{#4}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           % \noexpand\putwordSection avoids expanding indigestible
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6698,7 +6739,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \ifx\sectionlevel\seckeyword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \toks0={#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \xdef\lastsectiondefs{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \xdef\currentsectiondefs{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           \gdef\noexpand\thissectionname{\the\toks0}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           \gdef\noexpand\thissectionnum{#4}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           % \noexpand\putwordSection avoids expanding indigestible
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6724,28 +6765,28 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Now the second mark, after the heading break.  No break points
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % between here and the heading.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \global\let\prevsectiondefs=\lastsectiondefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \global\let\prevsectiondefs=\currentsectiondefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \domark
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Only insert the space after the number if we have a section number.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \ifx\temptype\Ynothingkeyword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \setbox0 = \hbox{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \def\toctype{unn}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \gdef\lastsection{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \gdef\currentsection{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \else\ifx\temptype\Yomitfromtockeyword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % for @headings -- no section number, don't include in toc,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % and don't redefine \lastsection.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % and don't redefine \currentsection.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \setbox0 = \hbox{}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \def\toctype{omit}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \let\sectionlevel=\empty
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \else\ifx\temptype\Yappendixkeyword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \setbox0 = \hbox{#4\enspace}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \def\toctype{app}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \gdef\lastsection{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \gdef\currentsection{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \setbox0 = \hbox{#4\enspace}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \def\toctype{num}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \gdef\lastsection{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \gdef\currentsection{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \fi\fi\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Write the toc entry (before \donoderef).  See comments in \chapmacro.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6835,13 +6876,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % 1 and 2 (the page numbers aren't printed), and so are the first
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % two pages of the document.  Thus, we'd have two destinations named
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % `1', and two named `2'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \ifpdf
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifpdforxetex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \global\pdfmakepagedesttrue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \ifx\XeTeXrevision\thisisundefined
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \global\pdfmakepagedesttrue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6878,9 +6914,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\startcontents#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % If @setchapternewpage on, and @headings double, the contents should
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % start on an odd page, unlike chapters.  Thus, we maintain
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % \contentsalignmacro in parallel with \pagealignmacro.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % From: Torbjorn Granlund <tege@matematik.su.se>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % start on an odd page, unlike chapters.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \contentsalignmacro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \immediate\closeout\tocfile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6895,6 +6929,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % Roman numerals for page numbers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \def\thistitle{}% no title in double-sided headings
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    % Record where the Roman numerals started.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \ifnum\romancount=0 \global\romancount=\pagecount \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % redefined for the two-volume lispref.  We always output on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6917,8 +6954,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \closein 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \endgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \lastnegativepageno = \pageno
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \global\pageno = \savepageno
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \contentsendroman
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % And just the chapters.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6953,10 +6989,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \vfill \eject
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \contentsalignmacro % in case @setchapternewpage odd is in effect
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \endgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \contentsendroman
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\let\shortcontents = \summarycontents
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Get ready to use Arabic numerals again
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\contentsendroman{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \lastnegativepageno = \pageno
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \global\pageno = \savepageno
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % If \romancount > \arabiccount, the contents are at the end of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % document.  Otherwise, advance where the Arabic numerals start for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % the page numbers.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifnum\romancount>\arabiccount\else\global\arabiccount=\pagecount\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\let\shortcontents = \summarycontents
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Typeset the label for a chapter or appendix for the short contents.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % The arg is, e.g., `A' for an appendix, or `3' for a chapter.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7204,11 +7250,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @cartouche ... @end cartouche: draw rectangle w/rounded corners around
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % environment contents.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\font\circle=lcircle10
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newdimen\circthick
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newdimen\cartouter\newdimen\cartinner
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newskip\normbskip\newskip\normpskip\newskip\normlskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\circthick=\fontdimen8\circle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\ctr{{\hskip 6pt\circle\char'010}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7223,7 +7265,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newskip\lskip\newskip\rskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% only require the font if @cartouche is actually used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\cartouchefontdefs{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \font\circle=lcircle10\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \circthick=\fontdimen8\circle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newdimen\circthick
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newdimen\cartouter\newdimen\cartinner
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\newskip\normbskip\newskip\normpskip\newskip\normlskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \envdef\cartouche{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \cartouchefontdefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifhmode\par\fi  % can't be in the midst of a paragraph.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \startsavinginserts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \lskip=\leftskip \rskip=\rightskip
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7402,13 +7455,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @raggedright does more-or-less normal line breaking but no right
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% justification.  From plain.tex.  Don't stretch around special
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% characters in urls in this environment, since the stretch at the right
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% should be enough.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% justification.  From plain.tex.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \envdef\raggedright{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \rightskip0pt plus2.4em \spaceskip.3333em \xspaceskip.5em\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\urefprestretchamount{0pt}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\urefpoststretchamount{0pt}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\Eraggedright\par
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7467,7 +7516,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @indentedblock is like @quotation, but indents only on the left and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % has no optional argument.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \makedispenvdef{indentedblock}{\indentedblockstart}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\indentedblockstart{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7542,13 +7591,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % We typeset each line of the verbatim in an \hbox, so we can handle
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% tabs.  The \global is in case the verbatim line starts with an accent,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% or some other command that starts with a begin-group.  Otherwise, the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% entire \verbbox would disappear at the corresponding end-group, before
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% it is typeset.  Meanwhile, we can't have nested verbatim commands
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% (can we?), so the \global won't be overwriting itself.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% tabs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newbox\verbbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\starttabbox{\global\setbox\verbbox=\hbox\bgroup}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\starttabbox{\setbox\verbbox=\hbox\bgroup}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \begingroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\^^I=\active
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7559,7 +7604,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \divide\dimen\verbbox by\tabw
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \advance\dimen\verbbox by\tabw  % advance to next multiple of \tabw
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \wd\verbbox=\dimen\verbbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \leavevmode\box\verbbox \starttabbox
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \endgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7569,9 +7615,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \let\nonarrowing = t%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \nonfillstart
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \tt % easiest (and conventionally used) font for verbatim
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % The \leavevmode here is for blank lines.  Otherwise, we would
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % never \starttabox and the \egroup would end verbatim mode.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \def\par{\leavevmode\egroup\box\verbbox\endgraf}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\par{\egroup\leavevmode\box\verbbox\endgraf\starttabbox}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \tabexpand
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \setupmarkupstyle{verbatim}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Respect line breaks,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7579,7 +7623,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % make each space count.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Must do in this order:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \obeylines \uncatcodespecials \sepspaces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \everypar{\starttabbox}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Do the @verb magic: verbatim text is quoted by unique
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7614,13 +7657,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % ignore everything up to the first ^^M, that's the newline at the end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % of the @verbatim input line itself.  Otherwise we get an extra blank
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % line in the output.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \xdef\doverbatim#1^^M#2@end verbatim{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \starttabbox#2\egroup\noexpand\end\gobble verbatim}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % We really want {...\end verbatim} in the body of the macro, but
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % without the active space; thus we have to use \xdef and \gobble.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % The \egroup ends the \verbbox started at the end of the last line in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % the block.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \endgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \envdef\verbatim{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \setupverbatim\doverbatim
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \setnormaldispenv\setupverbatim\doverbatim
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\Everbatim = \afterenvbreak
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7633,9 +7679,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \makevalueexpandable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \setupverbatim
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \indexnofonts       % Allow `@@' and other weird things in file names.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \input #1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    {%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \indexnofonts       % Allow `@@' and other weird things in file names.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \edef\tmp{\noexpand\input #1 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \expandafter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }\expandafter\starttabbox\tmp\egroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \afterenvbreak
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7764,7 +7813,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @deftypefnnewline on|off says whether the return type of typed functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % are printed on their own line.  This affects @deftypefn, @deftypefun,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @deftypeop, and @deftypemethod.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \parseargdef\deftypefnnewline{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\temp{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifx\temp\onword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7780,6 +7829,21 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \fi\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \dosubind {index}{topic}{subtopic}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% If SUBTOPIC is present, precede it with a space, and call \doind.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% (At some time during the 20th century, this made a two-level entry in an
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% index such as the operation index.  Nobody seemed to notice the change in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% behaviour though.)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\dosubind#1#2#3{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \def\thirdarg{#3}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \ifx\thirdarg\empty
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \doind{#1}{#2}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \doind{#1}{#2\space#3}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Untyped functions:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @deffn category name args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7794,7 +7858,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % \deffngeneral {subind}category name args
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\deffngeneral#1#2 #3 #4\endheader{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \dosubind{fn}{\code{#3}}{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7945,7 +8008,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \tclose{\temp}% typeset the return type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \ifrettypeownline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         % put return type on its own line; prohibit line break following:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \hfil\vadjust{\nobreak}\break  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \hfil\vadjust{\nobreak}\break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \space  % type on same line, so just followed by a space
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8001,6 +8064,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \gdef\magicamp{\let&=\amprm}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\let\ampchar\&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newcount\parencount
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8081,36 +8145,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% alias because \c means cedilla in @tex or @math
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\let\texinfoc=\c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newcount\savedcatcodeone
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\newcount\savedcatcodetwo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Used at the time of macro expansion.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Argument is macro body with arguments substituted
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\scanmacro#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \newlinechar`\^^M
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\xeatspaces{\eatspaces}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % Temporarily undo catcode changes of \printindex.  Set catcode of @ to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % 0 so that @-commands in macro expansions aren't printed literally when 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % formatting an index file, where \ is used as the escape character.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \savedcatcodeone=\catcode`\@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \savedcatcodetwo=\catcode`\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \catcode`\@=0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \catcode`\\=\active
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Process the macro body under the current catcode regime.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \scantokens{#1@texinfoc}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \scantokens{#1@comment}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \catcode`\@=\savedcatcodeone
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \catcode`\\=\savedcatcodetwo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % The \texinfoc is to remove the \newlinechar added by \scantokens, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % can be noticed by \parsearg.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %   We avoid surrounding the call to \scantokens with \bgroup and \egroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % to allow macros to open or close groups themselves.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % The \comment is to remove the \newlinechar added by \scantokens, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % can be noticed by \parsearg.  Note \c isn't used because this means cedilla
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % in math mode.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Used for copying and captions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8211,12 +8257,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\macroargctxt{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \scanctxt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\ =\active
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \catcode`\@=\other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\^^M=\other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\\=\active
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\macrolineargctxt{% used for whole-line arguments without braces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \scanctxt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \catcode`\@=\other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\{=\other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\}=\other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8308,7 +8356,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % list to some hook where the argument is to be expanded.  If there are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % less than 10 arguments that hook is to be replaced by ##N where N
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % is the position in that list, that is to say the macro arguments are to be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% defined `a la TeX in the macro body.  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% defined `a la TeX in the macro body.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % That gets used by \mbodybackslash (above).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8339,8 +8387,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Read recursive and nonrecursive macro bodies. (They're different since
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % rec and nonrec macros end differently.)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % body to be transformed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Set \macrobody to the body of the macro, and call \defmacro.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8374,7 +8422,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % twice the \macarg.BLAH macros does not cost too much processing power.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\parsemmanyargdef@@#1,{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \if#1;\let\next=\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \else 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \let\next=\parsemmanyargdef@@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \edef\tempb{\eatspaces{#1}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \expandafter\def\expandafter\tempa
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8459,7 +8507,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Replace arguments by their values in the macro body, and place the result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % in macro \@tempa.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\macvalstoargs@{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %  To do this we use the property that token registers that are \the'ed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % within an \edef  expand only once. So we are going to place all argument
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8483,9 +8531,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Define the named-macro outside of this group and then close this group. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\macargexpandinbody@{% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Define the named-macro outside of this group and then close this group.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\macargexpandinbody@{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \expandafter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \endgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \macargdeflist@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8523,7 +8571,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Trailing missing arguments are set to empty.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\setemptyargvalues@{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifx\paramlist\nilm@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \let\next\macargexpandinbody@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8600,7 +8648,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else % at most 9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \ifnum\paramno<10\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % @MACNAME sets the context for reading the macro argument
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % @MACNAME@@ gets the argument, processes backslashes and appends a 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % @MACNAME@@ gets the argument, processes backslashes and appends a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % comma.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % @MACNAME@@@ removes braces surrounding the argument list.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % @MACNAME@@@@ scans the macro body with arguments substituted.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8644,11 +8692,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Call #1 with a list of tokens #2, with any doubled backslashes in #2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % compressed to one.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% This implementation works by expansion, and not execution (so we cannot use 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% \def or similar).  This reduces the risk of this failing in contexts where 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% complete expansion is done with no execution (for example, in writing out to 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% This implementation works by expansion, and not execution (so we cannot use
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \def or similar).  This reduces the risk of this failing in contexts where
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% complete expansion is done with no execution (for example, in writing out to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % an auxiliary file for an index entry).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % State is kept in the input stream: the argument passed to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @look_ahead, @gobble_and_check_finish and @add_segment is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8670,11 +8718,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % #3 - NEXT_TOKEN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % #4 used to look ahead
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% If the next token is not a backslash, process the rest of the argument; 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% If the next token is not a backslash, process the rest of the argument;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % otherwise, remove the next token.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @gdef@look_ahead#1!#2#3#4{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @ifx#4\%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   @expandafter@gobble_and_check_finish 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   @expandafter@gobble_and_check_finish
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    @expandafter@add_segment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @fi#1!{#2}#4#4%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8698,9 +8746,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % #3 - NEXT_TOKEN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % #4 is input stream until next backslash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Input stream is either at the start of the argument, or just after a 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% backslash sequence, either a lone backslash, or a doubled backslash.  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% NEXT_TOKEN contains the first token in the input stream: if it is \finish, 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Input stream is either at the start of the argument, or just after a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% backslash sequence, either a lone backslash, or a doubled backslash.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% NEXT_TOKEN contains the first token in the input stream: if it is \finish,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % finish; otherwise, append to ARG_RESULT the segment of the argument up until
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % the next backslash.  PENDING_BACKSLASH contains a backslash to represent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % a backslash just before the start of the input stream that has not been
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8712,13 +8760,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % append the pending backslash to the result, followed by the next segment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @expandafter@is_fi@look_ahead#1#2#4!{\}@fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % this @fi is discarded by @look_ahead.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % we can't get rid of it with \expandafter because we don't know how 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % we can't get rid of it with \expandafter because we don't know how
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % long #4 is.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % #1 - THE_MACRO
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % #2 - ARG_RESULT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% #3 discards the res of the conditional in @add_segment, and @is_fi ends the 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% #3 discards the res of the conditional in @add_segment, and @is_fi ends the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % conditional.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8730,7 +8778,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % for reading the argument (slightly different in the two cases).  Then,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % to read the argument, in the whole-line case, it then calls the regular
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % \parsearg MAC; in the lbrace case, it calls \passargtomacro MAC.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\braceorlinexxx{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifx\nchar\bgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8780,9 +8828,29 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % also remove a trailing comma, in case of something like this:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @node Help-Cross,  ,  , Cross-refs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}\omittopnode}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Used so that the @top node doesn't have to be wrapped in an @ifnottex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% conditional.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \doignore goes to more effort to skip nested conditionals but we don't need
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% that here.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\omittopnode{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   \ifx\lastnode\wordTop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   \expandafter\ignorenode\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\wordTop{Top}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Until the next @node or @bye command, divert output to a box that is not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% output.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\ignorenode{\setbox\dummybox\vbox\bgroup\def\node{\egroup\node}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\ignorenodebye
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{\let\bye\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\gdef\ignorenodebye{\let\bye\ignorenodebyedef}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\gdef\ignorenodebyedef{\egroup(`Top' node ignored)\bye}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% The redefinition of \bye here is because it is declared \outer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\let\nwnode=\node
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \let\lastnode=\empty
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Write a cross-reference definition for the current node.  #1 is the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8805,7 +8873,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % anchor), which consists of three parts:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 1) NAME-title - the current sectioning name taken from \lastsection,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% 1) NAME-title - the current sectioning name taken from \currentsection,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %                 or the anchor name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % 2) NAME-snt   - section number and type, passed as the SNT arg, or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %                 empty for anchors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8827,7 +8895,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ##1}{##2}}% these are parameters of \writexrdef
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \toks0 = \expandafter{\lastsection}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \toks0 = \expandafter{\currentsection}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \immediate \writexrdef{title}{\the\toks0 }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8839,7 +8907,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % automatically in xrefs, if the third arg is not explicitly specified.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % This was provided as a "secret" @set xref-automatic-section-title
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % variable, now it's official.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \parseargdef\xrefautomaticsectiontitle{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \def\temp{#1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifx\temp\onword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -8855,7 +8923,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \fi\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @xref, @pxref, and @ref generate cross-references.  For \xrefX, #1 is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % the node name, #2 the name of the Info cross-reference, #3 the printed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % node name, #4 the name of the Info file, #5 the name of the printed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9008,40 +9076,34 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % node/anchor (non-float) references.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % If we use \unhbox to print the node names, TeX does not insert
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % empty discretionaries after hyphens, which means that it will not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % find a line break at a hyphen in a node names.  Since some manuals
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % are best written with fairly long node names, containing hyphens,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % this is a loss.  Therefore, we give the text of the node name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % again, so it is as if TeX is seeing it for the first time.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    % 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \ifdim \wd\printedmanualbox > 0pt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % Cross-manual reference with a printed manual name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \crossmanualxref{\cite{\printedmanual\unskip}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \else\ifdim \wd\infofilenamebox > 0pt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % Cross-manual reference with only an info filename (arg 4), no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % printed manual name (arg 5).  This is essentially the same as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % the case above; we output the filename, since we have nothing else.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \crossmanualxref{\code{\infofilename\unskip}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % Reference within this manual.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % _ (for example) has to be the character _ for the purposes of the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % control sequence corresponding to the node, but it has to expand
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % into the usual \leavevmode...\vrule stuff for purposes of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % printing. So we \turnoffactive for the \refx-snt, back on for the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % printing, back off for the \refx-pg.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      {\turnoffactive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       % Only output a following space if the -snt ref is nonempty; for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       % @unnumbered and @anchor, it won't be.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-       \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % Only output a following space if the -snt ref is nonempty; for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      % @unnumbered and @anchor, it won't be.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % output the `[mynode]' via the macro below so it can be overridden.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \xrefprintnodename\printedrefname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9065,20 +9127,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \endgroup}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Output a cross-manual xref to #1.  Used just above (twice).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Only include the text "Section ``foo'' in" if the foo is neither
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % missing or Top.  Thus, @xref{,,,foo,The Foo Manual} outputs simply
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % "see The Foo Manual", the idea being to refer to the whole manual.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % But, this being TeX, we can't easily compare our node name against the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % string "Top" while ignoring the possible spaces before and after in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % the input.  By adding the arbitrary 7sp below, we make it much less
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % likely that a real node name would have the same width as "Top" (e.g.,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % in a monospaced font).  Hopefully it will never happen in practice.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % For the same basic reason, we retypeset the "Top" at every
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % reference, since the current font is indeterminate.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\crossmanualxref#1{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \setbox\toprefbox = \hbox{Top\kern7sp}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9125,13 +9187,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \fi\fi\fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME.  SUFFIX 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME.  SUFFIX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % is output afterwards if non-empty.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\refx#1#2{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \requireauxfile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \indexnofonts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    \otherbackslash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    \turnoffactive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \def\value##1{##1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \expandafter\global\expandafter\let\expandafter\thisrefX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \csname XR#1\endcsname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9157,9 +9219,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   #2% Output the suffix in any case.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% This is the macro invoked by entries in the aux file.  Define a control 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% sequence for a cross-reference target (we prepend XR to the control sequence 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% name to avoid collisions).  The value is the page number.  If this is a float 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% This is the macro invoked by entries in the aux file.  Define a control
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% sequence for a cross-reference target (we prepend XR to the control sequence
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% name to avoid collisions).  The value is the page number.  If this is a float
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % type, we have more work to do.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\xrdef#1#2{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9175,10 +9237,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \bgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \expandafter\gdef\csname XR\safexrefname\endcsname{#2}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \egroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % We put the \gdef inside a group to avoid the definitions building up on 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % TeX's save stack, which can cause it to run out of space for aux files with 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % We put the \gdef inside a group to avoid the definitions building up on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % TeX's save stack, which can cause it to run out of space for aux files with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % thousands of lines.  \gdef doesn't use the save stack, but \csname does
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % when it defines an unknown control sequence as \relax. 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  % when it defines an unknown control sequence as \relax.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Was that xref control sequence that we just defined for a float?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \expandafter\iffloat\csname XR\safexrefname\endcsname
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9257,19 +9319,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\^^]=\other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\^^^=\other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\^^_=\other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % in xref tags, i.e., node names.  But since ^^e4 notation isn't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % supported in the main text, it doesn't seem desirable.  Furthermore,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % that is not enough: for node names that actually contain a ^
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % character, we would end up writing a line like this: 'xrdef {'hat
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % argument, and \hat is not an expandable control sequence.  It could
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % all be worked out, but why?  Either we support ^^ or we don't.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % The other change necessary for this was to define \auxhat:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % and then to call \auxhat in \setq.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\^=\other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Special characters.  Should be turned off anyway, but...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9287,14 +9336,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\%=\other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % This is to support \ in node names and titles, since the \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % characters end up in a \csname.  It's easier than
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % leaving it active and making its active definition an actual \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % character.  What I don't understand is why it works in the *value*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % of the xrdef.  Seems like it should be a catcode12 \, and that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % should not typeset properly.  But it works, so I'm moving on for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  % now.  --karl, 15jan04.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \catcode`\\=\other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \catcode`\\=\active
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % @ is our escape character in .aux files, and we need braces.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \catcode`\{=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9557,7 +9599,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifimagevmode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \medskip  % space after a standalone image
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \fi  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \ifx\centersub\centerV \egroup \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \endgroup}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9625,13 +9667,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \global\advance\floatno by 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       {%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        % This magic value for \lastsection is output by \setref as the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        % This magic value for \currentsection is output by \setref as the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         % XREFLABEL-title value.  \xrefX uses it to distinguish float
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         % labels (which have a completely different output format) from
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         % node and anchor labels.  And \xrdef uses it to construct the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         % lists of floats.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        \edef\lastsection{\floatmagic=\safefloattype}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        \edef\currentsection{\floatmagic=\safefloattype}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \setref{\floatlabel}{Yfloat}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       }%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9754,7 +9796,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % #1 is the control sequence we are passed; we expand into a conditional
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % which is true if #1 represents a float ref.  That is, the magic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% \lastsection value which we \setref above.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \currentsection value which we \setref above.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\iffloat#1{\expandafter\doiffloat#1==\finish}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10388,7 +10430,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         \uppercase{.}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \endgroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      \errhelp = \EMsimple        
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      \errhelp = \EMsimple
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \errmessage{Unicode character U+#1 not supported, sorry}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10421,7 +10463,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \countUTFz = "#1\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \begingroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \parseXMLCharref
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % Give \u8:... its definition.  The sequence of seven \expandafter's
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       % expands after the \gdef three times, e.g.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10433,7 +10475,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \expandafter\expandafter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \expandafter\expandafter
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \expandafter\gdef       \UTFviiiTmp{#2}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      % 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \expandafter\ifx\csname uni:#1\endcsname \relax \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        \message{Internal error, already defined: #1}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10472,7 +10514,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \divide\countUTFz by 64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \countUTFy = \countUTFz  % Save to be the future value of \countUTFz.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \multiply\countUTFz by 64
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % \countUTFz is now \countUTFx with the last 5 bits cleared.  Subtract
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     % in order to get the last five bits.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     \advance\countUTFx by -\countUTFz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10507,7 +10549,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % U+0080..U+00FF = https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Many of our renditions are less than wonderful, and all the missing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % characters are available somewhere.  Loading the necessary fonts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % awaits user request.  We can't truly support Unicode without
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -10808,6 +10850,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \DeclareUnicodeCharacter{0233}{\=y}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \DeclareUnicodeCharacter{0237}{\dotless{j}}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \DeclareUnicodeCharacter{02BC}{'}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \DeclareUnicodeCharacter{02DB}{\ogonek{ }}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Greek letters upper case
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11242,21 +11286,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    \relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% define all Unicode characters we know about, for the sake of @U.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% Define all Unicode characters we know about.  This makes UTF-8 the default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% input encoding and allows @U to work.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \iftxinativeunicodecapable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \nativeunicodechardefsatu
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \utfeightchardefs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% Make non-ASCII characters printable again for compatibility with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% existing Texinfo documents that may use them, even without declaring a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% document encoding.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\setnonasciicharscatcode \other
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \message{formatting,}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \newdimen\defaultparindent \defaultparindent = 15pt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11449,6 +11486,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \globaldefs = 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++\def\bsixpaper{{\globaldefs = 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \afourpaper
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \internalpagesizes{140mm}{100mm}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    {-6.35mm}{-12.7mm}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    {\bindingoffset}{14pt}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    {176mm}{125mm}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let\SETdispenvsize=\smallword
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \lispnarrowing = 0.2in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \globaldefs = 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % @pagesizes TEXTHEIGHT[,TEXTWIDTH]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Perhaps we should allow setting the margins, \topskip, \parskip,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % and/or leading, also. Or perhaps we should compute them somehow.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11462,12 +11511,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \setleading{\textleading}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \dimen0 = #1\relax
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \advance\dimen0 by \voffset
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \advance\dimen0 by 1in % reference point for DVI is 1 inch from top of page
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \advance\dimen0 by 2.5in % default 1in margin above heading line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                           % and 1.5in to include heading, footing and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                           % bottom margin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \dimen2 = \hsize
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \advance\dimen2 by \normaloffset
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \advance\dimen2 by 1in % reference point is 1 inch from left edge of page
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \advance\dimen2 by 2in % default to 1 inch margin on each side
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \internalpagesizes{#1}{\hsize}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     {\voffset}{\normaloffset}%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11552,9 +11601,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \def\texinfochars{%
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \let< = \activeless
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \let> = \activegtr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \let~ = \activetilde 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \let~ = \activetilde
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \let^ = \activehat
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  \markupsetuplqdefault \markupsetuprqdefault 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  \markupsetuplqdefault \markupsetuprqdefault
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \let\b = \strong
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   \let\i = \smartitalic
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % in principle, all other definitions in \tex have to be undone too.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11572,11 +11621,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % \backslashcurfont outputs one backslash character in current font,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % as in \char`\\.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ \global\chardef\backslashcurfont=`\\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-\global\let\rawbackslashxx=\backslashcurfont  % let existing .??s files work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% \realbackslash is an actual character `\' with catcode other, and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% \doublebackslash is two of them (for the pdf outlines).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% \realbackslash is an actual character `\' with catcode other.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{\catcode`\\=\other @gdef@realbackslash{\}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % In Texinfo, backslash is an active character; it prints the backslash
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % in fixed width font.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11594,10 +11641,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @def@ttbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @let@backslashchar = @ttbackslash % @backslashchar{} is for user documents.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% \rawbackslash defines an active \ to do \backslashcurfont.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % \otherbackslash defines an active \ to be a literal `\' character with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-% catcode other.  We switch back and forth between these.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@gdef@rawbackslash{@let\=@backslashcurfont}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++% catcode other.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @gdef@otherbackslash{@let\=@realbackslash}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11669,7 +11714,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @ifx\@eatinput @let\ = @ttbackslash @fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @catcode13=5 % regular end of line
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @enableemergencynewline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  @let@c=@texinfoc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  @let@c=@comment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @let@parsearg@originalparsearg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % Also turn back on active characters that might appear in the input
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   % file name, in case not using a pre-dumped format.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -11715,7 +11760,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @markupsetuprqdefault
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @c Local variables:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-@c eval: (add-hook 'write-file-hooks 'time-stamp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@c eval: (add-hook 'before-save-hook 'time-stamp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @c page-delimiter: "^\\\\message\\|emacs-page"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @c time-stamp-start: "def\\\\texinfoversion{"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ @c time-stamp-format: "%:y-%02m-%02d.%02H"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur fficonfig.h.in libffi-3.3.new/fficonfig.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- fficonfig.h.in 2019-11-01 03:30:04.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/fficonfig.h.in  2021-01-04 19:48:48.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -32,6 +32,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Define this if you do not want support for aggregate types. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef FFI_NO_STRUCTS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Creating a separate libffi-trampolines.dylib and remapping the entire dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef FFI_TRAMPOLINE_WHOLE_DYLIB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Define to 1 if you have `alloca', as a function or macro. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef HAVE_ALLOCA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -94,6 +98,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Define if read-only mmap of a plain file works. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef HAVE_MMAP_FILE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Define if your compiler supports pointer authentication. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#undef HAVE_PTRAUTH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Define if .eh_frame sections should be read-only. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #undef HAVE_RO_EH_FRAME
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur include/Makefile.in libffi-3.3.new/include/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- include/Makefile.in    2019-11-23 06:59:04.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/include/Makefile.in     2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Makefile.in generated by automake 1.16.1 from Makefile.am.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Makefile.in generated by automake 1.16.3 from Makefile.am.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # @configure_input@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1994-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This Makefile.in is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur include/ffi.h.in libffi-3.3.new/include/ffi.h.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- include/ffi.h.in       2019-11-13 05:57:22.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/include/ffi.h.in        2021-01-04 19:39:16.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -349,6 +349,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 void *user_data,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 void*codeloc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(__x86_64__) || defined(__arm64__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++FFI_API ffi_closure *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ffi_find_closure_for_code(void *code);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __sgi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # pragma pack 8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur install-sh libffi-3.3.new/install-sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- install-sh     2019-11-01 03:30:05.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/install-sh      2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #!/bin/sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # install - install a program, script, or datafile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-scriptversion=2018-03-11.20; # UTC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++scriptversion=2020-11-14.01; # UTC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This originates from X11R5 (mit/util/scripts/install.sh), which was
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # later released in X11R6 (xc/config/util/install.sh) with the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -69,6 +69,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Desired mode of installed file.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ mode=0755
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Create dirs (including intermediate dirs) using mode 755.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# This is like GNU 'install' as of coreutils 8.32 (2020).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++mkdir_umask=22
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++backupsuffix=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ chgrpcmd=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ chmodcmd=$chmodprog
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ chowncmd=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -99,18 +104,28 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      --version  display version info and exit.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -c            (ignored)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  -C            install only if different (preserve the last data modification time)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  -C            install only if different (preserve data modification time)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -d            create directories instead of installing files.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -g GROUP      $chgrpprog installed files to GROUP.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -m MODE       $chmodprog installed files to MODE.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -o USER       $chownprog installed files to USER.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  -p            pass -p to $cpprog.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -s            $stripprog installed files.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  -S SUFFIX     attempt to back up existing files, with suffix SUFFIX.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -t DIRECTORY  install into DIRECTORY.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   -T            report an error if DSTFILE is a directory.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Environment variables override the default commands:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   RMPROG STRIPPROG
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++By default, rm is invoked with -f; when overridden with RMPROG,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++it's up to you to specify -f if you want it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++If -S is not specified, no backups are attempted.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Email bug reports to bug-automake@gnu.org.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++Automake home page: https://www.gnu.org/software/automake/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while test $# -ne 0; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -137,8 +152,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     -o) chowncmd="$chownprog $2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         shift;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    -p) cpprog="$cpprog -p";;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     -s) stripcmd=$stripprog;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    -S) backupsuffix="$2"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        shift;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     -t)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         is_target_a_directory=always
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         dst_arg=$2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -255,6 +275,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     dstdir=$dst
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     test -d "$dstdir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     dstdir_status=$?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Don't chown directories that already exist.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if test $dstdir_status = 0; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      chowncmd=""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -301,22 +325,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test $dstdir_status != 0; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case $posix_mkdir in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       '')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # Create intermediate dirs using mode 755 as modified by the umask.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        # This is like FreeBSD 'install' as of 1997-10-28.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        umask=`umask`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        case $stripcmd.$umask in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          # Optimize common cases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          *[2367][2367]) mkdir_umask=$umask;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          *[0-7])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            mkdir_umask=`expr $umask + 22 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              - $umask % 100 % 40 + $umask % 20 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              - $umask % 10 % 4 + $umask % 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            `;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          *) mkdir_umask=$umask,go-w;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # With -d, create the new directory with the user-specified mode.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # Otherwise, rely on $mkdir_umask.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if test -n "$dir_arg"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -326,52 +334,49 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         posix_mkdir=false
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        case $umask in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          *[123567][0-7][0-7])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            # POSIX mkdir -p sets u+wx bits regardless of umask, which
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            # Note that $RANDOM variable is not portable (e.g. dash);  Use it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            # here however when possible just to lower collision chance.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            # Because "mkdir -p" follows existing symlinks and we likely work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            # directly in world-writeable /tmp, make sure that the '$tmpdir'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            # directory is successfully created first before we actually test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            # 'mkdir -p' feature.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            if (umask $mkdir_umask &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                $mkdirprog $mkdir_mode "$tmpdir" &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              if test -z "$dir_arg" || {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                   # Check for POSIX incompatibilities with -m.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                   # other-writable bit of parent directory when it shouldn't.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                   test_tmpdir="$tmpdir/a"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                   ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                   case $ls_ld_tmpdir in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                     d????-?r-*) different_mode=700;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                     d????-?--*) different_mode=755;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                     *) false;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                   esac &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                   $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                     ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              then posix_mkdir=:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              # Remove any dirs left behind by ancient mkdir implementations.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            trap '' 0;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        esac;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # The $RANDOM variable is not portable (e.g., dash).  Use it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # here however when possible just to lower collision chance.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  trap '
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ret=$?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    exit $ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ' 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Because "mkdir -p" follows existing symlinks and we likely work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # directly in world-writeable /tmp, make sure that the '$tmpdir'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # directory is successfully created first before we actually test
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # 'mkdir -p'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (umask $mkdir_umask &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      $mkdirprog $mkdir_mode "$tmpdir" &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if test -z "$dir_arg" || {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         # Check for POSIX incompatibilities with -m.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         # other-writable bit of parent directory when it shouldn't.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         test_tmpdir="$tmpdir/a"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         case $ls_ld_tmpdir in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           d????-?r-*) different_mode=700;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           d????-?--*) different_mode=755;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           *) false;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         esac &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    then posix_mkdir=:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    # Remove any dirs left behind by ancient mkdir implementations.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  trap '' 0;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -382,7 +387,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # The umask is ridiculous, or mkdir does not conform to POSIX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # mkdir does not conform to POSIX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # or it failed possibly due to a race condition.  Create the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # directory the slow way, step by step, checking for races as we go.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -411,7 +416,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           prefixes=
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if $posix_mkdir; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            (umask=$mkdir_umask &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            (umask $mkdir_umask &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             # Don't fail if two instances are running concurrently.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             test -d "$prefix" || exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -451,7 +456,18 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Copy the file name to the temp name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    (umask $cp_umask &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     { test -z "$stripcmd" || {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   # Create $dsttmp read-write so that cp doesn't create it read-only,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   # which would cause strip to fail.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   if test -z "$doit"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     : >"$dsttmp" # No need to fork-exec 'touch'.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     $doit touch "$dsttmp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     } &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     $doit_exec $cpprog "$src" "$dsttmp") &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # and set any options; do chmod last to preserve setuid bits.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -477,6 +493,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       rm -f "$dsttmp"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # If $backupsuffix is set, and the file being installed
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # already exists, attempt a backup.  Don't worry if it fails,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      # e.g., if mv doesn't support -f.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      if test -n "$backupsuffix" && test -f "$dst"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # Rename the file to the real destination.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -491,9 +514,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         # file should still install successfully.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           test ! -f "$dst" ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          $doit $rmcmd -f "$dst" 2>/dev/null ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          $doit $rmcmd "$dst" 2>/dev/null ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           { echo "$0: cannot unlink or rename $dst" >&2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             (exit 1); exit 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur ltmain.sh libffi-3.3.new/ltmain.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ltmain.sh      2019-11-01 03:30:00.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/ltmain.sh       2021-01-04 19:48:46.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2124,7 +2124,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # a configuration failure hint, and exit.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ func_fatal_configuration ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    func_fatal_error ${1+"$@"} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    func__fatal_error ${1+"$@"} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       "See the $PACKAGE documentation for more information." \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       "Fatal configuration error."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7272,12 +7272,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # -tp=*                Portland pgcc target processor selection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # --sysroot=*          for sysroot support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # -specs=*             GCC specs files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       # -stdlib=*            select c++ std lib with clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      -specs=*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         func_quote_for_eval "$arg"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   arg=$func_quote_for_eval_result
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         func_append compile_command " $arg"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur m4/libtool.m4 libffi-3.3.new/m4/libtool.m4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- m4/libtool.m4  2019-11-01 03:30:00.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/m4/libtool.m4   2021-01-04 19:48:46.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1067,16 +1067,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     darwin1.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    darwin*) # darwin 5.x on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # if running on 10.5 or later, the deployment target defaults
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # to the OS version, if on x86, and 10.4, the deployment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      # target defaults to 10.4. Don't you love it?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  10.[[012]][[,.]]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    darwin*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      case ${MACOSX_DEPLOYMENT_TARGET},$host in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  10.[[012]],*|,*powerpc*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  10.*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  *)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2867,9 +2862,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # before this can be enabled.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   hardcode_into_libs=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  # Add ABI-specific directories to the system library path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # Ideally, we could use ldconfig to report *all* directores which are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # searched for libraries, however this is still not possible.  Aside from not
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # being certain /sbin/ldconfig is available, command
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2878,7 +2870,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # appending ld.so.conf contents (and includes) to the search path.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test -f /etc/ld.so.conf; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[     ]*hwcap[        ]/d;s/[:,      ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   # We used to test for /lib/ld.so.1 and disable shared libraries on
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur man/Makefile.in libffi-3.3.new/man/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- man/Makefile.in        2019-11-23 06:59:04.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/man/Makefile.in 2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Makefile.in generated by automake 1.16.1 from Makefile.am.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Makefile.in generated by automake 1.16.3 from Makefile.am.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # @configure_input@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1994-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This Makefile.in is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur missing libffi-3.3.new/missing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- missing        2019-11-01 03:30:05.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/missing 2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3,7 +3,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ scriptversion=2018-03-07.03; # UTC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1996-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This program is free software; you can redistribute it and/or modify
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur src/aarch64/ffi.c libffi-3.3.new/src/aarch64/ffi.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/aarch64/ffi.c      2019-10-31 08:49:54.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/src/aarch64/ffi.c       2021-01-04 19:40:32.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -62,6 +62,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if FFI_EXEC_TRAMPOLINE_TABLE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __MACH__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_PTRAUTH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <ptrauth.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <mach/vm_param.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -599,11 +602,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else if (flags & AARCH64_RET_NEED_COPY)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     rsize = 16;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* Allocate consectutive stack for everything we'll need.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  context = alloca (sizeof(struct call_context) + stack_bytes + 32 + rsize);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Allocate consectutive stack for everything we'll need.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     The frame uses 40 bytes for: lr, fp, rvalue, flags, sp */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  context = alloca (sizeof(struct call_context) + stack_bytes + 40 + rsize);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   stack = context + 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   frame = (void*)((uintptr_t)stack + (uintptr_t)stack_bytes);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  rvalue = (rsize ? (void*)((uintptr_t)frame + 32) : orig_rvalue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  rvalue = (rsize ? (void*)((uintptr_t)frame + 40) : orig_rvalue);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   arg_init (&state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   for (i = 0, nargs = cif->nargs; i < nargs; i++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -643,12 +647,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           state.ngrn = N_X_ARG_REG;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* Note that the default abi extends each argument
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+              to a full 64-bit slot, while the iOS abi allocates
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-             only enough space. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             only enough space, except for variadic arguments. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          memcpy(d, a, s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          *(ffi_arg *)d = ext;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (!state.allocating_variadic)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            memcpy(d, a, s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            *(ffi_arg *)d = ext;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -756,6 +761,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ffi_call_int (cif, fn, rvalue, avalue, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FFI_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef FFI_GO_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ffi_call_go (ffi_cif *cif, void (*fn) (void), void *rvalue,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -789,7 +796,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if FFI_EXEC_TRAMPOLINE_TABLE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __MACH__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_PTRAUTH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  codeloc = ptrauth_auth_data(codeloc, ptrauth_key_function_pointer, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_TRAMPOLINE_WHOLE_DYLIB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  void **config = (void **)((uint8_t *)codeloc - 2*PAGE_MAX_SIZE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   void **config = (void **)((uint8_t *)codeloc - PAGE_MAX_SIZE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   config[0] = closure;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   config[1] = start;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -825,6 +839,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return FFI_OK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ffi_closure *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ffi_find_closure_for_code(void *codeloc)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FFI_EXEC_TRAMPOLINE_TABLE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  ifdef FFI_TRAMPOLINE_WHOLE_DYLIB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    void **config = (void **)((uint8_t *)codeloc - 2*PAGE_MAX_SIZE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    void **config = (void **)((uint8_t *)codeloc - PAGE_MAX_SIZE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return config[0];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return (ffi_closure*)codeloc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef FFI_GO_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void ffi_go_closure_SYSV (void) FFI_HIDDEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void ffi_go_closure_SYSV_V (void) FFI_HIDDEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1006,4 +1036,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return flags;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* FFI_CLOSURES */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif /* (__aarch64__) || defined(__arm64__)|| defined (_M_ARM64)*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur src/aarch64/internal.h libffi-3.3.new/src/aarch64/internal.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/aarch64/internal.h 2019-10-31 08:49:54.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/src/aarch64/internal.h  2021-01-04 19:39:16.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,3 +65,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define N_X_ARG_REG               8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define N_V_ARG_REG               8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define CALL_CONTEXT_SIZE (N_V_ARG_REG * 16 + N_X_ARG_REG * 8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* Helpers for writing assembly compatible with arm ptr auth */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef LIBFFI_ASM
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_PTRAUTH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define SIGN_LR pacibsp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define SIGN_LR_WITH_REG(x) pacib lr, x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define AUTH_LR_AND_RET retab
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define AUTH_LR_WITH_REG(x) autib lr, x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define BRANCH_AND_LINK_TO_REG blraaz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define BRANCH_TO_REG braaz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define SIGN_LR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define SIGN_LR_WITH_REG(x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define AUTH_LR_AND_RET ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define AUTH_LR_WITH_REG(x)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define BRANCH_AND_LINK_TO_REG blr
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define BRANCH_TO_REG br
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur src/aarch64/sysv.S libffi-3.3.new/src/aarch64/sysv.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/aarch64/sysv.S     2019-10-31 08:49:54.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/src/aarch64/sysv.S      2021-01-04 19:40:21.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -78,9 +78,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_startproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CNAME(ffi_call_SYSV):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Sign the lr with x1 since that is where it will be stored */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SIGN_LR_WITH_REG(x1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Use a stack frame allocated by our caller.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  cfi_def_cfa(x1, 32);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(HAVE_PTRAUTH) && defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* darwin's libunwind assumes that the cfa is the sp and that's the data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   * used to sign the lr.  In order to allow unwinding through this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   * function it is necessary to point the cfa at the signing register.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cfi_def_cfa(x1, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  cfi_def_cfa(x1, 40);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   stp     x29, x30, [x1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  mov     x9, sp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  str     x9, [x1, #32]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   mov     x29, x1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   mov     sp, x0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_def_cfa_register(x29)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -111,13 +124,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Deallocate the context, leaving the stacked arguments.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   add     sp, sp, #CALL_CONTEXT_SIZE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  blr     x9                      /* call fn */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  BRANCH_AND_LINK_TO_REG     x9                   /* call fn */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ldp     x3, x4, [x29, #16]      /* reload rvalue and flags */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Partially deconstruct the stack frame.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  mov     sp, x29
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ldr     x9, [x29, #32]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  mov     sp, x9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_def_cfa_register (sp)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  mov     x2, x29                 /* Preserve for auth */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ldp     x29, x30, [x29]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Save the return value as directed.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -131,71 +146,76 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      and therefore we want to extend to 64 bits; these types
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      have two consecutive entries allocated for them.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   .align  4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-0:        ret                             /* VOID */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++0:        b 99f                           /* VOID */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1:        str     x0, [x3]                /* INT64 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2:        stp     x0, x1, [x3]            /* INT128 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3:        brk     #1000                   /* UNUSED */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4:        brk     #1000                   /* UNUSED */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5:        brk     #1000                   /* UNUSED */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 6:        brk     #1000                   /* UNUSED */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 7:        brk     #1000                   /* UNUSED */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 8:        st4     { v0.s, v1.s, v2.s, v3.s }[0], [x3]     /* S4 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 9:        st3     { v0.s, v1.s, v2.s }[0], [x3]   /* S3 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 10:       stp     s0, s1, [x3]            /* S2 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 11:       str     s0, [x3]                /* S1 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 12:       st4     { v0.d, v1.d, v2.d, v3.d }[0], [x3]     /* D4 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 13:       st3     { v0.d, v1.d, v2.d }[0], [x3]   /* D3 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 14:       stp     d0, d1, [x3]            /* D2 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 15:       str     d0, [x3]                /* D1 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 16:       str     q3, [x3, #48]           /* Q4 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 17:       str     q2, [x3, #32]           /* Q3 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 18:       stp     q0, q1, [x3]            /* Q2 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 19:       str     q0, [x3]                /* Q1 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  b 99f
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 20:       uxtb    w0, w0                  /* UINT8 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   str     x0, [x3]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-21:       ret                             /* reserved */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++21:       b 99f                           /* reserved */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 22:       uxth    w0, w0                  /* UINT16 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   str     x0, [x3]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-23:       ret                             /* reserved */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++23:       b 99f                           /* reserved */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 24:       mov     w0, w0                  /* UINT32 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   str     x0, [x3]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-25:       ret                             /* reserved */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++25:       b 99f                           /* reserved */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 26:       sxtb    x0, w0                  /* SINT8 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   str     x0, [x3]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-27:       ret                             /* reserved */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++27:       b 99f                           /* reserved */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 28:       sxth    x0, w0                  /* SINT16 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   str     x0, [x3]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-29:       ret                             /* reserved */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++29:       b 99f                           /* reserved */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 30:       sxtw    x0, w0                  /* SINT32 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   str     x0, [x3]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-31:       ret                             /* reserved */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++31:       b 99f                           /* reserved */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Return now that result has been populated. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++99:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  AUTH_LR_WITH_REG(x2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_endproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   .globl  CNAME(ffi_call_SYSV)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -205,6 +225,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   .size CNAME(ffi_call_SYSV), .-CNAME(ffi_call_SYSV)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FFI_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* ffi_closure_SYSV
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Closure invocation glue. This is the low level code invoked directly by
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -224,6 +246,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   .align 4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CNAME(ffi_closure_SYSV_V):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_startproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SIGN_LR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   stp     x29, x30, [sp, #-ffi_closure_SYSV_FS]!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_rel_offset (x29, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -247,6 +270,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   .align  4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_startproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ CNAME(ffi_closure_SYSV):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SIGN_LR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   stp     x29, x30, [sp, #-ffi_closure_SYSV_FS]!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_adjust_cfa_offset (ffi_closure_SYSV_FS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_rel_offset (x29, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -263,7 +287,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Load ffi_closure_inner arguments.  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ldp     PTR_REG(0), PTR_REG(1), [x17, #FFI_TRAMPOLINE_CLOSURE_OFFSET]   /* load cif, fn */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ldr     PTR_REG(2), [x17, #FFI_TRAMPOLINE_CLOSURE_OFFSET+PTR_SIZE*2]    /* load user_data */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_GO_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ .Ldo_closure:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   add     x3, sp, #16                             /* load context */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   add     x4, sp, #ffi_closure_SYSV_FS            /* load stack */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   add     x5, sp, #16+CALL_CONTEXT_SIZE           /* load rvalue */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -346,7 +372,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_adjust_cfa_offset (-ffi_closure_SYSV_FS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_restore (x29)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_restore (x30)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ret
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  AUTH_LR_AND_RET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_endproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   .globl  CNAME(ffi_closure_SYSV)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -432,6 +458,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   .size   CNAME(ffi_go_closure_SYSV), . - CNAME(ffi_go_closure_SYSV)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif /* FFI_GO_CLOSURES */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* FFI_CLOSURES */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif /* __arm64__ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined __ELF__ && defined __linux__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Only in libffi-3.3.new/src/aarch64: trampoline.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur src/arm/ffi.c libffi-3.3.new/src/arm/ffi.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/arm/ffi.c  2019-10-31 08:49:54.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/src/arm/ffi.c   2021-01-04 19:39:16.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -421,12 +421,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ffi_call_int (cif, fn, rvalue, avalue, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_GO_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ffi_call_go (ffi_cif *cif, void (*fn) (void), void *rvalue,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        void **avalue, void *closure)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ffi_call_int (cif, fn, rvalue, avalue, closure);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ffi_prep_incoming_args_SYSV (ffi_cif *cif, void *rvalue,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -529,6 +531,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return rvalue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FFI_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct closure_frame
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char vfp_space[8*8] __attribute__((aligned(8)));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -564,8 +568,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void ffi_closure_SYSV (void) FFI_HIDDEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void ffi_closure_VFP (void) FFI_HIDDEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_GO_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void ffi_go_closure_SYSV (void) FFI_HIDDEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void ffi_go_closure_VFP (void) FFI_HIDDEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* the cif must already be prep'ed */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -622,6 +629,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return FFI_OK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_GO_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ffi_status
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ffi_prep_go_closure (ffi_go_closure *closure, ffi_cif *cif,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                void (*fun) (ffi_cif *, void *, void **, void *))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -643,6 +651,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return FFI_OK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* FFI_CLOSURES */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Below are routines for VFP hard-float support. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur src/arm/sysv.S libffi-3.3.new/src/arm/sysv.S
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/arm/sysv.S 2019-10-31 08:49:54.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/src/arm/sysv.S  2021-01-04 19:39:16.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -208,6 +208,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   UNWIND(.fnend)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ARM_FUNC_END(ffi_call_SYSV)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if FFI_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int ffi_closure_inner_* (cif, fun, user_data, frame)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -354,6 +355,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   cfi_endproc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ARM_FUNC_END(ffi_closure_ret)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* FFI_CLOSURES */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if FFI_EXEC_TRAMPOLINE_TABLE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __MACH__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur src/closures.c libffi-3.3.new/src/closures.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/closures.c 2019-11-20 04:15:41.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/src/closures.c  2021-01-04 19:39:16.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -148,10 +148,19 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <mach/mach.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <pthread.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_PTRAUTH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <ptrauth.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_TRAMPOLINE_WHOLE_DYLIB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <assert.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <dispatch/dispatch.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <dlfcn.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void *ffi_closure_trampoline_table_page;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef struct ffi_trampoline_table ffi_trampoline_table;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef struct ffi_trampoline_table_entry ffi_trampoline_table_entry;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -160,7 +169,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* contiguous writable and executable pages */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   vm_address_t config_page;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  vm_address_t trampoline_page;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* free list tracking */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uint16_t free_count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -180,6 +188,21 @@ struct ffi_trampoline_table_entry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Total number of trampolines that fit in one trampoline table */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define FFI_TRAMPOLINE_COUNT (PAGE_MAX_SIZE / FFI_TRAMPOLINE_SIZE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* The trampoline dylib has one page for the MACHO_HEADER and one page for the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * trampolines. iOS 12.0 and later, and macOS on Apple Silicon require that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * the entire dylib needs to be remapped as a unit.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * arm (legacy): Allocate two pages -- a config page and a placeholder for the trampolines
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * arm64 (modern): Allocate three pages -- a config page and two placeholders for the trampoline dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_TRAMPOLINE_WHOLE_DYLIB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FFI_TRAMPOLINE_ALLOCATION_PAGE_COUNT 3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FFI_TRAMPOLINE_PAGE_SEGMENT_OFFSET PAGE_MAX_SIZE
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FFI_TRAMPOLINE_ALLOCATION_PAGE_COUNT 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define FFI_TRAMPOLINE_PAGE_SEGMENT_OFFSET 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static pthread_mutex_t ffi_trampoline_lock = PTHREAD_MUTEX_INITIALIZER;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static ffi_trampoline_table *ffi_trampoline_tables = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -195,34 +218,67 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   kern_return_t kt;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   uint16_t i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* Allocate two pages -- a config page and a placeholder page */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   config_page = 0x0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  kt = vm_allocate (mach_task_self (), &config_page, PAGE_MAX_SIZE * 2,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* The entire allocation is:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *    config_page
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *    trampoline_segment
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   * trampoline_segment is:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *    trampoline dylib mach-o header (if FFI_TRAMPOLINE_WHOLE_DYLIB)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *    trampoline page
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  kt = vm_allocate (mach_task_self (), &config_page, FFI_TRAMPOLINE_ALLOCATION_PAGE_COUNT * PAGE_MAX_SIZE,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               VM_FLAGS_ANYWHERE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (kt != KERN_SUCCESS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  /* Remap the trampoline table on top of the placeholder page */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  trampoline_page = config_page + PAGE_MAX_SIZE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  trampoline_page_template = (vm_address_t)&ffi_closure_trampoline_table_page;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  static void *trampoline_table_page;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_TRAMPOLINE_WHOLE_DYLIB
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  static dispatch_once_t trampoline_template_init_once;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  dispatch_once(&trampoline_template_init_once, ^{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    void * const trampoline_handle = dlopen("/usr/lib/libffi-trampolines.dylib", RTLD_NOW | RTLD_LOCAL | RTLD_FIRST);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    assert(trampoline_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    trampoline_table_page = dlsym(trampoline_handle, "ffi_closure_trampoline_table_page");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    assert(trampoline_table_page);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  });
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  trampoline_table_page = &ffi_closure_trampoline_table_page;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_PTRAUTH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  trampoline_page_template = (uintptr_t)ptrauth_auth_data(trampoline_table_page, ptrauth_key_function_pointer, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  trampoline_page_template = (uintptr_t)trampoline_table_page;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __arm__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* ffi_closure_trampoline_table_page can be thumb-biased on some ARM archs */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   trampoline_page_template &= ~1UL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  kt = vm_remap (mach_task_self (), &trampoline_page, PAGE_MAX_SIZE, 0x0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-           VM_FLAGS_OVERWRITE, mach_task_self (), trampoline_page_template,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  vm_address_t trampoline_segment_template = trampoline_page_template - FFI_TRAMPOLINE_PAGE_SEGMENT_OFFSET;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  vm_size_t trampoline_segment_size = (FFI_TRAMPOLINE_ALLOCATION_PAGE_COUNT - 1) * PAGE_MAX_SIZE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  /* Remap the trampoline table on top of the placeholder page */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  vm_address_t trampoline_segment = config_page + PAGE_MAX_SIZE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  kt = vm_remap (mach_task_self(), &trampoline_segment, trampoline_segment_size, 0x0,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           VM_FLAGS_FIXED | VM_FLAGS_OVERWRITE, mach_task_self(), trampoline_segment_template,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            FALSE, &cur_prot, &max_prot, VM_INHERIT_SHARE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (kt != KERN_SUCCESS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (kt != KERN_SUCCESS || !(cur_prot & VM_PROT_EXECUTE))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      vm_deallocate (mach_task_self (), config_page, PAGE_MAX_SIZE * 2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      vm_deallocate (mach_task_self (), config_page, FFI_TRAMPOLINE_ALLOCATION_PAGE_COUNT * PAGE_MAX_SIZE);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  trampoline_page = trampoline_segment + FFI_TRAMPOLINE_PAGE_SEGMENT_OFFSET;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* We have valid trampoline and config pages */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   table = calloc (1, sizeof (ffi_trampoline_table));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   table->free_count = FFI_TRAMPOLINE_COUNT;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   table->config_page = config_page;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  table->trampoline_page = trampoline_page;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Create and initialize the free list */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   table->free_list_pool =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -232,7 +278,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       ffi_trampoline_table_entry *entry = &table->free_list_pool[i];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       entry->trampoline =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  (void *) (table->trampoline_page + (i * FFI_TRAMPOLINE_SIZE));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  (void *) (trampoline_page + (i * FFI_TRAMPOLINE_SIZE));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_PTRAUTH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      entry->trampoline = ptrauth_sign_unauthenticated(entry->trampoline, ptrauth_key_function_pointer, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       if (i < table->free_count - 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   entry->next = &table->free_list_pool[i + 1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur src/x86/ffi.c libffi-3.3.new/src/x86/ffi.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/x86/ffi.c  2019-10-31 08:49:54.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/src/x86/ffi.c   2021-01-04 19:38:38.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -397,12 +397,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ffi_call_int (cif, fn, rvalue, avalue, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_GO_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ffi_call_go (ffi_cif *cif, void (*fn)(void), void *rvalue,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        void **avalue, void *closure)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ffi_call_int (cif, fn, rvalue, avalue, closure);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /** private members **/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -572,6 +574,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return FFI_OK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_GO_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void FFI_HIDDEN ffi_go_closure_EAX(void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void FFI_HIDDEN ffi_go_closure_ECX(void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void FFI_HIDDEN ffi_go_closure_STDCALL(void);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -608,6 +612,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return FFI_OK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* FFI_GO_CLOSURES */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* ------- Native raw API support -------------------------------- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !FFI_NO_RAW_API
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur src/x86/ffi64.c libffi-3.3.new/src/x86/ffi64.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/x86/ffi64.c        2019-10-31 08:49:54.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/src/x86/ffi64.c 2021-01-04 19:39:16.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -688,6 +688,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ffi_call_int (cif, fn, rvalue, avalue, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_GO_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef __ILP32__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ffi_call_go_efi64(ffi_cif *cif, void (*fn)(void), void *rvalue,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -708,6 +710,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ffi_call_int (cif, fn, rvalue, avalue, closure);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* FFI_GO_CLOSURES */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void ffi_closure_unix64(void) FFI_HIDDEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void ffi_closure_unix64_sse(void) FFI_HIDDEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -761,6 +764,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return FFI_OK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ffi_closure *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ffi_find_closure_for_code(void *code)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return (ffi_closure *) code;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int FFI_HIDDEN
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ffi_closure_unix64_inner(ffi_cif *cif,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    void (*fun)(ffi_cif*, void*, void**, void*),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -854,6 +863,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return flags;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_GO_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void ffi_go_closure_unix64(void) FFI_HIDDEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void ffi_go_closure_unix64_sse(void) FFI_HIDDEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -883,4 +894,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return FFI_OK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* FFI_GO_CLOSURES */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif /* __x86_64__ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur src/x86/ffiw64.c libffi-3.3.new/src/x86/ffiw64.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/x86/ffiw64.c       2019-10-31 08:49:54.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/src/x86/ffiw64.c        2021-01-04 19:38:38.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -187,7 +187,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void ffi_closure_win64(void) FFI_HIDDEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_GO_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ extern void ffi_go_closure_win64(void) FFI_HIDDEN;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ffi_status
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EFI64(ffi_prep_closure_loc)(ffi_closure* closure,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -225,6 +228,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return FFI_OK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef FFI_GO_CLOSURES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ffi_status
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ EFI64(ffi_prep_go_closure)(ffi_go_closure* closure, ffi_cif* cif,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                void (*fun)(ffi_cif*, void*, void**, void*))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -244,6 +248,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return FFI_OK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct win64_closure_frame
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur testsuite/Makefile.in libffi-3.3.new/testsuite/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- testsuite/Makefile.in  2019-11-23 08:50:18.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/testsuite/Makefile.in   2021-01-04 19:48:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Makefile.in generated by automake 1.16.1 from Makefile.am.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Makefile.in generated by automake 1.16.3 from Makefile.am.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # @configure_input@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Copyright (C) 1994-2020 Free Software Foundation, Inc.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # This Makefile.in is free software; the Free Software Foundation
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # gives unlimited permission to copy and/or distribute it,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -462,7 +462,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo '# Do not edit here.  If you wish to override these values' >>site.tmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo '# edit the last section' >>site.tmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo 'set srcdir "$(srcdir)"' >>site.tmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  @echo "set objdir `pwd`" >>site.tmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  @echo "set objdir \"`pwd`\"" >>site.tmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo 'set build_alias "$(build_alias)"' >>site.tmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo 'set build_triplet $(build_triplet)' >>site.tmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @echo 'set host_alias "$(host_alias)"' >>site.tmp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -ur testsuite/libffi.closures/huge_struct.c libffi-3.3.new/testsuite/libffi.closures/huge_struct.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- testsuite/libffi.closures/huge_struct.c        2019-11-19 08:06:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ libffi-3.3.new/testsuite/libffi.closures/huge_struct.c 2021-01-04 19:39:02.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,6 +9,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options -mlong-double-128 { target powerpc64*-*-linux* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* { dg-options -Wformat=0 { target moxie*-*-elf or1k-*-* } } */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <inttypes.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "ffitest.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ typedef   struct BigStruct{
</span></pre><pre style='margin:0'>

</pre>