2026-05-17  Mintsuki  <mintsuki@protonmail.com>

	ironclad: change default *-ironclad-mlibc to *-ironclad-gnu.
	The main/official Gloire distro of the Ironclad kernel project has
	moved to using glibc as its C library instead of mlibc, therefore,
	default to that.

	Also add support for autodetecting the Managarm C Library using the
	__mlibc__ default macro, as a nice bonus, to keep supporting it for
	Ironclad in config.guess.

	* config.guess (*:[Ii]ronclad:*:*): Use recognized libc instead of
	hardcoded mlibc.
	(__mlibc__): Recognize.
	* config.sub (ironclad*): Default to -gnu instead of -mlibc.
	(ironclad-gnu*-): Recognize.
	* testsuite/config-guess.data: Update ironclad entry.
	* testsuite/config-sub.data (riscv64-ironclad, riscv64-ironclad-mlibc,
	x86_64-ironclad): New entries.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.

2026-04-27  Changwei Miao  <chanthmiao@outlook.com>

	Add support for SW 64 CPU architecture.
	This adds the sw_64 targets.

	$ make check
	cd testsuite && bash config-guess.sh && rm uname
	PASS: config.guess checks (154 tests)
	cd testsuite && bash config-sub.sh
	PASS: config.sub checks (1183 tests)
	PASS: config.sub idempotency checks (1065 tests)
	PASS: config.sub canonicalise each config.guess testcase (154 tests)

	* config.guess (sw_64:Linux:*:*): Recognize.
	* config.sub (sw_64): Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.
	* testsuite/config-guess.data: Add test case for sw_64.
	* testsuite/config-sub.data (sw_64): Add test cases.

2026-03-22  Anna Wilcox  <AWilcox@Wilcox-Tech.com>

	testsuite: Ensure tests pass on musl libc hosts.
	The tests assume that a Linux system without a given libc will return
	`-gnu`; however, on a musl libc host, the check for `ldd --version`
	will fire and cause the tests to fail because they return `-musl`.

2026-01-01  Dmitry V. Levin  <ldv@strace.io>

	Update copyright years.
	* config.guess: Update copyright years.
	* config.sub: Likewise.
	* testsuite/config-guess.sh: Likewise.
	* testsuite/config-sub.sh: Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.

2025-07-10  Collin Funk  <collin.funk1@gmail.com>

	Adjust 'time-stamp' variables to modern Emacs.
	* config.guess: Make 'add-hook' add 'time-stamp' as buffer-local. Use
	"%Y" for 'time-stamp-format' instead of "%:y".
	* config.sub: Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.

2025-06-12  Pat Pannuto  <ppannuto@ucsd.edu>

	config.sub: Add Tock OS support.
	This adds the Tock OS targets in preparation for implementing the
	Tock OS-specific toolchain support.

	$ make check
	cd testsuite && bash config-guess.sh && rm uname
	PASS: config.guess checks (153 tests)
	cd testsuite && bash config-sub.sh
	PASS: config.sub checks (1171 tests)
	PASS: config.sub idempotency checks (1053 tests)
	PASS: config.sub canonicalise each config.guess testcase (153 tests)

	* config.sub (tock*): Recognize.
	(timestamp): Update.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data: Add testcases for *-tock.

2025-06-03  Oskari Alaranta  <oskari.alaranta@bananymous.com>

	config.sub: recognize banan_os.
	* config.sub ($os == banan_os): Recognize.
	(timestamp): Update.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (i686-banan_os, x86_64-banan_os):
	New entries.

2025-05-08  Siteshwar Vashisht  <svashisht@redhat.com>

	config.sub: fix a duplicated case pattern.
	... reported by shellcheck.

	Error: SHELLCHECK_WARNING (CWE-569): [#def4]
	/usr/lib/rpm/redhat/config.sub:245:8: warning[SC2221]: This pattern always overrides a later one on line 247.

	Related: https://openscanhub.fedoraproject.org/task/52550/log/redhat-rpm-config-343-4.fc43/scan-results.html#def4

2025-01-07  Russell Keith-Magee  <russell@keith-magee.com>

	config.sub: Include support for arm64_32 and iOS/tvOS/watchOS simulators
	  * Normalise the watchOS CPU architecture descriptor used by
	    Apple (`arm64_32`).
	  * Accept the `-simulator` suffix for descriptors for iOS, tvOS and
	    watchOS.

	The following is the list of compiler triples generated by Apple's
	clang toolchains for iOS 12.0, tvOS 9.0, and watchOS 4.0:

	  * `arm64-apple-ios12.0`
	  * `x86_64-apple-ios12.0-simulator`
	  * `arm64-apple-ios12.0-simulator`
	  * `arm64-apple-tvos9.0`
	  * `x86_64-apple-tvos9.0-simulator`
	  * `arm64-apple-tvos9.0-simulator`
	  * `arm64_32-apple-watchos4.0`
	  * `arm64-apple-watchos4.0-simulator`

	The `-simulator` suffix is significant because iOS devices and iOS
	simulators have a different ABI.  It is therefore essential that these
	can be differentiated in a compiler triple.

	* config.sub ($cpu == arm64_32): Recognize as aarch64.
	(ios*-simulator-|tvos*-simulator-|watchos*-simulator-): Recognize as
	a valid $kernel-$os-$obj configuration.
	(timestamp): Update.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (arm64-apple-ios12.0-simulator,
	arm64-apple-tvos10.0.0-simulator, arm64-apple-watchos5.0-simulator,
	arm64_32-apple-watchos4.0, x86_64-apple-ios12.0-simulator,
	x86_64-apple-tvos9.0-simulator): New entries.

2025-01-01  Dmitry V. Levin  <ldv@strace.io>

	Update copyright years.
	* config.guess: Update copyright years.
	* config.sub: Likewise.
	* testsuite/config-guess.sh: Likewise.
	* testsuite/config-sub.sh: Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.

2024-12-13  Tankut Baris Aktemur  <tankut.baris.aktemur@intel.com>

	config.sub: add intelgt as a basic machine.
	* config.sub ($cpu == intelgt): Recognize.
	(timestamp): Update.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (intelgt): New entry.

2024-11-20  mintsuki  <mintsuki@protonmail.com>

	ironclad: change ironclad to ironclad-mlibc.
	This complements libtool commit
	a2c84d14aa792413c40d753293f9e5b3f9aab619.

	* config.guess: Replace ironclad with ironclad-mlibc.
	(timestamp): Update.
	* config.sub ($maybe_os == ironclad-*, $basic_os == ironclad-*,
	$kernel-$os-$obj == ironclad-mlibc*-): Recognize.
	($os == ironclad*): Remove.
	(timestamp): Update.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-guess.data: Update ironclad entry.
	* testsuite/config-sub.data: Likewise.

2024-07-28  Paul Eggert  <eggert@cs.ucla.edu>

	Port config.guess to strict POSIX.1-2024 c17.
	* config.guess (set_cc_for_build):
	Try the c17 compiler, standardized in POSIX.1-2024.  See:
	https://pubs.opengroup.org/onlinepubs/9799919799/utilities/c17.html
	While we're at it, prefer c99 to c89.

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: testsuite: add 121 more test cases.
	These all hit code paths that were not already being tested, but
	produce (what appears to be) the correct canonical name without
	requiring any more code changes.

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: add missing CPUs, vendors, and OSes.
	Add the following entries to the tables of valid CPUs, vendors, and
	operating systems:

	CPUs:     v810

	Vendors:  acorn, atari, be, ccur, commodore, digital, intergraph, rebel,
	          rom68k, rombug, semi, siemens, sni, stratus, tektronix

	OSes:     atheos, chorusos, psos, syllable, wince

	Evidence elsewhere in this script, and/or in config.guess, indicates
	that these are all supposed to be valid.

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: improve consistency of shorthands and X-Y partial names.
	It seems to me that if ‘fooco’ expands to ‘cpu-fooco-foonlyos’,
	where ‘cpu’ is whatever CPU was hip at the time Fooco was making
	computers, then ‘cpu-fooco’ should also expand to ‘cpu-fooco-foonlyos’,
	and ‘cpu-foonlyos’ should as well, except when ‘foonlyos’ is something
	generic like ‘sysv’ or ‘bsd’.  Implement a bunch of cases where we
	didn’t do this quite right.  Probably there are more.

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: Treat i386-pc-rtmk-nova as a 4-part system name.
	Handle ‘i386-nova’ as shorthand for a 4-part system name,
	kernel=rtmk os=nova, instead of a canonicalized OS name with
	a dash in the middle, os=rtmk-nova.

	RTMK <https://rtmk.sourceforge.net/> is a microkernel.
	Nova <https://www.nongnu.org/nova> is an OS written on top of that
	microkernel.  The short system name ‘i386-nova’ was therefore defined
	to canonicalize to ‘i386-pc-rtmk-nova’, I think prior to the general
	introduction of 4-part system names.  ‘i386-pc-rtmk-nova’ still makes
	sense under the rules for interpreting 4-part names, but nowadays the
	logic for validating canonicalized name components rejects OS names
	with a dash in the middle.  Feeding kernel=rtmk os=nova to that logic,
	instead, does the Right Thing.

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: remove two unreachable case clauses.
	These attempt to perform normalizations that were already done by
	code above this point, so they are unnecessary.  There are already
	test cases for these normalizations.

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: normalize nextstep/openstep consistently.
	Normalize the names for NeXT’s operating systems consistently.
	The version number bump from 2 to 3 went along with a marketing
	name change from “nextstep” to “openstep”, which was being honored,
	or not, depending on what shorthand you put in and what CPU you
	selected (!)

	Consistent with the treatment of “Solaris 1” as an alias for sunos4
	and “SunOS 5” as an alias for solaris2, and also with what config.guess
	appears to do on these machines (which I do not have), config.sub will
	now emit CPU-next-nextstep, -nextstep2, -openstep3, -openstep4 no
	matter how it was spelled on input.

	These OSes historically were used with several other CPUs besides m68k
	and sparc, but I think one CPU for which they have a single-component
	shorthand, and one for which they don’t, is enough testing.

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: don’t override OS for blackfin, m68knommu, parisc.
	A similar issue to the previous patch: make the OS default for the CPU
	aliases “blackfin,” “m68knommu,” and “parisc” actually be a default
	and not an override.  There have been many OSes for PA/RISC.  Both
	blackfin and m68knommu are definitely used in bare-metal configuration
	as well as with an OS.  And in general, CPU aliases should behave as
	much like the canonical CPU name as possible.

	config.sub: don’t override OS for c90-cray.
	Fix a typo in the logic for handling the OS default for c90-cray,
	causing c90-cray-[anything] to get overridden to c90-cray-unicos.
	I’m not aware of any non-Unicos operating systems for the C90, but
	let’s not be a pointless obstacle for anyone who wants to write one.
	(For testing purposes I used Linux, because config.sub’s generic logic
	accepts it in combination with any CPU whatsoever.)

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: handle cNN-convex and convex-cNN shorthands correctly.
	convex-cNN and cNN-convex (where NN in 1, 2, 32, 34, 38) are supposed
	to be shorthands for cNN-convex-bsd, but the code to handle them
	was in the wrong switch statement, making it unreachable.  Fix.

	https://en.wikipedia.org/wiki/Convex_Computer says there was also a C4
	machine in this product line, at least on paper, but it’s not clear to
	me whether they ever shipped one.

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: accept knetbsd-gnu, netbsd-gnu, uclinux-gnu.
	There is evidence elsewhere in config.sub, and in config.guess,
	indicating that knetbsd-gnu, netbsd-gnu, and uclinux-gnu were
	supposed to be acceptable combinations of $kernel and $os, but
	they are currently being rejected.  Add them to the list of
	acceptable kernel-os combinations, and add test cases for them.

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: consistently use sun as default vendor for solaris*.
	config.sub had a rule that os=sunos* implies vendor=sun unless the
	vendor has already been set for some other reason, but no such rule
	for os=solaris*, and that meant `./config.sub sparc-solaris2` was
	inconsistent with what you’d get from config.guess on that system.

	Add the missing rule.

	Unlike the previous patch, this changes config.sub output for some
	systems still actually in use today, but hardly anything looks at
	the vendor field unless the OS field is something super generic like
	“bsd” or “sysv”, so I think we can get away with it.

	This patch also adds tests for the mapping of ‘sunos5’ to ‘solaris2’
	and ‘solaris1’ to ‘sunos4’, which is logically unrelated *except*
	that some of those test cases will fail in the absence of the above
	change.

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: correct Bull DPX/2-[123]00 and DPX/20 canonical names.
	config.sub was mapping all single-component shorthands matching the
	shell glob `dpx2*` to ‘m68k-bull-sysv3’, which is incorrect.  Of the
	four different machines once manufactured by Groupe Bull whose model
	number can be abbreviated ‘dpx2something’, only two were m68k-based:
	the DPX/2-200 and DPX/2-300.  The DPX/2-100, on the other hand, had an
	i386 CPU.  And the DPX/20 was a completely different beast, released
	years later and based on the POWER architecture.

	I’ve chosen to keep making ‘dpx2’ map to ‘m68k-bull-sysv3’ as the
	DPX/2-200 and /2-300 seem to have been the most widely used.  config.sub
	now understands ‘dpx2100’, ‘dpx2200’, and ‘dpx2300’ as shorthands for
	‘i386-bull-sysv3’, ‘m68k-bull-sysv3’, and ‘m68k-bull-sysv3’ respectively.
	It also accepts ‘dpx21xx’, ‘dpx22xx’, and ‘dpx22xx’ as equivalent to
	these, but no other variations; in particular, ‘dpx2xxx’, which was in
	the test suite, no longer works, as it is ambiguous.

	(As far as I can tell, there weren’t actually any submodels of any of
	these systems, so I could be persuaded to remove the …xx aliases.
	I kept them mainly because of the test suite formerly testing dpx2xxx.)

	Finally ‘dpx20’ now maps to ‘rs6000-bull-bosx’.  Both the ‘rs6000’ and
	‘bosx’ components of this name are debatable, but I *think* it is what
	config.guess would do on this machine.

	Sources for Bull DPX/2whatever history:

	 - https://oldskool.silicium.org/stations/bull_dpx20.htm
	 - https://www.feb-patrimoine.com/english/bull_dpx2.htm
	 - https://www.feb-patrimoine.com/english/unix_and_bull.htm

	Note in particular “Que cette machine soit estampillée BULL ou IBM,
	elle faisait tourner AIX (l'Unix d'IBM)” on the first of these pages,
	which is why I say “bosx” is debatable…

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: flatten and sort long case-alternative lists.
	Several of these lists are going to be modified substantially in the
	next few patches, this will make it much easier to see what is going on.
	No functional change.

	config.sub: disable shellcheck warning SC2162 globally.
	With the version of shellcheck I have (0.9.0), the existing attempts
	to disable SC2162, above each use of read without -r, do not work
	because they are not on the line *immediately* previous to the read
	command — there’s always a “saved_IFS=$IFS” line in between.  Since
	this script must not use read -r at all, we should just be disabling
	SC2162 globally.

2024-06-03  Zack Weinberg  <zack@owlfolio.org>

	config.sub: testsuite: whitespace and sorting corrections.
	Ensure that the second column of testsuite/config-sub.data is
	consistently indented—always to the same distance, using tabs—
	and that the entire file is properly sorted.  No functional change.

	It might make sense to swap the two columns of this file and then
	re-sort it, which would group all the aliases for a single canonical.
	I think it would be easier to work with that way but I don’t want to
	make that change unilaterally.

2024-05-13  Petr Vorel  <petr.vorel@gmail.com>
	    Zack Weinberg  <zack@owlfolio.org>

	config.guess: Avoid implicit int in definitions of main.
	Implicit ‘int’ (e.g. ‘extern foo();’ meaning the same thing as
	‘extern int foo();’) was dropped from the C standard in its 1999
	edition.  Twenty-five years later, free C compilers are finally
	starting to make this an error by default, so let’s not use it
	anymore in config.guess probe programs.

	(Note: As of this writing, GCC 14 and Clang 16 are both more lenient
	for ‘main() { … }’ specifically than for other uses of implicit int.
	Still, the writing is clearly on the wall.)

	We continue to use ‘int main() { … }’, instead of ‘int main(void) { … }’,
	because these programs may be compiled by truly ancient compilers that
	do not recognize the keyword ‘void’.  This leaves open the possibility
	of a compiler that errors by default on an empty argument list in a
	function definition, which, prior to the 2024 C standard, is technically
	still an “old-style” function definition; but we can worry about that
	if and when it comes up.

2024-03-12  Jan Klötzke  <jan.kloetzke@kernkonzept.com>

	config.sub: recognize L4Re OS.
	* config.sub ($os == l4re*): Recognize.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (aarch64-unknown-l4re, x86_64-pc-l4re): New
	entries.

2024-02-24  Jonathan Schwender  <jonathan.schwender@huawei.com>

	config.sub: Recognize OpenHarmony OS.
	Add support for [OpenHarmony] targets.
	The `ohos` targets are available [in `LLVM`] and
	documented in the [Rust target documentation].

	Known targets in Rust:

	- aarch64-unknown-linux-ohos
	- armv7-unknown-linux-ohos
	- x86_64-unknown-linux-ohos

	Known targets in Clang:
	- arm-linux-ohos
	- aarch64-linux-ohos
	- x86_64-linux-ohos

	There are also some additional targets available in clang,
	e.g. `liteos-ohos`, but I don't know much about those
	targets, so I'm leaving `liteos-ohos` out of scope for this
	patch.

	[OpenHarmony]: https://gitee.com/openharmony/docs/
	[in `LLVM`]: https://github.com/llvm/llvm-project/blob/main/clang/lib/Driver/ToolChains/OHOS.cpp
	[Rust target documentation]: https://doc.rust-lang.org/rustc/platform-support/openharmony.html

	* config.sub ($os == ohos*): Recognize.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (aarch64-linux-ohos): New entry.

2024-01-25  Mike Hommey  <mh@glandium.org>

	config.sub: recognise ARM64E machine type.
	ARM64E is a custom ABI for AArch64 8.3+ introducing pointer
	authentication codes. While technically just an ABI, it is treated
	as its own machine type, with triples in the format arm64e-*.

	* config.sub (arm64e): Recognize.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (arm64e-apple-darwin20.0.0,
	arm64e-apple-ios): New entries.

2024-01-01  Dmitry V. Levin  <ldv@altlinux.org>

	Update copyright years.
	* config.guess: Update copyright years.
	* config.sub: Likewise.
	* testsuite/config-guess.sh: Likewise.
	* testsuite/config-sub.sh: Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.

2023-12-27  Aleksandar Rikalo  <aleksandar.rikalo@syrmia.com>

	config.sub: recognize nanoMIPS CPUs.
	* config.sub: Recognize nanoMIPS CPUs.
	* testsuite/config-sub.data (nanomips): New entry.

2023-12-02  streaksu  <streaksu@protonmail.com>

	config.guess: recognize ironclad OS.
	* config.guess (*:Ironclad:*:*): Recognize.
	* doc/config.guess.1: Regenerate.
	* testsuite/config-guess.data (x86_64-unknown-ironclad): New entry.

	config.sub: recognize ironclad OS.
	* config.sub ($os == ironclad*): Recognize.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (x86_64-ironclad): New entry.

2023-10-30  Adam Joseph  <adam@westernsemico.com>

	config.sub: recognize *-*-uefi.
	This commit causes gnu-config to recognize the *-*-uefi triples.

	These triples describe binaries which use the PE object file format
	and UEFI calling "convention" (which is actually a family of
	completely unrelated calling conventions, one per CPU architecture):

	- https://uefi.org/specs/UEFI/2.9_A/02_Overview.html#detailed-calling-convention
	- https://uefi.org/specs/UEFI/2.9_A/02_Overview.html#detailed-calling-convention-1
	- https://uefi.org/specs/UEFI/2.9_A/02_Overview.html#detailed-calling-convention-2
	- https://wiki.osdev.org/UEFI#Calling_Conventions

	This is in contrast to the *-w64-mingw32 triple of GNU-EFI, which
	uses the ELF format and cdecl calling convention:

	- https://wiki.osdev.org/UEFI#Calling_Conventions

	Because *-*-uefi uses a different object file format (everywhere)
	and calling convention (everywhere except x86_32) from
	*-w64-mingw32, the resulting binaries cannot be linked against each
	other.  This is the primary justification for introducing a new
	triple.

	Since gnu-config does not yet have triples for these builds, we
	might as well use the same ones already selected by LLVM.  It
	considers uefi to be an operating system:

	- https://reviews.llvm.org/D131594

	* config.sub (*-*-uefi): Recognize.
	* testsuite/config-sub.data (i686-unknown-uefi, x86_64-unknown-uefi,
	  aarch64-unknown-uefi): New entries.

	X-Disclaimer: This commit shall not be construed as the author's approval of the UEFI boondoggle in any way, shape or form.

2023-10-28  John Ericson  <list@JohnEricson.me>

	Recognize the VideoCore 4 processor.
	This is supported in this GCC fork. [1] It has been packaged in Nixpkgs
	since 2019. [2]

	Their change to `config.sub` [3] is similar, but also includes a `vc4`
	-> `vc4-unknown-elf` shorthand; I don't see any reasons to add any new
	legacy 1-component short-hands, so I just skipped that part.

	[1]: https://github.com/itszor/vc4-toolchain

	[2]: https://github.com/NixOS/nixpkgs/pull/72657

	[3]: https://github.com/itszor/gcc-vc4/commit/91278afabe61808c0b02078c078e758d69f94aff

	* config.sub (vc4-*): Recognize.
	* testsuite/config-sub.data (vc4-unknown-none-elf): New entry.

2023-10-19  Alfred Persson Forsberg  <cat@catcream.org>

	config.guess: detect LLVM-libc via features.h.
	* config.guess (__LLVM_LIBC__): Recognize.
	* doc/config.guess.1: Regenerate.

	config.sub: add LLVM-libc support.
	* config.sub (*-linux-llvm): Recognize.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data: Add x86_64-linux-llvm.

2023-09-19  John Ericson  <John.Ericson@Obsidian.Systems>

	config.sub: Remove windows-gnu.
	`windows-gnu` has been used by LLVM and Rust to mean MinGW, but many
	people on the mailing list object that it is in no way bona fide GNU on
	Windows. Even under the interpretation of `-gnu` as a libc which LLVM
	often goes with, it doesn't pass muster either because MinGW uses
	msvcrt/ucrt, not any GNU libc. Arguably Cygwin, using a modified (GNU)
	Newlib, is the closest thing we have to "GNU on Windows" today.

	We couldn't decide on what `windows-*` should replace it, or even
	whether there should be such a thing, so absent consensus it is better
	to just remove it while it is still recently added and we don't need to
	worry about backwards compatibility. We can always re-add it later, but
	we can't do nothing now and remove it later.

	This partially reverts commit 91f6a7f616b161c25ba2001861a40e662e18c4ad.

	* config.sub (windows*-gnu*): Remove.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (x86_64-windows-gnu): Remove.

2023-09-15  Billy Laws  <blaws05@gmail.com>

	config.sub: recognise ARM64EC machine type.
	ARM64EC is a custom ABI for AArch64 that allows for interoperability
	with x86_64 compiled code. While technically just an ABI, it is treated
	as its own machine type, with triples in the format arm64ec-*.

	* config.sub (arm64ec): Recognize.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (arm64ec-pc-mingw32, arm64ec-windows): New
	entries.

2023-08-24  Dmitry V. Levin  <ldv@altlinux.org>

	testsuite: add tests for the aarch64c change.
	* testsuite/config-guess.data (aarch64c-unknown-freebsd14.0): New entry.
	* testsuite/config-sub.data (aarch64c-freebsd14.0,
	aarch64c-unknown-freebsd14.0): New entries.

2023-08-23  Urs Janßen  <urs@tin.org>

	config.sub: allow aarch64c-unknown-freebsd.
	config.guess says aarch64c-unknown-freebsd14.0 (cfarm240.cfarm.net,
	an Arm Morello SoC, quad-core aarch64 Neoverse N1-based CPU
	implementing CHERI), so let config.sub allow it.

	* config.sub (aarch64c): Recognize.
	* doc/config.sub.1: Regenerate.

2023-08-22  Dmitry V. Levin  <ldv@altlinux.org>

	config.guess: invoke "uname -p" from PATH for non-arm FreeBSD.
	Starting with commit afe1fa96bf32, "uname -p" from PATH is invoked in
	case of FreeBSD on arm, while in other FreeBSD cases it was invoked
	using a full pathname as "/usr/bin/uname -p".  Fix this inconsistency
	and invoke "uname -p" from PATH for all FreeBSD cases.  This also allows
	to test non-arm FreeBSD cases.

	* config.guess (*:FreeBSD:*:*): Invoke "uname -p" from PATH.
	* doc/config.guess.1: Regenerate.
	* testsuite/config-guess.data (x86_64-unknown-freebsd5.2,
	i586-unknown-freebsd7.0): Reintroduce the tests removed by commit
	68873f3c11c6.

2023-08-17  Bruno Haible  <bruno@clisp.org>

	config.guess: Detect Android (as opposed to GNU/Linux)
	Here's a patch to recognize Android environments.

	Such environments are "apps" with POSIX-like tools. Today, the most frequently
	used one is Termux [1][2][3]; on devices with Android versions before 5.0
	one can use Terminal-IDE [4][5].

	config.sub already supports this environment:

	  $ sh config.sub armv7l-linux-androideabi
	  armv7l-unknown-linux-androideabi

	I've built many GNU packages in this environment, with the following recipe:
	  CONFIG_SHELL=$PREFIX/bin/sh; export CONFIG_SHELL
	  CC="clang -ferror-limit=0" CXX="clang++ -ferror-limit=0"; export CC CXX
	  ./configure --host=armv7l-linux-androideabi --prefix=$HOME/local

	The Termux people have compiled or ported more than 1000 packages as well [6].

	But the requirement to pass the --host parameter each time is an annoyance.
	Without it, based only on the results of uname, config.guess guesses

	  $ sh config.guess
	  armv7l-unknown-linux-gnueabi

	and many configuration results are wrong (because Android has many functions
	in libc without declaring them in the .h files, depending on the so-called
	"Android API level"), leading to many compilation errors.

	With the attached patch, it produces

	  $ sh config.guess
	  armv7l-unknown-linux-androideabi

	The patch does not include an addition to the config.guess test suite, since
	the uname values are:
	  $ uname -m
	  armv7l
	  $ uname -r
	  4.19.127
	  $ uname -s
	  Linux
	  $ uname -v
	  #1 SMP PREEMPT Tue Apr 4 16:54:58 IST 2023
	  $ uname -p
	  unknown
	which maps to armv7l-unknown-linux-gnueabi.

	[1] https://github.com/termux/termux-app
	[2] https://f-droid.org/en/packages/com.termux/
	[3] https://wiki.termux.com/wiki/Main_Page
	[4] https://en.wikibooks.org/wiki/Android/Terminal_IDE
	[5] http://www.spartacusrex.com/terminalide.htm
	[6] https://github.com/termux/termux-packages/tree/master/packages

	* config.guess (Linux|GNU|GNU/*): Detect Android.
	* doc/config.guess.1: Regenerate.

2023-08-16  Adam Joseph  <adam@westernsemico.com>

	config.sub: add javascript-*-ghcjs.
	GHC has been using a custom triple "javascript-unknown-ghcjs" for
	their (non asm.js, non wasm) javascript-emitting kernel-less target.

	This triple is a bit of an oddball, so the support for it is highly
	restricted in order to discourage further proliferation of the
	javascript "cpu" or ghcjs "operating system", which are valid only
	in combination with each other.

	* config.sub (javascript-*-ghcjs): Allow.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (javascript-ghcjs,
	javascript-unknown-ghcjs): New entries.

	Link: https://gitlab.haskell.org/ghc/ghc/-/commit/6636b670233522f01d002c9b97827d00289dbf5c

2023-08-14  Adam Joseph  <adam@westernsemico.com>

	testsuite: add coverage for vendor-clobbering.
	While reimplementing config.sub for use in a situation where no bash
	interpreter was available, I discovered several oddities about
	config.sub's behavior.

	One such oddity was the fact that an explicitly-provided vendor will
	be clobbered by the inferred vendor for three cpu types: microblaze,
	s390, and mmix.  This commit adds test cases for this clobbering
	behavior, so that unintentional changes to it will be noticed.

	* testsuite/config-sub.data (microblaze-unknown-elf, mmix-unknown-elf,
	s390-unknown-elf): New entries.

2023-08-07  John Ericson  <list@JohnEricson.me>

	config.sub: Systematize parsing of machine code formats.
	Instead of treating them as OSes, we treat them as their own category.
	This is modeled on what LLVM does with its `ObjectFormatType` enum [1],
	advancing my long-running project of trying to nudge GNU config and LLVM
	towards each other, taking the best ideas of both.

	Currently, my emphasis is just on code cleanup. There are just a few
	tests for newly supported changes that fall out of this. But down the
	road, this also opens the door to parsing configs with more than 4
	components, like [2].

	[1]: https://llvm.org/doxygen/classllvm_1_1Triple.html#a83e907e55fa50e093caa96a0aff96201

	[2]: https://github.com/llvm/llvm-project/blob/a18266473be1439d324059afa0e8b124f0466428/llvm/unittests/TargetParser/TripleTest.cpp#L1873C50-L1873C77
	added in
	https://github.com/llvm/llvm-project/commit/28b82bc39ef076527c07718724913f70b5d60b69

	* config.sub: Save machine code format name separately from the OS name.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (arm-unknown-none-aout,
	arm-unknown-none-pe): New entries.

2023-07-31  Maciej W. Rozycki  <macro@orcam.me.uk>

	config.sub: Handle arbitrary MIPS CPU names.
	GNU binutils support the selection of the default MIPS subtarget via the
	configuration triplet, e.g. `mips64octeon+el-unknown-linux-gnu' builds a
	Linux/GNU 64-bit MIPS (n32 ABI) little-endian configuration with the CPU
	set to Octeon+ by default.  However `config.sub' rejects such a triplet
	and indeed it only lets through a random choice of ones people submitted
	changes for to support.

	There is a large number of MIPS CPU configurations, 118 at the moment,
	that GNU binutils know, so rather than adding them individually and then
	hoping it will be kept up to date from now on accept any `mips*' pattern
	for the machine part, just as we already do for a few of other targets.

		* config.sub: Allow any `mips*' CPU rather than listing a choice
		individually.
		* doc/config.sub.1: Regenerate.
		* testsuite/config-sub.data: Add test cases.

2023-07-20  Dmitry V. Levin  <ldv@altlinux.org>

	config.guess (aarch64:Linux:*:*): Detect 32-bit ABI.
	On x86_64 Linux, a C compiler producing 32bit code causes the guessed
	CPU to be changed to i686.

	Adapt this approach for aarch64 Linux, i.e. change the guessed CPU
	to armv8l when a compiler producing arm eabi code is detected.

	* config.guess (aarch64:Linux:*:*): Test for the 32-bit ABI.
	* doc/config.guess.1: Regenerate.

	Suggested-by: David Allsopp <david.allsopp@metastack.com>

2023-07-19  Paul Iannetta  <piannetta@kalray.eu>

	Add KVX MPPA detection.
	* config.guess (kvx:Linux:*:*, kvx:cos:*:*, kvx:mbr:*:*): Recognize.
	* config.sub (kvx): Recognize cpu.
	(cos*, mbr*): Recognize os.
	* testsuite/config-guess.data: Add tests for kvx targets.
	* testsuite/config-sub.data: Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.

2023-07-13  Luis Campos  <luisc@jfrog.com>

	config.sub: Add Apple tvOS and watchOS.
	These are distinct from "ios". They are also technically Darwin, so while
	something like "aarch64-apple-darwin" could be used when targeting these,
	on Apple-silicon based systems there could be cases where `--host` and
	`--build` have the same value, and a ./configure script may determine that
	we are not cross building, causing it to try to execute test programs for
	the target OS that will not run on macOS.

	These are functionally equivalent to iOS, and targets with "-tvos" and
	"-watchos" are already used by clang.

	* config.sub (tvos*, watchos*): Recognize.
	* testsuite/config-sub.data (arm64-apple-tvos, arm64-apple-tvos10.0.0,
	arm64-apple-watchos, arm64-apple-watchos5.0): New tests.
	* doc/config.sub.1: Regenerate.

2023-07-04  John Ericson  <list@JohnEricson.me>

	config.sub: Accept $cpu-$vendor-none-{coff,elf}
	These are not real OSes, they are object file formats. There is a
	longstanding tradition of using them for embedded/freestanding
	programming, so it makes sense to parse them with `kernel=none`.

	(I have a WIP future patch that systematizes parsing these non-OSes a
	bit more. That also opens the door to parsing a 5th component as LLVM
	can do.)

	This change unblocks an issue we've been having with Nixpkgs (see
	https://github.com/NixOS/nixpkgs/issues/165836 for the longer version).

	* config.sub (none-coff*, none-elf*): Recognize.
	* testsuite/config-sub.data (arm-unknown-none-coff,
	arm-unknown-none-elf, riscv64-company-none-elf): New tests.
	* doc/config.sub.1: Regenerate.

2023-06-27  John Ericson  <list@JohnEricson.me>

	config.sub: Accept LLVM-style $cpu-$vendor-windows-{gnu,msvc}
	In older times, MinGW (GCC toolchain with modified windows headers) was
	the only free software toolchain for Windows.  But now, LLVM has support
	both for MinGW ABI and Microsoft's own.  The distinction matters for C++
	more than C.

	LLVM[1], Rust[2], and other projects have taken to differentiating these
	two as `...windows-gnu` vs `...windows-msvc`.  I think that makes a lot
	of sense, as it correctly identifiers both their commonalities and their
	differences.

	A lot of MinGW-supporting software, most notably GCC itself, will
	presumably continue to use configs like x86_64-pc-mingw32 and
	i686-pc-mingw32.  That's fine; this patch doesn't normalize them away
	(like LLVM does) or remove them!  If and when that software wants to
	support the MSVC ABI without requiring MSVC itself, they can switch to
	these newer configurations.

	[1]: https://github.com/llvm/llvm-project/blob/a18266473be1439d324059afa0e8b124f0466428/llvm/unittests/TargetParser/TripleTest.cpp#L1907-L1951
	[2]: https://github.com/rust-lang/rust/blob/36fb58e433c782e27dd41034284e157cf86d587f/compiler/rustc_target/src/spec/mod.rs#L1255-L1271

2023-06-23  Paul Eggert  <eggert@cs.ucla.edu>

	Quote 'like this', not `like this'.
	In 2012 the GNU Coding Standards changed to recommend quoting
	'like this' or "like this" instead of `like this'.
	Alter diagnostics and comments accordingly.
	Use a more-consistent quoting style in config.sub diagnostics,
	preferring 'like this' to "like this" as the former is more
	resistant to shell metacharacters.

2023-01-21  Paul Eggert  <eggert@cs.ucla.edu>

	Fix config.sub spelling typo for "athlon"
	This typo was introduced in commit
	fc14426403b6106981d2b3a4666835df29203043
	dated Tue Aug 28 09:59:08 2018 +1000.

2023-01-01  Dmitry V. Levin  <ldv@altlinux.org>

	Update copyright years.
	* config.guess: Update copyright years.
	* config.sub: Likewise.
	* testsuite/config-guess.sh: Likewise.
	* testsuite/config-sub.sh: Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.

2022-10-07  Dmitry V. Levin  <ldv@altlinux.org>

	testsuite: make config data sorted using "make sort"
	* testsuite/config-guess.data: Make the data sorted.

2022-09-17  Arsen Arsenović  <arsen@aarsen.me>

	config.sub: add linux-mlibc targets.
	Note: currently, there's no detection method for linux-mlibc in
	config.guess, since there's no decided way to detect mlibc.


	* config.sub (linux-mlibc*): Recognize.
	* testsuite/config-sub.data (aarch64-linux-mlibc, riscv-linux-mlibc,
	x86_64-linux-mlibc): New tests.

2022-09-17  Arsen Arsenović  <arsen@aarsen.me>

	config.guess: support running on Managarm systems.

	* config.guess (x86_64:[Mm]anagarm:*:*, i?86:[Mm]anagarm:*:*,
	*:[Mm]anagarm:*:*): Recognize.
	(timestamp): Update.
	* doc/config.guess.1: Regenerate.
	* testsuite/config-guess.data: Add tests for managarm targets.

2022-09-17  Arsen Arsenović  <arsen@aarsen.me>

	config.sub: add managarm-{mlibc,kernel} targets.
	To achieve this, the `kernel' pseudo-OS value was added, intended to
	identify targets requiring a kernel-specific compiler and base system.


	* config.sub (managarm-*): Recognize.
	(mlibc*): Likewise libc.
	(timestamp): Update.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (aarch64-managarm, aarch64-managarm-kernel,
	aarch64-managarm-mlibc, riscv-managarm, riscv-managarm-kernel,
	riscv-managarm-mlibc, x86_64-managarm, x86_64-managarm-kernel,
	x86_64-managarm-mlibc): New tests.

2022-08-01  Xiaotian Wu  <wuxiaotian@loongson.cn>

	Remove loongarchx32.
	loongarchx32 doesn't exist in the real world, so we can delete it.

	* config.guess (loongarchx32:Linux:*:*): Remove.
	(timestamp): Update.
	* config.sub (loongarchx32): Remove.
	(timestamp): Update.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.
	* testsuite/config-guess.data (loongarchx32): Remove.
	* testsuite/config-sub.data (loongarchx32, loongarchx32-elf,
	loongarchx32-linux, loongarchx32-loongson-elf): Likewise.

	Link: https://loongson.github.io/LoongArch-Documentation/LoongArch-toolchain-conventions-EN.html

2022-05-25  Alexander von Gluck IV  <kallisti5@unixzen.com>

	config.guess: Update Haiku guesses.
	* config.guess (ppc:Haiku:*:*, *:Haiku:*:*): Recognize.
	(timestamp): Update.
	* doc/config.guess.1: Regenerate.
	* testsuite/config-guess.data: Add more test cases for Haiku.

2022-05-08  Bruno Haible  <bruno@clisp.org>

	config.guess (x86_64:Linux:*:*): Detect 32-bit ABI.
	* config.guess (x86_64:Linux:*:*): Test for the 32-bit ABI. Don't assume that
	__ILP32__ is a certain indicator for the x32 ABI; for GCC ≥ 9 it no longer is.
	* doc/config.guess.1: Regenerate.

	testsuite: Add one more testcase.
	* testsuite/config-guess.data: Add a test for i686-pc-linux-gnu.

2022-01-09  Idan Horowitz  <idan.horowitz@gmail.com>

	config.guess: recognize SerenityOS.
	* config.guess (*:SerenityOS:*:*): Recognize.
	(timestamp): Update.
	* doc/config.guess.1: Regenerate.
	* testsuite/config-guess.data: Add test case for SerenityOS.

2022-01-04  Dmitry V. Levin  <ldv@altlinux.org>

	gitlog-to-changelog: update from gnulib.
	* gitlog-to-changelog: Update to version '2021-02-24 23:42' from gnulib.

2022-01-03  Bernhard Voelker  <mail@bernhard-voelker.de>

	Fix GPLv3 license headers to use a comma instead of semicolon.
	See: https://www.gnu.org/licenses/gpl-3.0.html#howto

	Update license headers automatically using the following script:

	  $ git grep -l 'Foundation; either version 3' \
	    | xargs sed -i '/Foundation; either version 3/ s/n; e/n, e/'

	* config.guess: Adjust via the above command.
	(timestamp): Update.
	* config.sub: Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.

2022-01-01  Dmitry V. Levin  <ldv@altlinux.org>

	Update copyright years.
	* config.guess: Update copyright years.
	* config.sub: Likewise.
	* testsuite/config-guess.sh: Likewise.
	* testsuite/config-sub.sh: Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.

2021-12-25  Dmitry V. Levin  <ldv@altlinux.org>

	config.sub: alias armh to armv7l.
	ALT uses armh as an alias for armv7l-alt-linux-gnueabihf since 2012.

	* config.sub (armh-unknown|armh-alt): Set cpu, vendor, and basic_os.
	(timestamp): Update.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (armh, armh-alt-linux-gnueabihf): New tests.

2021-12-24  Dmitry V. Levin  <ldv@altlinux.org>

	config.sub: alias aarch64le to aarch64.
	Apparently, QNX reports aarch64 as aarch64le on little-endian machines.

	* config.sub (aarch64le-*): Set cpu to aarch64.
	(timestamp): Update.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (aarch64le-qnx): New test.

	Reported-by: Elad Lahav <e2lahav@gmail.com>
	Link: https://lists.gnu.org/archive/html/config-patches/2021-12/msg00009.html

2021-12-13  Dmitry V. Levin  <ldv@altlinux.org>

	config.sub: fix typo in timestamp.
	* config.sub: Fix timestamp.
	* doc/config.sub.1: Regenerate.

	Reported-by: Jordi Sanfeliu <jordi@fibranet.cat>
	Fixes: a013aac61edfa2a03727521508286480010e7bf3

2021-11-30  Andreas F. Borchert  <github@andreas-borchert.de>

	config.guess: x86_64-pc-solaris2.11 is not properly recognized.
	config.guess guesses Solaris 11 to run on a 32-bit platform
	despite Solaris 11 no longer supporting any 32-bit platform.

	See the following code at lines 434 to 445:

	| SUN_ARCH=i386
	| # If there is a compiler, see if it is configured for 64-bit objects.
	| # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
	| # This test works for both compilers.
	| if test "$CC_FOR_BUILD" != no_compiler_found; then
	|     if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
	|         (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
	|         grep IS_64BIT_ARCH >/dev/null
	|     then
	|         SUN_ARCH=x86_64
	|     fi
	| fi

	If "cc" is installed, i.e. the Oracle Studio compiler, this one is
	chosen for $CC_FOR_BUILD.  This compiler, the gcc provided by Oracle
	and also gcc bootstrapped from sources on that platform with a default
	configuration will by default generate 32-bit binaries -- even on
	a 64-bit platform.  And __amd64 will not be defined for compilations
	targeting a 32-bit platform.  This is different from the corresponding
	behaviour on GNU/Linux systems where the local platform is targeted by
	default.

	Thus, as long as you do not add "-m64" or if you have a custom-built
	gcc which defaults to 64 bit, you will get 32-bit binaries on Solaris
	despite living on a 64-bit platform.

	* config.guess (i86pc:SunOS:5.*:* || i86xen:SunOS:5.*:*): Adapt the
	test by adding the "-m64" flag.  This will work properly for Solaris
	10 as well (the last Solaris release that supported x86 32-bit
	platforms).
	* doc/config.guess.1: Regenerate.

2021-10-27  Jordi Sanfeliu  <jordi@fibranet.cat>

	Recognize Fiwix.
	$ make check
	cd testsuite && bash config-guess.sh && rm uname
	PASS: config.guess checks (137 tests)
	cd testsuite && bash config-sub.sh
	PASS: config.sub checks (882 tests)
	PASS: config.sub idempotency checks (819 tests)
	PASS: config.sub canonicalise each config.guess testcase (137 tests)

	* config.guess (i*86:Fiwix:*:*): Recognize.
	* config.sub (fiwix*): Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.
	* testsuite/config-guess.data: Add a test case for Fiwix.
	* testsuite/config-sub.data (i386-fiwix): New test.

2021-10-18  Kinshuk Dua  <kinshukdua@gmail.com>

	config.sub: Fix typo in comment.
	Fixes: 5e531d391852a54e7fab2d8ff55625fca514b305

2021-08-14  Nick Bowler  <nbowler@draconx.ca>

	config.sub: work around command assignment bug in some shells.
	When combining variable assignments with a shell command, some older
	shells (notably heirloom-sh and presumably also Solaris 10 /bin/sh)
	have a bug which causes the assignment to alter the current execution
	environment whenever the command is a shell built-in.  For example:

	  % dash -c 'x=good; x=bad echo >/dev/null; echo $x'
	  good

	  % jsh -c 'x=good; x=bad echo >/dev/null; echo $x'
	  bad

	The config.sub script contains a few commands of the form:

	  IFS=- read ...

	which triggers this bug, causing the IFS assignment to persist for the
	remainder of the script.  This can cause misbehaviour in certain cases,
	for example:

	  % jsh config.sub i386-linux-gnu
	  config.sub: test: unknown operator gnu

	  % jsh config.sub i386-gnu/linux
	  sed: can't read s|gnu/linux|gnu|: No such file or directory
	  Invalid configuration `i386-gnu/linux': OS `' not recognized

	* config.sub: Save and restore IFS explicitly to avoid shell bugs.
	* doc/config.sub.1: Regenerate.

2021-08-04  Jeremy Soller  <jackpot51@gmail.com>

	config.sub: add Linux Relibc Target.
	$ make check
	cd testsuite && bash config-guess.sh && rm uname
	PASS: config.guess checks (136 tests)
	cd testsuite && bash config-sub.sh
	PASS: config.sub checks (881 tests)
	PASS: config.sub idempotency checks (818 tests)
	PASS: config.sub canonicalise each config.guess testcase (136 tests)

	* config.sub (relibc*): Recognize.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data (x86_64-linux-relibc): New test.

2021-07-06  Stephanos Ioannidis  <root@stephanos.io>

	config.sub: add Zephyr RTOS support.
	This adds the Zephyr RTOS targets in preparation for implementing the
	Zephyr RTOS-specific toolchain support.

	$ make check
	cd testsuite && bash config-guess.sh && rm uname
	PASS: config.guess checks (136 tests)
	cd testsuite && bash config-sub.sh
	PASS: config.sub checks (880 tests)
	PASS: config.sub idempotency checks (817 tests)
	PASS: config.sub canonicalise each config.guess testcase (136 tests)

	* config.sub (zephyr*): Recognize.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data: Add testcases for *-zephyr.

2021-07-03  Ozkan Sezer  <sezero@users.sourceforge.net>

	config.sub: disable shellcheck SC2006 / SC2268 warnings.
	This is in line with the recent config.guess change in commit
	12fcf67c9108f4c4b581eaa302088782f0ee40ea

	* config.sub (shellcheck disable): Add SC2006,SC2268.

	Suggested-by: Jacob Bachmeyer <jcb@gnu.org>

2021-07-03  Ozkan Sezer  <sezero@users.sourceforge.net>

	config.sub: normalize the quoting in the `echo FOO | sed ...`
	Some cases quote the argument to echo and some do not.  At runtime
	it probably does not matter because the substituted values will never
	contain whitespace, but quoting them all would make shellcheck more
	useful.

	* config.sub: Consistently quote the argument of echo.
	* doc/config.sub.1: Regenerate.

	Suggested-by: Jacob Bachmeyer <jcb@gnu.org>

2021-07-02  Ozkan Sezer  <sezero@users.sourceforge.net>

	config.sub: replace POSIX $( ) with classic ` ` throughout.
	This is in line with the recent config.guess change in commit
	d70c4fa934de164178054c3a60aaa0024ed07c91.

	The patch was generated using patch-6.gawk script introduced in that
	commit.

	* config.sub: Revert POSIX command substitutions to classic form.

2021-06-04  Vineet Gupta  <Vineet.Gupta1@synopsys.com>

	Recognize arc32.
	This is the 32-bit variant of ARCv3 ISA (which is not compatible with the
	32-bit ARCv2 ISA)

	| make check
	| cd testsuite && bash config-guess.sh && rm uname
	| PASS: config.guess checks (136 tests)
	| cd testsuite && bash config-sub.sh
	| PASS: config.sub checks (864 tests)
	| PASS: config.sub idempotency checks (801 tests)
	| PASS: config.sub canonicalise each config.guess testcase (136 tests)

	* config.guess (arc32:Linux:*:*): Recognize.
	* config.sub (arc32): Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.
	* testsuite/config-guess.data: Add a test case for arc32.
	* testsuite/config-sub.data (arc32, arc*-elf): Add test cases.

2021-05-27  Jacob Bachmeyer  <jcb@gnu.org>

	Remove automatic patch generators.
	These tools have served their purposes and need not be kept outside of
	the repository history any longer.  This patch as a diff also collects
	the contents of the various tools in one convenient place.

	* patch-1.gawk: Remove.
	* patch-3.gawk: Likewise.
	* patch-6.gawk: Likewise.

2021-05-26  Jacob Bachmeyer  <jcb@gnu.org>

	config.guess: manual fixups after previous automatic patch.
	The tool could not handle command substitutions that span lines, but
	fortunately there were only two such substitutions in the script.

	The test for which universe is active on Pyramid is rewritten into a
	case block because it was the only use of a command substitution as an
	argument to the test command, which would require quoting.

	* config.guess: Rewrite "if" for Pyramid systems to "case".

2021-05-26  Jacob Bachmeyer  <jcb@gnu.org>

	config.guess: replace POSIX $( ) with classic ` ` throughout.
	The previous replacement of backticks with POSIX command substitutions
	was ill-considered and illogical: this script recognizes many archaic
	machine types that probably never had POSIX shells, therefore it needs
	to be able to run successfully under pre-POSIX shells.

	This patch was generated using the included GNU Awk program.

	* config.guess: Revert POSIX command substitutions to classic form.
	* patch-6.gawk: Store the tool that produced the automated patch.

2021-05-26  Jacob Bachmeyer  <jcb@gnu.org>

	config.guess: manual fixup after previous automated patches.
	This patch provides the special handling for the GNU system.  As these
	were two small and unique edits, they were not included in the scripts.

	This patch also cleans up other minor issues that must be addressed
	before reverting to classic command substitutions and updates
	"shellcheck" directives to account for changes in this script and the
	change in "shellcheck" towards reporting individual portability issues.

2021-05-26  Jacob Bachmeyer  <jcb@gnu.org>

	config.guess: automatic fixups after previous automated patch.
	This patch was generated using the following command:

	  sed -i config.guess \
	      -e '/="[^"]\+"\(-\|$\)/s/="\([^"([:space:])]\+\)"/=\1/' \
	      -e '/="[^"]\+"[[:alnum:]]/s/="\$\([^([:space:])]\+\)"/=${\1}/' \
	      -e \
	'/\$(echo[^|]\+|/s/\([^[:space:]]\)[[:space:]]*|[[:space:]]*sed/\1 | sed/g'

	* config.guess: Remove unneeded quotes in other variable assignments,
	standardize spacing for "echo ... | sed" substitutions.

2021-05-26  Jacob Bachmeyer  <jcb@gnu.org>

	config.guess: remove unneeded quotes and factor command substitutions.
	This is further cleanup and simplifies some constructs that can confuse
	Emacs' syntax highlighting while generally reducing required quoting.

	This patch was generated using the included GNU Awk program.

	* config.guess: Remove unneeded variable quotes and factor out command
	substitutions when setting GUESS.
	* patch-3.gawk: Store the tool that produced the automated patch.

2021-05-25  Jacob Bachmeyer  <jcb@gnu.org>

	config.guess: manual fixups after previous automatic patch.
	* config.guess: Adjust a few "leftover" cases that the tool could not
	easily recognize and fixes comment indentation in a few other special
	cases.

2021-05-25  Jacob Bachmeyer  <jcb@gnu.org>

	config.guess: use intermediate variable with uname results.
	This will allow quoting to be significantly simplified in another
	pass through the file.

	This patch was generated using the included GNU Awk program.

	* config.guess: Use GUESS variable to hold results of uname analysis.
	* patch-1.gawk: Store the tool that produced the automated patch.

2021-05-25  Jacob Bachmeyer  <jcb@gnu.org>

	config.guess: introduce intermediate variable with uname results.
	This will allow quoting to be significantly simplified in another
	pass through the file.

	* config.guess: Introduce GUESS variable to hold results of uname analysis.

2021-05-24  Dmitry V. Levin  <ldv@altlinux.org>

	config.guess: fix shellcheck warning SC2154.
	While, according to Plan 9 documentation, the environment variable
	$cputype is set to the name of the kernel's CPU's architecture,
	shellcheck warns that cputype is referenced but not assigned.
	Be on the safe side and do not use cputype if it is not defined
	or empty.

	* config.guess (*:Plan9:*:*): Fix shellcheck warning SC2154.

2021-05-24  Dmitry V. Levin  <ldv@altlinux.org>

	config.guess: remove redundant quotes in case commands.
	According to the GNU Autoconf Portable Shell Programming manual,
	the Bourne shell does not systematically split variables and back-quoted
	expressions, in particular on the right-hand side of assignments and in
	the argument of 'case'.

	The change is made automatically using the following command:
	$ sed -E -i 's/(\<case )"(\$[^"]+)"( in\>)/\1\2\3/' config.guess

	* config.guess: Simplify case commands by removing quotes around the
	argument.

	Suggested-by: Jacob Bachmeyer <jcb@gnu.org>

2021-05-24  Dmitry V. Levin  <ldv@altlinux.org>

	config.guess: simplify exit status workaround on alphaev67-dec-osf5.1.
	Commit 29865ea8a5622cdd80b7a69a0afa78004b4cd311 introduced an exit trap
	reset before exiting to avoid a spurious non-zero exit status on
	alphaev67-dec-osf5.1.  Simplify that code a bit by moving the exit trap
	reset around.

	* config.guess (alpha:OSF1:*:*): Reset exit trap earlier.
	* doc/config.guess.1: Regenerate.

2021-05-05  Dmitry V. Levin  <ldv@altlinux.org>

	testsuite: make config data sorted using "make sort"
	* testsuite/config-guess.data: Make the data sorted.
	* testsuite/config-sub.data: Likewise.

2021-05-05  Dmitry V. Levin  <ldv@altlinux.org>

	testsuite/config-guess.data: remove SecBSD test.
	Sadly,  the test infrastructure is not ready for guesses based on the
	output of "arch" yet.

	* testsuite/config-guess.data: Remove SecBSD test.

2021-05-01  Maciej W. Rozycki  <macro@orcam.me.uk>

	config.sub: Handle MIPS R3 and R5 ISA levels with CPU names.
	Complement binutils commit ae52f4830604 ("Add MIPS r3 and r5 support.")
	and recognize MIPS CPU patterns for the R3 and R5 ISA levels, used by
	GAS to set defaults.

	* config.sub (mipsisa32r3, mipsisa32r3el, mipsisa32r5, mipsisa32r5el,
	mipsisa64r3, mipsisa64r3el, mipsisa64r5, mipsisa64r5el): Recognize.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data: Add test cases.

2021-04-21  Vineet Gupta  <Vineet.Gupta1@synopsys.com>

	Recognize arc64.
	This paves way for setting up arc64 software ecosystem.

	$ make check
	cd testsuite && bash config-guess.sh && rm uname
	PASS: config.guess checks (136 tests)
	cd testsuite && bash config-sub.sh
	PASS: config.sub checks (853 tests)
	PASS: config.sub idempotency checks (790 tests)
	PASS: config.sub canonicalise each config.guess testcase (136 tests)

	* config.guess (arc64:Linux:*:*): Recognize.
	* config.sub (arc64): Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.
	* testsuite/config-guess.data: Add a test case for arc64.
	* testsuite/config-sub.data (arc64, arc*-elf): Add test cases.

2021-04-16  Purple Rain  <purplerain@secbsd.org>

	config.guess: add SecBSD support.
	* config.guess (*:SecBSD:*:*): Recognize.
	* doc/config.guess.1: Regenerate.
	* testsuite/config-guess.data: Add a test case.

	config.sub: add SecBSD support.
	* config.sub (secbsd*): Recognize.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data: Add x86_64-secbsd.

2021-03-10  Dmitry V. Levin  <ldv@altlinux.org>

	testsuite: make config data sorted using "make sort"
	* testsuite/config-guess.data: Make the data sorted.
	* testsuite/config-sub.data: Likewise.

2021-03-10  Idan Horo  <idan.horowitz@gmail.com>

	config.sub: Add support for SerenityOS.
	* config.sub (serenity*): Recognize.
	* doc/config.sub.1: Regenerate.
	* testsuite/config-sub.data: Add i386-serenity.

2021-01-25  Kalamatee  <kalamatee@gmail.com>

	config.guess: update AROS system detection.
	* config.guess: Recognize *:AROS:*:*.
	* doc/config.guess.1: Regenerate.
	* testsuite/config-guess.data: Add test cases.

2021-01-19  M. Levinson  <mlevins@users.sourceforge.net>

	config.guess: fix shell variable quoting bug.
	* config.guess (*:NetBSD:*:*): Spell out the full sysctl command twice
	instead of using a shell variable.
	* doc/config.guess.1: Regenerate.

	Fixes: 827c77253b396c07306927b2a4b794a3251c48eb

2021-01-08  Peixing Xin  <peixing.xin@windriver.com>
	    John Ericson  <git@JohnEricson.me>

	config.sub: recognize four-part configuration name for VxWorks.
	For example:

	  armv7m-wrs-vxworks-eabihf
	  armv7-wrs-vxworks-eabihf
	  i686-wrs-vxworks-simlinux
	  i686-wrs-vxworks-simwindows
	  powerpc-wrs-vxworks-spe
	  x86_64-wrs-vxworks-simlinux
	  x86_64-wrs-vxworks-simwindows

	* config.sub: Recognize four-part configuration name for VxWorks.
	* doc/config.guess.1: Regenerate.
	* testsuite/config-sub.data: Add test cases.

2021-01-06  Alan Modra  <amodra@gmail.com>

	config.sub: accept OS of eabi* and gnueabi*
	Commit 5e531d391852 broke powerpc-eabivle:

	$ ./config.sub powerpc-eabivle
	Invalid configuration `powerpc-eabivle': OS `eabivle' not recognized

	Also powerpc-eabisim and probably some arm configurations.

	* config.sub: Accept OS of eabi* and gnueabi*.
	* testsuite/config-sub.data: Add powerpc-eabisim and powerpc-eabivle.

2021-01-01  Dmitry V. Levin  <ldv@altlinux.org>

	Update copyright years.
	* config.guess: Update copyright years.
	* config.sub: Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.

2020-12-31  Kito Cheng  <kito.cheng@sifive.com>

	Recognize riscv32be and riscv64be.
	Recently RISC-V community got patches big-endian support for binutils,
	and we'd like to accept that, however before accepting that I think it
	would be better to upstream config.sub and config.guess change here :)

	It's my check result on Ubuntu 18.04:

	 $ make check
	 cd testsuite && bash config-guess.sh && rm uname
	 PASS: config.guess checks (131 tests)
	 cd testsuite && bash config-sub.sh
	 PASS: config.sub checks (830 tests)
	 PASS: config.sub idempotency checks (767 tests)
	 PASS: config.sub canonicalise each config.guess testcase (131 tests)

	* config.guess (riscv32be:Linux:*:*, riscv64be:Linux:*:*): Recognize.
	* config.sub (riscv32be, riscv64be): Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.
	* testsuite/config-guess.data: Add test cases for riscv32be, and riscv64be.
	* testsuite/config-sub.data (riscv32be, riscv64be): Add test cases.

2020-12-22  Xiaotian Wu  <wuxiaotian@loongson.cn>

	Recognize loongarch32, loongarch64, and loongarchx32.
	* config.guess (loongarch32:Linux:*:*, loongarch64:Linux:*:*,
	loongarchx32:Linux:*:*): Recognize.
	* config.sub (loongarch32, loongarch64, loongarchx32): Likewise.
	* doc/config.guess.1: Regenerate.
	* doc/config.sub.1: Likewise.
	* testsuite/config-guess.data: Add test cases for loongarch32,
	loongarch64, and loongarchx32.
	* testsuite/config-sub.data (loongarch32, loongarch64, loongarchx32):
	Add test cases.

2020-12-22  Dmitry V. Levin  <ldv@altlinux.org>

	testsuite: make config data sorted using "make sort"
	* Makefile (sort): Add dependencies, sort in C locale using "sort -u".
	* testsuite/config-guess.data: Make the data sorted.
	* testsuite/config-sub.data: Likewise.

	Generate ChangeLog from git log.
	* ChangeLog: Rename to ChangeLog-old.
	* Makefile.am (ChangeLog): New rule.
	* .gitignore: New file.
	* gitlog-to-changelog: Import from gnulib.


See ChangeLog-old for older changes.
