<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>