From 15d32f6b02f1a1cd81e8b5130ae8f1f4785545fd Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 20 Feb 2022 14:45:14 -0500 Subject: [PATCH 1/8] ci: skip html5lib-tests on v1.13.x branch see https://github.com/sparklemotion/nokogiri/issues/2449 --- .github/workflows/upstream.yml | 42 +++++++++++++++++----------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml index 5de8e07d52..81b915f53e 100644 --- a/.github/workflows/upstream.yml +++ b/.github/workflows/upstream.yml @@ -135,24 +135,24 @@ jobs: - run: bundle exec rake compile - run: bundle exec rake test - html5lib-tests: - runs-on: ubuntu-latest - container: - image: ghcr.io/sparklemotion/nokogiri-test:mri-3.1 - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - uses: actions/cache@v2 - with: - path: ports - key: ports-ubuntu-${{hashFiles('dependencies.yml', 'patches/**/*.patch')}} - - name: Update html5lib-tests - run: | - cd test/html5lib-tests - git remote update origin - git checkout origin/master - git log --pretty=oneline -n1 - - run: bundle install --local || bundle install - - run: bundle exec rake compile -- --disable-system-libraries - - run: bundle exec rake test + # html5lib-tests: + # runs-on: ubuntu-latest + # container: + # image: ghcr.io/sparklemotion/nokogiri-test:mri-3.1 + # steps: + # - uses: actions/checkout@v2 + # with: + # submodules: true + # - uses: actions/cache@v2 + # with: + # path: ports + # key: ports-ubuntu-${{hashFiles('dependencies.yml', 'patches/**/*.patch')}} + # - name: Update html5lib-tests + # run: | + # cd test/html5lib-tests + # git remote update origin + # git checkout origin/master + # git log --pretty=oneline -n1 + # - run: bundle install --local || bundle install + # - run: bundle exec rake compile -- --disable-system-libraries + # - run: bundle exec rake test From 93d37f783f4204ab75faafd9c8d0685647facb48 Mon Sep 17 00:00:00 2001 From: MSP-Greg Date: Wed, 16 Feb 2022 08:25:46 -0600 Subject: [PATCH 2/8] ci: Change Ruby setup to standard --- .github/workflows/ci.yml | 3 +-- .github/workflows/gem-install.yml | 6 ++---- .github/workflows/upstream.yml | 3 +-- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 37ab1616da..45b1f796ce 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -244,12 +244,11 @@ jobs: - uses: actions/checkout@v2 with: submodules: true - - uses: MSP-Greg/setup-ruby-pkgs@win-ucrt-2 + - uses: MSP-Greg/setup-ruby-pkgs@v1 with: ruby-version: "${{matrix.ruby}}" mingw: "libxml2 libxslt" bundler-cache: true - setup-ruby-ref: MSP-Greg/ruby-setup-ruby/win-ucrt-1 - uses: actions/cache@v2 if: matrix.sys == 'disable' with: diff --git a/.github/workflows/gem-install.yml b/.github/workflows/gem-install.yml index 153054da24..a6ac76ee64 100644 --- a/.github/workflows/gem-install.yml +++ b/.github/workflows/gem-install.yml @@ -113,11 +113,10 @@ jobs: - uses: actions/checkout@v2 with: submodules: true - - uses: MSP-Greg/setup-ruby-pkgs@win-ucrt-2 + - uses: MSP-Greg/setup-ruby-pkgs@v1 with: ruby-version: "3.1" mingw: "libxml2 libxslt" - setup-ruby-ref: MSP-Greg/ruby-setup-ruby/win-ucrt-1 - uses: actions/download-artifact@v2 with: name: cruby-gem @@ -289,10 +288,9 @@ jobs: ruby: ["3.1"] runs-on: windows-2022 steps: - - uses: MSP-Greg/setup-ruby-pkgs@win-ucrt-2 + - uses: MSP-Greg/setup-ruby-pkgs@v1 with: ruby-version: "${{matrix.ruby}}" - setup-ruby-ref: MSP-Greg/ruby-setup-ruby/win-ucrt-1 - uses: actions/download-artifact@v2 with: name: cruby-x64-mingw-ucrt-gem diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml index 81b915f53e..0a3e6cd9b4 100644 --- a/.github/workflows/upstream.yml +++ b/.github/workflows/upstream.yml @@ -83,13 +83,12 @@ jobs: - uses: actions/checkout@v2 with: submodules: true - - uses: MSP-Greg/setup-ruby-pkgs@ucrt + - uses: MSP-Greg/setup-ruby-pkgs@v1 with: ruby-version: "head" apt-get: "libxml2-dev libxslt1-dev pkg-config" mingw: "_upgrade_ libxml2 libxslt pkgconf" bundler-cache: true - setup-ruby-ref: MSP-Greg/ruby-setup-ruby/00-win-ucrt - uses: actions/cache@v2 if: matrix.sys == 'disable' with: From 7957c7b00936e282fbc93919647a3fb2502a4388 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 20 Feb 2022 13:26:55 -0500 Subject: [PATCH 3/8] style: rubocop --- test/test_css_cache.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_css_cache.rb b/test/test_css_cache.rb index 14a471011d..7bfa21761f 100644 --- a/test/test_css_cache.rb +++ b/test/test_css_cache.rb @@ -134,8 +134,8 @@ def test_cache_key_on_ns_prefix_and_visitor_config Nokogiri::CSS.xpath_for("foo", prefix: ".//", ns: { "example" => "http://example.com/" }, visitor: Nokogiri::CSS::XPathVisitor.new(builtins: Nokogiri::CSS::XPathVisitor::BuiltinsConfig::ALWAYS)) Nokogiri::CSS.xpath_for("foo", prefix: ".//", ns: { "example" => "http://example.com/" }, - visitor: Nokogiri::CSS::XPathVisitor.new(builtins: Nokogiri::CSS::XPathVisitor::BuiltinsConfig::ALWAYS, - doctype: Nokogiri::CSS::XPathVisitor::DoctypeConfig::HTML5)) + visitor: Nokogiri::CSS::XPathVisitor.new(builtins: Nokogiri::CSS::XPathVisitor::BuiltinsConfig::ALWAYS, + doctype: Nokogiri::CSS::XPathVisitor::DoctypeConfig::HTML5)) assert_equal(5, cache.length) end From e8854632856b6641bc5439395ee8d7a3ad6b1a5c Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 20 Feb 2022 13:58:01 -0500 Subject: [PATCH 4/8] dev(package): handle either .tar.gz or .tar.xz archive names preparing for the libxml2 and libxslt upgrades --- rakelib/extensions.rake | 8 ++++++-- scripts/test-gem-file-contents | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/rakelib/extensions.rake b/rakelib/extensions.rake index 567a8f3321..17004227cc 100644 --- a/rakelib/extensions.rake +++ b/rakelib/extensions.rake @@ -213,6 +213,10 @@ def java? end def add_file_to_gem(relative_source_path) + if relative_source_path.nil? || !File.exist?(relative_source_path) + raise "Cannot find file '#{relative_source_path}'" + end + dest_path = File.join(gem_build_path, relative_source_path) dest_dir = File.dirname(dest_path) @@ -377,8 +381,8 @@ else ["libxml2", "libxslt"].each do |lib| version = dependencies[lib]["version"] - archive = File.join("ports", "archives", "#{lib}-#{version}.tar.gz") - add_file_to_gem archive + archive = Dir.glob(File.join("ports", "archives", "#{lib}-#{version}.tar.*")).first + add_file_to_gem(archive) patchesdir = File.join("patches", lib) patches = %x(#{["git", "ls-files", patchesdir].shelljoin}).split("\n").grep(/\.patch\z/) diff --git a/scripts/test-gem-file-contents b/scripts/test-gem-file-contents index 08a3c0905f..58a59d637d 100755 --- a/scripts/test-gem-file-contents +++ b/scripts/test-gem-file-contents @@ -119,9 +119,9 @@ describe File.basename(gemfile) do it "contains the port files" do actual_ports = gemfile_contents.grep(%r{^ports/}) - assert_equal(1, actual_ports.grep(/libxml2-\d+\.\d+\.\d+\.tar\.gz/).length, + assert_equal(1, actual_ports.grep(/libxml2-\d+\.\d+\.\d+\.tar\.[gx]z/).length, "expected #{actual_ports} to include libxml2") - assert_equal(1, actual_ports.grep(/libxslt-\d+\.\d+\.\d+\.tar\.gz/).length, + assert_equal(1, actual_ports.grep(/libxslt-\d+\.\d+\.\d+\.tar\.[gx]z/).length, "expected #{actual_ports} to include libxslt") assert_equal(2, actual_ports.length) end From 59a93986ec208387e8a9bda94dbf4f89abc1c20d Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 20 Feb 2022 13:58:47 -0500 Subject: [PATCH 5/8] dep: upgrade mini_portile 2.7 to 2.8 to handle .tar.xz files --- ext/nokogiri/extconf.rb | 2 +- nokogiri.gemspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/nokogiri/extconf.rb b/ext/nokogiri/extconf.rb index de0eb548b9..03f72373f4 100644 --- a/ext/nokogiri/extconf.rb +++ b/ext/nokogiri/extconf.rb @@ -15,7 +15,7 @@ REQUIRED_LIBXML_VERSION = "2.6.21" RECOMMENDED_LIBXML_VERSION = "2.9.3" -REQUIRED_MINI_PORTILE_VERSION = "~> 2.7.0" # keep this version in sync with the one in the gemspec +REQUIRED_MINI_PORTILE_VERSION = "~> 2.8.0" # keep this version in sync with the one in the gemspec REQUIRED_PKG_CONFIG_VERSION = "~> 1.1" # Keep track of what versions of what libraries we build against diff --git a/nokogiri.gemspec b/nokogiri.gemspec index 6bc57a50ad..75036af269 100644 --- a/nokogiri.gemspec +++ b/nokogiri.gemspec @@ -318,7 +318,7 @@ Gem::Specification.new do |spec| spec.extra_rdoc_files += Dir.glob("README.md") spec.rdoc_options = ["--main", "README.md"] - spec.add_runtime_dependency("mini_portile2", "~> 2.7.0") unless java_p # keep version in sync with extconf.rb + spec.add_runtime_dependency("mini_portile2", "~> 2.8.0") unless java_p # keep version in sync with extconf.rb spec.add_runtime_dependency("racc", "~> 1.4") spec.add_development_dependency("bundler", "~> 2.2") From d37dd02ea59d9dacf09063860007a205ef2eb82e Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 20 Feb 2022 12:57:40 -0500 Subject: [PATCH 6/8] =?UTF-8?q?dep:=20upgrade=20libxslt=201.1.34=20?= =?UTF-8?q?=E2=86=92=201.1.35?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 7 + dependencies.yml | 31 +- ext/nokogiri/extconf.rb | 3 +- ...0001-update-automake-files-for-arm64.patch | 4364 +++++++++-------- ...ml2-config-check-in-configure-script.patch | 19 - 5 files changed, 2457 insertions(+), 1967 deletions(-) delete mode 100644 patches/libxslt/0002-Fix-xml2-config-check-in-configure-script.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index 31d5c4cd57..4115f7249b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,13 @@ Nokogiri follows [Semantic Versioning](https://semver.org/), please see the [REA --- +## 1.13.2 / unreleased + +### Dependencies + +* [CRuby] Vendored libxslt is updated from 1.1.34 to 1.1.35. This update addresses [CVE-2021-30560](https://nvd.nist.gov/vuln/detail/CVE-2021-30560). Full changelog is available at https://download.gnome.org/sources/libxslt/1.1/libxslt-1.1.35.news + + ## 1.13.1 / 2022-01-13 ### Fixed diff --git a/dependencies.yml b/dependencies.yml index 7e7813a99f..e379e246a1 100644 --- a/dependencies.yml +++ b/dependencies.yml @@ -29,34 +29,9 @@ libxml2: # libxslt: - version: "1.1.34" - sha256: "98b1bd46d6792925ad2dfe9a87452ea2adebf69dcb9919ffd55bf926a7f93f7f" - # manually verified checksum: - # - # $ gpg --verify ~/Downloads/libxslt-1.1.34.tar.gz.asc ports/archives/libxslt-1.1.34.tar.gz - # gpg: Signature made Wed 30 Oct 2019 04:02:48 PM EDT - # gpg: using RSA key DB46681BB91ADCEA170FA2D415588B26596BEA5D - # gpg: Good signature from "Daniel Veillard (Red Hat work email) " [unknown] - # gpg: aka "Daniel Veillard " [unknown] - # gpg: WARNING: This key is not certified with a trusted signature! - # gpg: There is no indication that the signature belongs to the owner. - # Primary key fingerprint: C744 15BA 7C9C 7F78 F02E 1DC3 4606 B8A5 DE95 BC1F - # Subkey fingerprint: DB46 681B B91A DCEA 170F A2D4 1558 8B26 596B EA5D - # - # using this pgp signature: - # - # -----BEGIN PGP SIGNATURE----- - # - # iQEzBAABCAAdFiEE20ZoG7ka3OoXD6LUFViLJllr6l0FAl257GgACgkQFViLJllr - # 6l2vVggAjJEHmASiS56SxhPOsGqbfBihM66gQFoIymQfMu2430N1GSTkLsfbkJO8 - # 8yBX11NjzK/m9uxwshMW3rVCU7EpL3PUimN3reXdPiQj9hAOAWF1V3BZNevbQC2E - # FCIraioukaidf8sjUG4/sGpK/gOcP/3hYoN0HUoBigCNJjDqhijxM3M3GJJtCASp - # jL4CQbs2OmxW8ixOZbuWEESvFFHUgYRsdZjRVN+GRfSOvJjxypurmYwQ3RjO7JxL - # 2FY8qKQ+xpeID8NV8F5OUEvWBjk1QS133VTqBZNlONdnEtV/og6jNu5k0O/Kvhup - # caR+8TMErOcLr9OgDklO6DoYyAsf9Q== - # =g4i4 - # -----END PGP SIGNATURE----- - # + version: "1.1.35" + sha256: "8247f33e9a872c6ac859aa45018bc4c4d00b97e2feac9eebc10c93ce1f34dd79" + # sha-256 hash provided in https://download.gnome.org/sources/libxslt/1.1/libxslt-1.1.35.sha256sum zlib: version: "1.2.11" diff --git a/ext/nokogiri/extconf.rb b/ext/nokogiri/extconf.rb index 03f72373f4..2c7508a311 100644 --- a/ext/nokogiri/extconf.rb +++ b/ext/nokogiri/extconf.rb @@ -818,8 +818,9 @@ def compile if source_dir recipe.source_directory = source_dir else + minor_version = Gem::Version.new(recipe.version).segments.take(2).join(".") recipe.files = [{ - url: "http://xmlsoft.org/sources/#{recipe.name}-#{recipe.version}.tar.gz", + url: "https://download.gnome.org/sources/libxslt/#{minor_version}/#{recipe.name}-#{recipe.version}.tar.xz", sha256: dependencies["libxslt"]["sha256"], }] recipe.patch_files = Dir[File.join(PACKAGE_ROOT_DIR, "patches", "libxslt", "*.patch")].sort diff --git a/patches/libxslt/0001-update-automake-files-for-arm64.patch b/patches/libxslt/0001-update-automake-files-for-arm64.patch index d441a881f4..0239e16c51 100644 --- a/patches/libxslt/0001-update-automake-files-for-arm64.patch +++ b/patches/libxslt/0001-update-automake-files-for-arm64.patch @@ -1,15 +1,12 @@ -Update config.guess and config.sub to the versions present in automake v1.16.3, so that users on -aarch64/arm64/M1 can compile. - ---- a/config.sub -+++ b/config.sub +--- ../nokogiri/tmp/x86_64-linux/nokogiri/3.1.0/tmp/x86_64-pc-linux-gnu/ports/libxslt/1.1.35/libxslt-1.1.35/config.sub 2022-02-16 11:28:23.000000000 -0500 ++++ lib/config.sub 2021-04-02 11:37:10.265231915 -0400 @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2018 Free Software Foundation, Inc. +# Copyright 1992-2020 Free Software Foundation, Inc. --timestamp='2018-08-29' +-timestamp='2018-02-22' +timestamp='2020-11-07' # This file is free software; you can redistribute it and/or modify it @@ -41,1045 +38,2213 @@ aarch64/arm64/M1 can compile. exit 1 ;; *local*) -@@ -111,7 +111,8 @@ +@@ -110,1223 +110,1167 @@ + exit 1;; esac - # Split fields of configuration type --IFS="-" read -r field1 field2 field3 field4 <&2 ++ exit 1 ;; - *-*-*-*) - basic_machine=$field1-$field2 -- os=$field3-$field4 +- -lynx*) +- os=-lynxos ++ *-*-*-*) ++ basic_machine=$field1-$field2 + basic_os=$field3-$field4 ;; - *-*-*) - # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two - # parts - maybe_os=$field2-$field3 - case $maybe_os in -- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ -- | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ +- -ptx*) +- basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` ++ *-*-*) ++ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two ++ # parts ++ maybe_os=$field2-$field3 ++ case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ - | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ - | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ - | storm-chaos* | os2-emx* | rtmk-nova*) - basic_machine=$field1 -- os=$maybe_os ++ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ ++ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ ++ | storm-chaos* | os2-emx* | rtmk-nova*) ++ basic_machine=$field1 + basic_os=$maybe_os - ;; - android-linux) - basic_machine=$field1-unknown -- os=linux-android ++ ;; ++ android-linux) ++ basic_machine=$field1-unknown + basic_os=linux-android - ;; - *) - basic_machine=$field1-$field2 -- os=$field3 ++ ;; ++ *) ++ basic_machine=$field1-$field2 + basic_os=$field3 - ;; - esac ++ ;; ++ esac ;; - *-*) -- # A lone config we happen to match not fitting any patern +- -psos*) +- os=-psos ++ *-*) + # A lone config we happen to match not fitting any pattern - case $field1-$field2 in - decstation-3100) - basic_machine=mips-dec -- os= ++ case $field1-$field2 in ++ decstation-3100) ++ basic_machine=mips-dec + basic_os= - ;; - *-*) - # Second component is usually, but not always the OS -@@ -161,7 +161,7 @@ - # Prevent following clause from handling this valid os - sun*os*) - basic_machine=$field1 -- os=$field2 ++ ;; ++ *-*) ++ # Second component is usually, but not always the OS ++ case $field2 in ++ # Prevent following clause from handling this valid os ++ sun*os*) ++ basic_machine=$field1 + basic_os=$field2 - ;; - # Manufacturers - dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ -@@ -174,11 +174,11 @@ - | microblaze* | sim | cisco \ - | oki | wec | wrs | winbond) - basic_machine=$field1-$field2 -- os= ++ ;; ++ # Manufacturers ++ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ ++ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ ++ | unicom* | ibm* | next | hp | isi* | apollo | altos* \ ++ | convergent* | ncr* | news | 32* | 3600* | 3100* \ ++ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ ++ | ultra | tti* | harris | dolphin | highlevel | gould \ ++ | cbm | ns | masscomp | apple | axis | knuth | cray \ ++ | microblaze* | sim | cisco \ ++ | oki | wec | wrs | winbond) ++ basic_machine=$field1-$field2 + basic_os= - ;; - *) - basic_machine=$field1 -- os=$field2 ++ ;; ++ *) ++ basic_machine=$field1 + basic_os=$field2 - ;; - esac - ;; -@@ -190,450 +190,451 @@ - case $field1 in - 386bsd) - basic_machine=i386-pc -- os=bsd ++ ;; ++ esac ++ ;; ++ esac + ;; +- -mint | -mint[0-9]*) +- basic_machine=m68k-atari +- os=-mint ++ *) ++ # Convert single-component short-hands not valid as part of ++ # multi-component configurations. ++ case $field1 in ++ 386bsd) ++ basic_machine=i386-pc + basic_os=bsd - ;; - a29khif) - basic_machine=a29k-amd -- os=udi ++ ;; ++ a29khif) ++ basic_machine=a29k-amd + basic_os=udi - ;; - adobe68k) - basic_machine=m68010-adobe -- os=scout ++ ;; ++ adobe68k) ++ basic_machine=m68010-adobe + basic_os=scout - ;; - alliant) - basic_machine=fx80-alliant -- os= ++ ;; ++ alliant) ++ basic_machine=fx80-alliant + basic_os= - ;; - altos | altos3068) - basic_machine=m68k-altos -- os= ++ ;; ++ altos | altos3068) ++ basic_machine=m68k-altos + basic_os= - ;; - am29k) - basic_machine=a29k-none -- os=bsd ++ ;; ++ am29k) ++ basic_machine=a29k-none + basic_os=bsd - ;; - amdahl) - basic_machine=580-amdahl -- os=sysv ++ ;; ++ amdahl) ++ basic_machine=580-amdahl + basic_os=sysv - ;; - amiga) - basic_machine=m68k-unknown -- os= ++ ;; ++ amiga) ++ basic_machine=m68k-unknown + basic_os= - ;; - amigaos | amigados) - basic_machine=m68k-unknown -- os=amigaos ++ ;; ++ amigaos | amigados) ++ basic_machine=m68k-unknown + basic_os=amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown -- os=sysv4 ++ ;; ++ amigaunix | amix) ++ basic_machine=m68k-unknown + basic_os=sysv4 - ;; - apollo68) - basic_machine=m68k-apollo -- os=sysv ++ ;; ++ apollo68) ++ basic_machine=m68k-apollo + basic_os=sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo -- os=bsd ++ ;; ++ apollo68bsd) ++ basic_machine=m68k-apollo + basic_os=bsd - ;; - aros) - basic_machine=i386-pc -- os=aros ++ ;; ++ aros) ++ basic_machine=i386-pc + basic_os=aros - ;; - aux) - basic_machine=m68k-apple -- os=aux ++ ;; ++ aux) ++ basic_machine=m68k-apple + basic_os=aux - ;; - balance) - basic_machine=ns32k-sequent -- os=dynix ++ ;; ++ balance) ++ basic_machine=ns32k-sequent + basic_os=dynix - ;; - blackfin) - basic_machine=bfin-unknown -- os=linux ++ ;; ++ blackfin) ++ basic_machine=bfin-unknown + basic_os=linux - ;; - cegcc) - basic_machine=arm-unknown -- os=cegcc ++ ;; ++ cegcc) ++ basic_machine=arm-unknown + basic_os=cegcc - ;; - convex-c1) - basic_machine=c1-convex -- os=bsd ++ ;; ++ convex-c1) ++ basic_machine=c1-convex + basic_os=bsd - ;; - convex-c2) - basic_machine=c2-convex -- os=bsd ++ ;; ++ convex-c2) ++ basic_machine=c2-convex + basic_os=bsd - ;; - convex-c32) - basic_machine=c32-convex -- os=bsd ++ ;; ++ convex-c32) ++ basic_machine=c32-convex + basic_os=bsd - ;; - convex-c34) - basic_machine=c34-convex -- os=bsd ++ ;; ++ convex-c34) ++ basic_machine=c34-convex + basic_os=bsd - ;; - convex-c38) - basic_machine=c38-convex -- os=bsd ++ ;; ++ convex-c38) ++ basic_machine=c38-convex + basic_os=bsd - ;; - cray) - basic_machine=j90-cray -- os=unicos ++ ;; ++ cray) ++ basic_machine=j90-cray + basic_os=unicos - ;; - crds | unos) - basic_machine=m68k-crds -- os= ++ ;; ++ crds | unos) ++ basic_machine=m68k-crds + basic_os= - ;; - da30) - basic_machine=m68k-da30 -- os= ++ ;; ++ da30) ++ basic_machine=m68k-da30 + basic_os= - ;; - decstation | pmax | pmin | dec3100 | decstatn) - basic_machine=mips-dec -- os= ++ ;; ++ decstation | pmax | pmin | dec3100 | decstatn) ++ basic_machine=mips-dec + basic_os= - ;; - delta88) - basic_machine=m88k-motorola -- os=sysv3 ++ ;; ++ delta88) ++ basic_machine=m88k-motorola + basic_os=sysv3 - ;; - dicos) - basic_machine=i686-pc -- os=dicos ++ ;; ++ dicos) ++ basic_machine=i686-pc + basic_os=dicos - ;; - djgpp) - basic_machine=i586-pc -- os=msdosdjgpp ++ ;; ++ djgpp) ++ basic_machine=i586-pc + basic_os=msdosdjgpp - ;; - ebmon29k) - basic_machine=a29k-amd -- os=ebmon ++ ;; ++ ebmon29k) ++ basic_machine=a29k-amd + basic_os=ebmon - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson -- os=ose ++ ;; ++ es1800 | OSE68k | ose68k | ose | OSE) ++ basic_machine=m68k-ericsson + basic_os=ose - ;; - gmicro) - basic_machine=tron-gmicro -- os=sysv ++ ;; ++ gmicro) ++ basic_machine=tron-gmicro + basic_os=sysv - ;; - go32) - basic_machine=i386-pc -- os=go32 ++ ;; ++ go32) ++ basic_machine=i386-pc + basic_os=go32 - ;; - h8300hms) - basic_machine=h8300-hitachi -- os=hms ++ ;; ++ h8300hms) ++ basic_machine=h8300-hitachi + basic_os=hms - ;; - h8300xray) - basic_machine=h8300-hitachi -- os=xray ++ ;; ++ h8300xray) ++ basic_machine=h8300-hitachi + basic_os=xray - ;; - h8500hms) - basic_machine=h8500-hitachi -- os=hms ++ ;; ++ h8500hms) ++ basic_machine=h8500-hitachi + basic_os=hms - ;; - harris) - basic_machine=m88k-harris -- os=sysv3 ++ ;; ++ harris) ++ basic_machine=m88k-harris + basic_os=sysv3 - ;; -- hp300) ++ ;; + hp300 | hp300hpux) - basic_machine=m68k-hp ++ basic_machine=m68k-hp + basic_os=hpux - ;; - hp300bsd) - basic_machine=m68k-hp -- os=bsd -- ;; -- hp300hpux) -- basic_machine=m68k-hp -- os=hpux ++ ;; ++ hp300bsd) ++ basic_machine=m68k-hp + basic_os=bsd - ;; - hppaosf) - basic_machine=hppa1.1-hp -- os=osf ++ ;; ++ hppaosf) ++ basic_machine=hppa1.1-hp + basic_os=osf - ;; - hppro) - basic_machine=hppa1.1-hp -- os=proelf ++ ;; ++ hppro) ++ basic_machine=hppa1.1-hp + basic_os=proelf - ;; - i386mach) - basic_machine=i386-mach -- os=mach -- ;; -- vsta) -- basic_machine=i386-pc -- os=vsta ++ ;; ++ i386mach) ++ basic_machine=i386-mach + basic_os=mach - ;; - isi68 | isi) - basic_machine=m68k-isi -- os=sysv ++ ;; ++ isi68 | isi) ++ basic_machine=m68k-isi + basic_os=sysv - ;; - m68knommu) - basic_machine=m68k-unknown -- os=linux ++ ;; ++ m68knommu) ++ basic_machine=m68k-unknown + basic_os=linux - ;; - magnum | m3230) - basic_machine=mips-mips -- os=sysv ++ ;; ++ magnum | m3230) ++ basic_machine=mips-mips + basic_os=sysv - ;; - merlin) - basic_machine=ns32k-utek -- os=sysv ++ ;; ++ merlin) ++ basic_machine=ns32k-utek + basic_os=sysv - ;; - mingw64) - basic_machine=x86_64-pc -- os=mingw64 ++ ;; ++ mingw64) ++ basic_machine=x86_64-pc + basic_os=mingw64 - ;; - mingw32) - basic_machine=i686-pc -- os=mingw32 ++ ;; ++ mingw32) ++ basic_machine=i686-pc + basic_os=mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown -- os=mingw32ce ++ ;; ++ mingw32ce) ++ basic_machine=arm-unknown + basic_os=mingw32ce - ;; - monitor) - basic_machine=m68k-rom68k -- os=coff ++ ;; ++ monitor) ++ basic_machine=m68k-rom68k + basic_os=coff - ;; - morphos) - basic_machine=powerpc-unknown -- os=morphos ++ ;; ++ morphos) ++ basic_machine=powerpc-unknown + basic_os=morphos - ;; - moxiebox) - basic_machine=moxie-unknown -- os=moxiebox ++ ;; ++ moxiebox) ++ basic_machine=moxie-unknown + basic_os=moxiebox - ;; - msdos) - basic_machine=i386-pc -- os=msdos ++ ;; ++ msdos) ++ basic_machine=i386-pc + basic_os=msdos - ;; - msys) - basic_machine=i686-pc -- os=msys ++ ;; ++ msys) ++ basic_machine=i686-pc + basic_os=msys - ;; - mvs) - basic_machine=i370-ibm -- os=mvs ++ ;; ++ mvs) ++ basic_machine=i370-ibm + basic_os=mvs - ;; - nacl) - basic_machine=le32-unknown -- os=nacl ++ ;; ++ nacl) ++ basic_machine=le32-unknown + basic_os=nacl - ;; - ncr3000) - basic_machine=i486-ncr -- os=sysv4 ++ ;; ++ ncr3000) ++ basic_machine=i486-ncr + basic_os=sysv4 - ;; - netbsd386) - basic_machine=i386-pc -- os=netbsd ++ ;; ++ netbsd386) ++ basic_machine=i386-pc + basic_os=netbsd - ;; - netwinder) - basic_machine=armv4l-rebel -- os=linux ++ ;; ++ netwinder) ++ basic_machine=armv4l-rebel + basic_os=linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony -- os=newsos ++ ;; ++ news | news700 | news800 | news900) ++ basic_machine=m68k-sony + basic_os=newsos - ;; - news1000) - basic_machine=m68030-sony -- os=newsos ++ ;; ++ news1000) ++ basic_machine=m68030-sony + basic_os=newsos - ;; - necv70) - basic_machine=v70-nec -- os=sysv ++ ;; ++ necv70) ++ basic_machine=v70-nec + basic_os=sysv - ;; - nh3000) - basic_machine=m68k-harris -- os=cxux ++ ;; ++ nh3000) ++ basic_machine=m68k-harris + basic_os=cxux - ;; - nh[45]000) - basic_machine=m88k-harris -- os=cxux ++ ;; ++ nh[45]000) ++ basic_machine=m88k-harris + basic_os=cxux - ;; - nindy960) - basic_machine=i960-intel -- os=nindy ++ ;; ++ nindy960) ++ basic_machine=i960-intel + basic_os=nindy - ;; - mon960) - basic_machine=i960-intel -- os=mon960 ++ ;; ++ mon960) ++ basic_machine=i960-intel + basic_os=mon960 - ;; - nonstopux) - basic_machine=mips-compaq -- os=nonstopux ++ ;; ++ nonstopux) ++ basic_machine=mips-compaq + basic_os=nonstopux - ;; - os400) - basic_machine=powerpc-ibm -- os=os400 ++ ;; ++ os400) ++ basic_machine=powerpc-ibm + basic_os=os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson -- os=ose ++ ;; ++ OSE68000 | ose68000) ++ basic_machine=m68000-ericsson + basic_os=ose - ;; - os68k) - basic_machine=m68k-none -- os=os68k ++ ;; ++ os68k) ++ basic_machine=m68k-none + basic_os=os68k - ;; - paragon) - basic_machine=i860-intel -- os=osf ++ ;; ++ paragon) ++ basic_machine=i860-intel + basic_os=osf - ;; - parisc) - basic_machine=hppa-unknown -- os=linux ++ ;; ++ parisc) ++ basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp - ;; - pw32) - basic_machine=i586-unknown -- os=pw32 ++ ;; ++ pw32) ++ basic_machine=i586-unknown + basic_os=pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc -- os=rdos ++ ;; ++ rdos | rdos64) ++ basic_machine=x86_64-pc + basic_os=rdos - ;; - rdos32) - basic_machine=i386-pc -- os=rdos ++ ;; ++ rdos32) ++ basic_machine=i386-pc + basic_os=rdos - ;; - rom68k) - basic_machine=m68k-rom68k -- os=coff ++ ;; ++ rom68k) ++ basic_machine=m68k-rom68k + basic_os=coff - ;; - sa29200) - basic_machine=a29k-amd -- os=udi ++ ;; ++ sa29200) ++ basic_machine=a29k-amd + basic_os=udi - ;; - sei) - basic_machine=mips-sei -- os=seiux ++ ;; ++ sei) ++ basic_machine=mips-sei + basic_os=seiux - ;; - sequent) - basic_machine=i386-sequent -- os= ++ ;; ++ sequent) ++ basic_machine=i386-sequent + basic_os= - ;; - sps7) - basic_machine=m68k-bull -- os=sysv2 ++ ;; ++ sps7) ++ basic_machine=m68k-bull + basic_os=sysv2 - ;; - st2000) - basic_machine=m68k-tandem -- os= ++ ;; ++ st2000) ++ basic_machine=m68k-tandem + basic_os= - ;; - stratus) - basic_machine=i860-stratus -- os=sysv4 ++ ;; ++ stratus) ++ basic_machine=i860-stratus + basic_os=sysv4 - ;; - sun2) - basic_machine=m68000-sun -- os= ++ ;; ++ sun2) ++ basic_machine=m68000-sun + basic_os= - ;; - sun2os3) - basic_machine=m68000-sun -- os=sunos3 ++ ;; ++ sun2os3) ++ basic_machine=m68000-sun + basic_os=sunos3 - ;; - sun2os4) - basic_machine=m68000-sun -- os=sunos4 ++ ;; ++ sun2os4) ++ basic_machine=m68000-sun + basic_os=sunos4 - ;; - sun3) - basic_machine=m68k-sun -- os= ++ ;; ++ sun3) ++ basic_machine=m68k-sun + basic_os= - ;; - sun3os3) - basic_machine=m68k-sun -- os=sunos3 ++ ;; ++ sun3os3) ++ basic_machine=m68k-sun + basic_os=sunos3 - ;; - sun3os4) - basic_machine=m68k-sun -- os=sunos4 ++ ;; ++ sun3os4) ++ basic_machine=m68k-sun + basic_os=sunos4 - ;; - sun4) - basic_machine=sparc-sun -- os= ++ ;; ++ sun4) ++ basic_machine=sparc-sun + basic_os= - ;; - sun4os3) - basic_machine=sparc-sun -- os=sunos3 ++ ;; ++ sun4os3) ++ basic_machine=sparc-sun + basic_os=sunos3 - ;; - sun4os4) - basic_machine=sparc-sun -- os=sunos4 ++ ;; ++ sun4os4) ++ basic_machine=sparc-sun + basic_os=sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun -- os=solaris2 ++ ;; ++ sun4sol2) ++ basic_machine=sparc-sun + basic_os=solaris2 - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun -- os= ++ ;; ++ sun386 | sun386i | roadrunner) ++ basic_machine=i386-sun + basic_os= - ;; - sv1) - basic_machine=sv1-cray -- os=unicos ++ ;; ++ sv1) ++ basic_machine=sv1-cray + basic_os=unicos - ;; - symmetry) - basic_machine=i386-sequent -- os=dynix ++ ;; ++ symmetry) ++ basic_machine=i386-sequent + basic_os=dynix - ;; - t3e) - basic_machine=alphaev5-cray -- os=unicos ++ ;; ++ t3e) ++ basic_machine=alphaev5-cray + basic_os=unicos - ;; - t90) - basic_machine=t90-cray -- os=unicos ++ ;; ++ t90) ++ basic_machine=t90-cray + basic_os=unicos - ;; - toad1) - basic_machine=pdp10-xkl -- os=tops20 ++ ;; ++ toad1) ++ basic_machine=pdp10-xkl + basic_os=tops20 - ;; - tpf) - basic_machine=s390x-ibm -- os=tpf ++ ;; ++ tpf) ++ basic_machine=s390x-ibm + basic_os=tpf - ;; - udi29k) - basic_machine=a29k-amd -- os=udi ++ ;; ++ udi29k) ++ basic_machine=a29k-amd + basic_os=udi - ;; - ultra3) - basic_machine=a29k-nyu -- os=sym1 ++ ;; ++ ultra3) ++ basic_machine=a29k-nyu + basic_os=sym1 - ;; - v810 | necv810) - basic_machine=v810-nec -- os=none ++ ;; ++ v810 | necv810) ++ basic_machine=v810-nec + basic_os=none - ;; - vaxv) - basic_machine=vax-dec -- os=sysv ++ ;; ++ vaxv) ++ basic_machine=vax-dec + basic_os=sysv - ;; - vms) - basic_machine=vax-dec -- os=vms ++ ;; ++ vms) ++ basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta - ;; - vxworks960) - basic_machine=i960-wrs -- os=vxworks ++ ;; ++ vxworks960) ++ basic_machine=i960-wrs + basic_os=vxworks - ;; - vxworks68) - basic_machine=m68k-wrs -- os=vxworks ++ ;; ++ vxworks68) ++ basic_machine=m68k-wrs + basic_os=vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs -- os=vxworks ++ ;; ++ vxworks29k) ++ basic_machine=a29k-wrs + basic_os=vxworks - ;; - xbox) - basic_machine=i686-pc -- os=mingw32 ++ ;; ++ xbox) ++ basic_machine=i686-pc + basic_os=mingw32 - ;; - ymp) - basic_machine=ymp-cray -- os=unicos ++ ;; ++ ymp) ++ basic_machine=ymp-cray + basic_os=unicos - ;; - *) - basic_machine=$1 -- os= ++ ;; ++ *) ++ basic_machine=$1 + basic_os= - ;; - esac ++ ;; ++ esac + ;; + esac + +-# Decode aliases for certain CPU-COMPANY combinations. ++# Decode 1-component or ad-hoc basic machines + case $basic_machine in +- # Recognize the basic CPU types without company name. +- # Some are omitted here because they have special meanings below. +- 1750a | 580 \ +- | a29k \ +- | aarch64 | aarch64_be \ +- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ +- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ +- | am33_2.0 \ +- | arc | arceb \ +- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ +- | avr | avr32 \ +- | ba \ +- | be32 | be64 \ +- | bfin \ +- | c4x | c8051 | clipper \ +- | d10v | d30v | dlx | dsp16xx \ +- | e2k | epiphany \ +- | fido | fr30 | frv | ft32 \ +- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ +- | hexagon \ +- | i370 | i860 | i960 | ia16 | ia64 \ +- | ip2k | iq2000 \ +- | k1om \ +- | le32 | le64 \ +- | lm32 \ +- | m32c | m32r | m32rle | m68000 | m68k | m88k \ +- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ +- | mips | mipsbe | mipseb | mipsel | mipsle \ +- | mips16 \ +- | mips64 | mips64el \ +- | mips64octeon | mips64octeonel \ +- | mips64orion | mips64orionel \ +- | mips64r5900 | mips64r5900el \ +- | mips64vr | mips64vrel \ +- | mips64vr4100 | mips64vr4100el \ +- | mips64vr4300 | mips64vr4300el \ +- | mips64vr5000 | mips64vr5000el \ +- | mips64vr5900 | mips64vr5900el \ +- | mipsisa32 | mipsisa32el \ +- | mipsisa32r2 | mipsisa32r2el \ +- | mipsisa32r6 | mipsisa32r6el \ +- | mipsisa64 | mipsisa64el \ +- | mipsisa64r2 | mipsisa64r2el \ +- | mipsisa64r6 | mipsisa64r6el \ +- | mipsisa64sb1 | mipsisa64sb1el \ +- | mipsisa64sr71k | mipsisa64sr71kel \ +- | mipsr5900 | mipsr5900el \ +- | mipstx39 | mipstx39el \ +- | mn10200 | mn10300 \ +- | moxie \ +- | mt \ +- | msp430 \ +- | nds32 | nds32le | nds32be \ +- | nios | nios2 | nios2eb | nios2el \ +- | ns16k | ns32k \ +- | open8 | or1k | or1knd | or32 \ +- | pdp10 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle \ +- | pru \ +- | pyramid \ +- | riscv32 | riscv64 \ +- | rl78 | rx \ +- | score \ +- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ +- | sh64 | sh64le \ +- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ +- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ +- | spu \ +- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ +- | ubicom32 \ +- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ +- | visium \ +- | wasm32 \ +- | x86 | xc16x | xstormy16 | xtensa \ +- | z8k | z80) +- basic_machine=$basic_machine-unknown +- ;; +- c54x) +- basic_machine=tic54x-unknown +- ;; +- c55x) +- basic_machine=tic55x-unknown +- ;; +- c6x) +- basic_machine=tic6x-unknown +- ;; +- leon|leon[3-9]) +- basic_machine=sparc-$basic_machine +- ;; +- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) +- basic_machine=$basic_machine-unknown +- os=-none ++ # Here we handle the default manufacturer of certain CPU types. It is in ++ # some cases the only manufacturer, in others, it is the most popular. ++ w89k) ++ cpu=hppa1.1 ++ vendor=winbond + ;; +- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) ++ op50n) ++ cpu=hppa1.1 ++ vendor=oki + ;; +- ms1) +- basic_machine=mt-unknown ++ op60c) ++ cpu=hppa1.1 ++ vendor=oki + ;; +- +- strongarm | thumb | xscale) +- basic_machine=arm-unknown ++ ibm*) ++ cpu=i370 ++ vendor=ibm + ;; +- xgate) +- basic_machine=$basic_machine-unknown +- os=-none ++ orion105) ++ cpu=clipper ++ vendor=highlevel + ;; +- xscaleeb) +- basic_machine=armeb-unknown ++ mac | mpw | mac-mpw) ++ cpu=m68k ++ vendor=apple + ;; +- +- xscaleel) +- basic_machine=armel-unknown ++ pmac | pmac-mpw) ++ cpu=powerpc ++ vendor=apple + ;; + +- # We use `pc' rather than `unknown' +- # because (1) that's what they normally are, and +- # (2) the word "unknown" tends to confuse beginning users. +- i*86 | x86_64) +- basic_machine=$basic_machine-pc +- ;; +- # Object if more than one company name word. +- *-*-*) +- echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 +- exit 1 +- ;; +- # Recognize the basic CPU types with company name. +- 580-* \ +- | a29k-* \ +- | aarch64-* | aarch64_be-* \ +- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ +- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ +- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ +- | avr-* | avr32-* \ +- | ba-* \ +- | be32-* | be64-* \ +- | bfin-* | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* \ +- | c8051-* | clipper-* | craynv-* | cydra-* \ +- | d10v-* | d30v-* | dlx-* \ +- | e2k-* | elxsi-* \ +- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ +- | h8300-* | h8500-* \ +- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ +- | hexagon-* \ +- | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ +- | ip2k-* | iq2000-* \ +- | k1om-* \ +- | le32-* | le64-* \ +- | lm32-* \ +- | m32c-* | m32r-* | m32rle-* \ +- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ +- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ +- | microblaze-* | microblazeel-* \ +- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ +- | mips16-* \ +- | mips64-* | mips64el-* \ +- | mips64octeon-* | mips64octeonel-* \ +- | mips64orion-* | mips64orionel-* \ +- | mips64r5900-* | mips64r5900el-* \ +- | mips64vr-* | mips64vrel-* \ +- | mips64vr4100-* | mips64vr4100el-* \ +- | mips64vr4300-* | mips64vr4300el-* \ +- | mips64vr5000-* | mips64vr5000el-* \ +- | mips64vr5900-* | mips64vr5900el-* \ +- | mipsisa32-* | mipsisa32el-* \ +- | mipsisa32r2-* | mipsisa32r2el-* \ +- | mipsisa32r6-* | mipsisa32r6el-* \ +- | mipsisa64-* | mipsisa64el-* \ +- | mipsisa64r2-* | mipsisa64r2el-* \ +- | mipsisa64r6-* | mipsisa64r6el-* \ +- | mipsisa64sb1-* | mipsisa64sb1el-* \ +- | mipsisa64sr71k-* | mipsisa64sr71kel-* \ +- | mipsr5900-* | mipsr5900el-* \ +- | mipstx39-* | mipstx39el-* \ +- | mmix-* \ +- | mt-* \ +- | msp430-* \ +- | nds32-* | nds32le-* | nds32be-* \ +- | nios-* | nios2-* | nios2eb-* | nios2el-* \ +- | none-* | np1-* | ns16k-* | ns32k-* \ +- | open8-* \ +- | or1k*-* \ +- | orion-* \ +- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ +- | pru-* \ +- | pyramid-* \ +- | riscv32-* | riscv64-* \ +- | rl78-* | romp-* | rs6000-* | rx-* \ +- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ +- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ +- | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ +- | tahoe-* \ +- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ +- | tile*-* \ +- | tron-* \ +- | ubicom32-* \ +- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ +- | vax-* \ +- | visium-* \ +- | wasm32-* \ +- | we32k-* \ +- | x86-* | x86_64-* | xc16x-* | xps100-* \ +- | xstormy16-* | xtensa*-* \ +- | ymp-* \ +- | z8k-* | z80-*) +- ;; +- # Recognize the basic CPU types without company name, with glob match. +- xtensa*) +- basic_machine=$basic_machine-unknown +- ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. +- 386bsd) +- basic_machine=i386-pc +- os=-bsd +- ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) +- basic_machine=m68000-att ++ cpu=m68000 ++ vendor=att + ;; + 3b*) +- basic_machine=we32k-att +- ;; +- a29khif) +- basic_machine=a29k-amd +- os=-udi +- ;; +- abacus) +- basic_machine=abacus-unknown +- ;; +- adobe68k) +- basic_machine=m68010-adobe +- os=-scout +- ;; +- alliant | fx80) +- basic_machine=fx80-alliant +- ;; +- altos | altos3068) +- basic_machine=m68k-altos +- ;; +- am29k) +- basic_machine=a29k-none +- os=-bsd +- ;; +- amd64) +- basic_machine=x86_64-pc +- ;; +- amd64-*) +- basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- ;; +- amdahl) +- basic_machine=580-amdahl +- os=-sysv +- ;; +- amiga | amiga-*) +- basic_machine=m68k-unknown +- ;; +- amigaos | amigados) +- basic_machine=m68k-unknown +- os=-amigaos +- ;; +- amigaunix | amix) +- basic_machine=m68k-unknown +- os=-sysv4 +- ;; +- apollo68) +- basic_machine=m68k-apollo +- os=-sysv +- ;; +- apollo68bsd) +- basic_machine=m68k-apollo +- os=-bsd +- ;; +- aros) +- basic_machine=i386-pc +- os=-aros +- ;; +- asmjs) +- basic_machine=asmjs-unknown +- ;; +- aux) +- basic_machine=m68k-apple +- os=-aux +- ;; +- balance) +- basic_machine=ns32k-sequent +- os=-dynix +- ;; +- blackfin) +- basic_machine=bfin-unknown +- os=-linux +- ;; +- blackfin-*) +- basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- os=-linux ++ cpu=we32k ++ vendor=att ;; -@@ -685,17 +686,17 @@ bluegene*) - cpu=powerpc - vendor=ibm -- os=cnk +- basic_machine=powerpc-ibm +- os=-cnk +- ;; +- c54x-*) +- basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- ;; +- c55x-*) +- basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- ;; +- c6x-*) +- basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- ;; +- c90) +- basic_machine=c90-cray +- os=-unicos +- ;; +- cegcc) +- basic_machine=arm-unknown +- os=-cegcc +- ;; +- convex-c1) +- basic_machine=c1-convex +- os=-bsd +- ;; +- convex-c2) +- basic_machine=c2-convex +- os=-bsd +- ;; +- convex-c32) +- basic_machine=c32-convex +- os=-bsd +- ;; +- convex-c34) +- basic_machine=c34-convex +- os=-bsd +- ;; +- convex-c38) +- basic_machine=c38-convex +- os=-bsd +- ;; +- cray | j90) +- basic_machine=j90-cray +- os=-unicos +- ;; +- craynv) +- basic_machine=craynv-cray +- os=-unicosmp +- ;; +- cr16 | cr16-*) +- basic_machine=cr16-unknown +- os=-elf +- ;; +- crds | unos) +- basic_machine=m68k-crds +- ;; +- crisv32 | crisv32-* | etraxfs*) +- basic_machine=crisv32-axis +- ;; +- cris | cris-* | etrax*) +- basic_machine=cris-axis +- ;; +- crx) +- basic_machine=crx-unknown +- os=-elf +- ;; +- da30 | da30-*) +- basic_machine=m68k-da30 +- ;; +- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) +- basic_machine=mips-dec ++ cpu=powerpc ++ vendor=ibm + basic_os=cnk ;; decsystem10* | dec10*) - cpu=pdp10 - vendor=dec -- os=tops10 +- basic_machine=pdp10-dec +- os=-tops10 ++ cpu=pdp10 ++ vendor=dec + basic_os=tops10 ;; decsystem20* | dec20*) - cpu=pdp10 - vendor=dec -- os=tops20 +- basic_machine=pdp10-dec +- os=-tops20 ++ cpu=pdp10 ++ vendor=dec + basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) -@@ -705,7 +706,7 @@ +- basic_machine=m68k-motorola +- ;; +- delta88) +- basic_machine=m88k-motorola +- os=-sysv3 +- ;; +- dicos) +- basic_machine=i686-pc +- os=-dicos +- ;; +- djgpp) +- basic_machine=i586-pc +- os=-msdosdjgpp +- ;; +- dpx20 | dpx20-*) +- basic_machine=rs6000-bull +- os=-bosx ++ cpu=m68k ++ vendor=motorola + ;; dpx2*) - cpu=m68k - vendor=bull -- os=sysv3 +- basic_machine=m68k-bull +- os=-sysv3 +- ;; +- e500v[12]) +- basic_machine=powerpc-unknown +- os=$os"spe" +- ;; +- e500v[12]-*) +- basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- os=$os"spe" +- ;; +- ebmon29k) +- basic_machine=a29k-amd +- os=-ebmon +- ;; +- elxsi) +- basic_machine=elxsi-elxsi +- os=-bsd ++ cpu=m68k ++ vendor=bull + basic_os=sysv3 ;; encore | umax | mmax) - cpu=ns32k -@@ -714,7 +715,7 @@ - elxsi) - cpu=elxsi - vendor=elxsi -- os=${os:-bsd} +- basic_machine=ns32k-encore ++ cpu=ns32k ++ vendor=encore + ;; +- es1800 | OSE68k | ose68k | ose | OSE) +- basic_machine=m68k-ericsson +- os=-ose ++ elxsi) ++ cpu=elxsi ++ vendor=elxsi + basic_os=${basic_os:-bsd} ;; fx2800) - cpu=i860 -@@ -727,7 +728,7 @@ +- basic_machine=i860-alliant ++ cpu=i860 ++ vendor=alliant + ;; + genix) +- basic_machine=ns32k-ns +- ;; +- gmicro) +- basic_machine=tron-gmicro +- os=-sysv +- ;; +- go32) +- basic_machine=i386-pc +- os=-go32 ++ cpu=ns32k ++ vendor=ns + ;; h3050r* | hiux*) - cpu=hppa1.1 - vendor=hitachi -- os=hiuxwe2 +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 +- ;; +- h8300hms) +- basic_machine=h8300-hitachi +- os=-hms +- ;; +- h8300xray) +- basic_machine=h8300-hitachi +- os=-xray +- ;; +- h8500hms) +- basic_machine=h8500-hitachi +- os=-hms +- ;; +- harris) +- basic_machine=m88k-harris +- os=-sysv3 +- ;; +- hp300-*) +- basic_machine=m68k-hp +- ;; +- hp300bsd) +- basic_machine=m68k-hp +- os=-bsd +- ;; +- hp300hpux) +- basic_machine=m68k-hp +- os=-hpux ++ cpu=hppa1.1 ++ vendor=hitachi + basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - cpu=hppa1.0 -@@ -768,38 +769,38 @@ - vendor=hp +- basic_machine=hppa1.0-hp ++ cpu=hppa1.0 ++ vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) +- basic_machine=m68000-hp ++ cpu=m68000 ++ vendor=hp + ;; + hp9k3[2-9][0-9]) +- basic_machine=m68k-hp ++ cpu=m68k ++ vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) +- basic_machine=hppa1.0-hp ++ cpu=hppa1.0 ++ vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) +- basic_machine=hppa1.0-hp +- ;; +- hppaosf) +- basic_machine=hppa1.1-hp +- os=-osf +- ;; +- hppro) +- basic_machine=hppa1.1-hp +- os=-proelf +- ;; +- i370-ibm* | ibm*) +- basic_machine=i370-ibm ++ cpu=hppa1.0 ++ vendor=hp ;; i*86v32) -- cpu=`echo "$1" | sed -e 's/86.*/86/'` +- basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` +- os=-sysv32 + cpu=$(echo "$1" | sed -e 's/86.*/86/') - vendor=pc -- os=sysv32 ++ vendor=pc + basic_os=sysv32 ;; i*86v4*) -- cpu=`echo "$1" | sed -e 's/86.*/86/'` +- basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` +- os=-sysv4 + cpu=$(echo "$1" | sed -e 's/86.*/86/') - vendor=pc -- os=sysv4 ++ vendor=pc + basic_os=sysv4 ;; i*86v) -- cpu=`echo "$1" | sed -e 's/86.*/86/'` +- basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` +- os=-sysv + cpu=$(echo "$1" | sed -e 's/86.*/86/') - vendor=pc -- os=sysv ++ vendor=pc + basic_os=sysv ;; i*86sol2) -- cpu=`echo "$1" | sed -e 's/86.*/86/'` +- basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` +- os=-solaris2 +- ;; +- i386mach) +- basic_machine=i386-mach +- os=-mach +- ;; +- vsta) +- basic_machine=i386-unknown +- os=-vsta + cpu=$(echo "$1" | sed -e 's/86.*/86/') - vendor=pc -- os=solaris2 ++ vendor=pc + basic_os=solaris2 - ;; - j90 | j90-cray) - cpu=j90 - vendor=cray -- os=${os:-unicos} ++ ;; ++ j90 | j90-cray) ++ cpu=j90 ++ vendor=cray + basic_os=${basic_os:-unicos} ;; iris | iris4d) - cpu=mips - vendor=sgi +- basic_machine=mips-sgi - case $os in +- -irix*) ++ cpu=mips ++ vendor=sgi + case $basic_os in - irix*) ++ irix*) ;; *) -- os=irix4 +- os=-irix4 + basic_os=irix4 ;; esac ;; -@@ -810,24 +811,26 @@ - *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) - cpu=m68k - vendor=atari -- os=mint +- isi68 | isi) +- basic_machine=m68k-isi +- os=-sysv +- ;; +- leon-*|leon[3-9]-*) +- basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` +- ;; +- m68knommu) +- basic_machine=m68k-unknown +- os=-linux +- ;; +- m68knommu-*) +- basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- magnum | m3230) +- basic_machine=mips-mips +- os=-sysv +- ;; +- merlin) +- basic_machine=ns32k-utek +- os=-sysv +- ;; +- microblaze*) +- basic_machine=microblaze-xilinx +- ;; +- mingw64) +- basic_machine=x86_64-pc +- os=-mingw64 +- ;; +- mingw32) +- basic_machine=i686-pc +- os=-mingw32 +- ;; +- mingw32ce) +- basic_machine=arm-unknown +- os=-mingw32ce +- ;; + miniframe) +- basic_machine=m68000-convergent +- ;; +- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) +- basic_machine=m68k-atari +- os=-mint +- ;; +- mips3*-*) +- basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` ++ cpu=m68000 ++ vendor=convergent + ;; +- mips3*) +- basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown +- ;; +- monitor) +- basic_machine=m68k-rom68k +- os=-coff +- ;; +- morphos) +- basic_machine=powerpc-unknown +- os=-morphos +- ;; +- moxiebox) +- basic_machine=moxie-unknown +- os=-moxiebox +- ;; +- msdos) +- basic_machine=i386-pc +- os=-msdos +- ;; +- ms1-*) +- basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` +- ;; +- msys) +- basic_machine=i686-pc +- os=-msys +- ;; +- mvs) +- basic_machine=i370-ibm +- os=-mvs +- ;; +- nacl) +- basic_machine=le32-unknown +- os=-nacl +- ;; +- ncr3000) +- basic_machine=i486-ncr +- os=-sysv4 +- ;; +- netbsd386) +- basic_machine=i386-unknown +- os=-netbsd +- ;; +- netwinder) +- basic_machine=armv4l-rebel +- os=-linux +- ;; +- news | news700 | news800 | news900) +- basic_machine=m68k-sony +- os=-newsos +- ;; +- news1000) +- basic_machine=m68030-sony +- os=-newsos ++ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ cpu=m68k ++ vendor=atari + basic_os=mint ;; news-3600 | risc-news) - cpu=mips - vendor=sony -- os=newsos +- basic_machine=mips-sony +- os=-newsos +- ;; +- necv70) +- basic_machine=v70-nec +- os=-sysv ++ cpu=mips ++ vendor=sony + basic_os=newsos ;; next | m*-next) - cpu=m68k - vendor=next +- basic_machine=m68k-next - case $os in -- nextstep* ) +- -nextstep* ) ++ cpu=m68k ++ vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) ;; - ns2*) -- os=nextstep2 +- -ns2*) +- os=-nextstep2 ++ ns2*) + basic_os=nextstep2 ;; *) -- os=nextstep3 +- os=-nextstep3 + basic_os=nextstep3 ;; esac ;; -@@ -838,12 +841,12 @@ +- nh3000) +- basic_machine=m68k-harris +- os=-cxux +- ;; +- nh[45]000) +- basic_machine=m88k-harris +- os=-cxux +- ;; +- nindy960) +- basic_machine=i960-intel +- os=-nindy +- ;; +- mon960) +- basic_machine=i960-intel +- os=-mon960 +- ;; +- nonstopux) +- basic_machine=mips-compaq +- os=-nonstopux +- ;; + np1) +- basic_machine=np1-gould +- ;; +- neo-tandem) +- basic_machine=neo-tandem +- ;; +- nse-tandem) +- basic_machine=nse-tandem +- ;; +- nsr-tandem) +- basic_machine=nsr-tandem +- ;; +- nsv-tandem) +- basic_machine=nsv-tandem +- ;; +- nsx-tandem) +- basic_machine=nsx-tandem ++ cpu=np1 ++ vendor=gould + ;; op50n-* | op60c-*) - cpu=hppa1.1 - vendor=oki -- os=proelf +- basic_machine=hppa1.1-oki +- os=-proelf +- ;; +- openrisc | openrisc-*) +- basic_machine=or32-unknown +- ;; +- os400) +- basic_machine=powerpc-ibm +- os=-os400 +- ;; +- OSE68000 | ose68000) +- basic_machine=m68000-ericsson +- os=-ose +- ;; +- os68k) +- basic_machine=m68k-none +- os=-os68k ++ cpu=hppa1.1 ++ vendor=oki + basic_os=proelf ;; pa-hitachi) - cpu=hppa1.1 - vendor=hitachi -- os=hiuxwe2 +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 +- ;; +- paragon) +- basic_machine=i860-intel +- os=-osf +- ;; +- parisc) +- basic_machine=hppa-unknown +- os=-linux +- ;; +- parisc-*) +- basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- os=-linux ++ cpu=hppa1.1 ++ vendor=hitachi + basic_os=hiuxwe2 ;; pbd) - cpu=sparc -@@ -880,12 +883,12 @@ - sde) - cpu=mipsisa32 - vendor=sde -- os=${os:-elf} +- basic_machine=sparc-tti ++ cpu=sparc ++ vendor=tti + ;; + pbb) +- basic_machine=m68k-tti ++ cpu=m68k ++ vendor=tti + ;; +- pc532 | pc532-*) +- basic_machine=ns32k-pc532 ++ pc532) ++ cpu=ns32k ++ vendor=pc532 + ;; +- pc98) +- basic_machine=i386-pc ++ pn) ++ cpu=pn ++ vendor=gould + ;; +- pc98-*) +- basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` ++ power) ++ cpu=power ++ vendor=ibm + ;; +- pentium | p5 | k5 | k6 | nexgen | viac3) +- basic_machine=i586-pc ++ ps2) ++ cpu=i386 ++ vendor=ibm + ;; +- pentiumpro | p6 | 6x86 | athlon | athlon_*) +- basic_machine=i686-pc ++ rm[46]00) ++ cpu=mips ++ vendor=siemens + ;; +- pentiumii | pentium2 | pentiumiii | pentium3) +- basic_machine=i686-pc ++ rtpc | rtpc-*) ++ cpu=romp ++ vendor=ibm + ;; +- pentium4) +- basic_machine=i786-pc ++ sde) ++ cpu=mipsisa32 ++ vendor=sde + basic_os=${basic_os:-elf} ;; - simso-wrs) - cpu=sparclite - vendor=wrs -- os=vxworks +- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) +- basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` ++ simso-wrs) ++ cpu=sparclite ++ vendor=wrs + basic_os=vxworks ;; - tower | tower-32) - cpu=m68k -@@ -902,7 +905,7 @@ - w89k-*) - cpu=hppa1.1 - vendor=winbond -- os=proelf +- pentiumpro-* | p6-* | 6x86-* | athlon-*) +- basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ++ tower | tower-32) ++ cpu=m68k ++ vendor=ncr + ;; +- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) +- basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ++ vpp*|vx|vx-*) ++ cpu=f301 ++ vendor=fujitsu + ;; +- pentium4-*) +- basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` ++ w65) ++ cpu=w65 ++ vendor=wdc + ;; +- pn) +- basic_machine=pn-gould ++ w89k-*) ++ cpu=hppa1.1 ++ vendor=winbond + basic_os=proelf ;; - none) - cpu=none -@@ -914,11 +917,12 @@ - ;; - leon-*|leon[3-9]-*) - cpu=sparc -- vendor=`echo "$basic_machine" | sed 's/-.*//'` +- power) basic_machine=power-ibm ++ none) ++ cpu=none ++ vendor=none + ;; +- ppc | ppcbe) basic_machine=powerpc-unknown ++ leon|leon[3-9]) ++ cpu=sparc ++ vendor=$basic_machine + ;; +- ppc-* | ppcbe-*) +- basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` ++ leon-*|leon[3-9]-*) ++ cpu=sparc + vendor=$(echo "$basic_machine" | sed 's/-.*//') ;; - - *-*) -- IFS="-" read -r cpu vendor <&2 +- exit 1 + # Recognize the canonical CPU types that are allowed with any - # company name. - case $cpu in - 1750a | 580 \ -@@ -1161,13 +1164,14 @@ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ - | alphapca5[67] | alpha64pca5[67] \ - | am33_2.0 \ ++ # company name. ++ case $cpu in ++ 1750a | 580 \ ++ | a29k \ ++ | aarch64 | aarch64_be \ ++ | abacus \ ++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ ++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ ++ | alphapca5[67] | alpha64pca5[67] \ ++ | am33_2.0 \ + | amdgcn \ - | arc | arceb \ -- | arm | arm[lb]e | arme[lb] | armv* \ ++ | arc | arceb \ + | arm | arm[lb]e | arme[lb] | armv* \ - | avr | avr32 \ - | asmjs \ - | ba \ - | be32 | be64 \ -- | bfin | bs2000 \ ++ | avr | avr32 \ ++ | asmjs \ ++ | ba \ ++ | be32 | be64 \ + | bfin | bpf | bs2000 \ - | c[123]* | c30 | [cjt]90 | c4x \ - | c8051 | clipper | craynv | csky | cydra \ - | d10v | d30v | dlx | dsp16xx \ -@@ -1182,13 +1186,13 @@ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle \ -- | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \ -- | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \ ++ | c[123]* | c30 | [cjt]90 | c4x \ ++ | c8051 | clipper | craynv | csky | cydra \ ++ | d10v | d30v | dlx | dsp16xx \ ++ | e2k | elxsi | epiphany \ ++ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ ++ | h8300 | h8500 \ ++ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ ++ | i370 | i*86 | i860 | i960 | ia16 | ia64 \ ++ | ip2k | iq2000 \ ++ | k1om \ ++ | le32 | le64 \ ++ | lm32 \ ++ | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ - | m88110 | m88k | maxq | mb | mcore | mep | metag \ - | microblaze | microblazeel \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ -- | mips64 | mips64el \ ++ | m88110 | m88k | maxq | mb | mcore | mep | metag \ ++ | microblaze | microblazeel \ ++ | mips | mipsbe | mipseb | mipsel | mipsle \ ++ | mips16 \ + | mips64 | mips64eb | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ -@@ -1215,19 +1219,22 @@ - | nds32 | nds32le | nds32be \ - | nfp \ - | nios | nios2 | nios2eb | nios2el \ -- | none | np1 | ns16k | ns32k \ ++ | mips64octeon | mips64octeonel \ ++ | mips64orion | mips64orionel \ ++ | mips64r5900 | mips64r5900el \ ++ | mips64vr | mips64vrel \ ++ | mips64vr4100 | mips64vr4100el \ ++ | mips64vr4300 | mips64vr4300el \ ++ | mips64vr5000 | mips64vr5000el \ ++ | mips64vr5900 | mips64vr5900el \ ++ | mipsisa32 | mipsisa32el \ ++ | mipsisa32r2 | mipsisa32r2el \ ++ | mipsisa32r6 | mipsisa32r6el \ ++ | mipsisa64 | mipsisa64el \ ++ | mipsisa64r2 | mipsisa64r2el \ ++ | mipsisa64r6 | mipsisa64r6el \ ++ | mipsisa64sb1 | mipsisa64sb1el \ ++ | mipsisa64sr71k | mipsisa64sr71kel \ ++ | mipsr5900 | mipsr5900el \ ++ | mipstx39 | mipstx39el \ ++ | mmix \ ++ | mn10200 | mn10300 \ ++ | moxie \ ++ | mt \ ++ | msp430 \ ++ | nds32 | nds32le | nds32be \ ++ | nfp \ ++ | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ - | open8 \ - | or1k* \ - | or32 \ - | orion \ ++ | open8 \ ++ | or1k* \ ++ | or32 \ ++ | orion \ + | picochip \ - | pdp10 | pdp11 | pj | pjl | pn | power \ - | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ - | pru \ - | pyramid \ - | riscv | riscv32 | riscv64 \ - | rl78 | romp | rs6000 | rx \ ++ | pdp10 | pdp11 | pj | pjl | pn | power \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ ++ | pru \ ++ | pyramid \ ++ | riscv | riscv32 | riscv64 \ ++ | rl78 | romp | rs6000 | rx \ + | s390 | s390x \ - | score \ -- | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ ++ | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ - | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ - | sparclite \ -@@ -1237,10 +1244,11 @@ - | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ - | tron \ - | ubicom32 \ -- | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ ++ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ ++ | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ ++ | spu \ ++ | tahoe \ ++ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ ++ | tron \ ++ | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ - | vax \ - | visium \ -- | wasm32 \ ++ | vax \ ++ | visium \ + | w65 \ + | wasm32 | wasm64 \ - | we32k \ - | x86 | x86_64 | xc16x | xgate | xps100 \ - | xstormy16 | xtensa* \ -@@ -1270,8 +1278,47 @@ ++ | we32k \ ++ | x86 | x86_64 | xc16x | xgate | xps100 \ ++ | xstormy16 | xtensa* \ ++ | ymp \ ++ | z8k | z80) ++ ;; ++ ++ *) ++ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 ++ exit 1 ++ ;; ++ esac + ;; + esac + + # Here we canonicalize certain aliases for manufacturers. +-case $basic_machine in +- *-digital*) +- basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` ++case $vendor in ++ digital*) ++ vendor=dec + ;; +- *-commodore*) +- basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` ++ commodore*) ++ vendor=cbm + ;; + *) + ;; +@@ -1334,203 +1278,213 @@ # Decode manufacturer-specific aliases for certain operating systems. --if [ x$os != x ] +-if [ x"$os" != x"" ] +if test x$basic_os != x then + @@ -1124,184 +2289,301 @@ aarch64/arm64/M1 can compile. case $os in # First match some system type aliases that might get confused # with valid system types. -@@ -1283,7 +1330,7 @@ - os=cnk - ;; - solaris1 | solaris1.*) +- # -solaris* is a basic system type, with this one exception. +- -auroraux) +- os=-auroraux ++ # solaris* is a basic system type, with this one exception. ++ auroraux) ++ os=auroraux + ;; +- -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` ++ bluegene*) ++ os=cnk + ;; +- -solaris) +- os=-solaris2 ++ solaris1 | solaris1.*) + os=$(echo $os | sed -e 's|solaris1|sunos4|') ;; - solaris) - os=solaris2 -@@ -1291,9 +1338,6 @@ - unixware*) - os=sysv4.2uw +- -unixware*) +- os=-sysv4.2uw ++ solaris) ++ os=solaris2 ;; -- gnu/linux*) +- -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` -- ;; - # es1800 is here to avoid being matched by es* (a different OS) - es1800*) - os=ose -@@ -1315,12 +1359,9 @@ - os=sco3.2v4 - ;; - sco3.2.[4-9]*) -- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` -- ;; -- sco3.2v[4-9]* | sco5v6*) -- # Don't forget version if it is 3.2v4 or newer. -+ os=$(echo $os | sed -e 's/sco3.2./sco3.2v/') ++ unixware*) ++ os=sysv4.2uw ;; -- scout) -+ sco*v* | scout) - # Don't match below - ;; - sco*) -@@ -1329,78 +1370,26 @@ - psos*) - os=psos + # es1800 is here to avoid being matched by es* (a different OS) +- -es1800*) +- os=-ose ++ es1800*) ++ os=ose ;; - # Now accept the basic system types. - # The portable systems comes first. - # Each alternative MUST end in a * to match a version number. -- # sysv* is not here because it comes later, after sysvr4. -- gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ -- | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ -- | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ -- | sym* | kopensolaris* | plan9* \ -- | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ -- | aos* | aros* | cloudabi* | sortix* \ -- | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ -- | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ -- | knetbsd* | mirbsd* | netbsd* \ -- | bitrig* | openbsd* | solidbsd* | libertybsd* \ -- | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ -- | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ -- | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ -- | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ -- | chorusrdb* | cegcc* | glidix* \ -- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ -- | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ -- | linux-newlib* | linux-musl* | linux-uclibc* \ -- | uxpv* | beos* | mpeix* | udk* | moxiebox* \ -- | interix* | uwin* | mks* | rhapsody* | darwin* \ -- | openstep* | oskit* | conix* | pw32* | nonstopux* \ -- | storm-chaos* | tops10* | tenex* | tops20* | its* \ -- | os2* | vos* | palmos* | uclinux* | nucleus* \ -- | morphos* | superux* | rtmk* | windiss* \ -- | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ -- | skyos* | haiku* | rdos* | toppers* | drops* | es* \ -- | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ -- | midnightbsd*) +- # -sysv* is not here because it comes later, after sysvr4. +- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ +- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ +- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ +- | -sym* | -kopensolaris* | -plan9* \ +- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ +- | -aos* | -aros* | -cloudabi* | -sortix* \ +- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ +- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ +- | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ +- | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ +- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ +- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ +- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ +- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ +- | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ +- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ +- | -linux-newlib* | -linux-musl* | -linux-uclibc* \ +- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ +- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ +- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ +- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ +- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ +- | -morphos* | -superux* | -rtmk* | -windiss* \ +- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ +- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ +- | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ +- | -midnightbsd*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - qnx*) -- case $cpu in -- x86 | i*86) +- -qnx*) +- case $basic_machine in +- x86-* | i*86-*) - ;; - *) -- os=nto-$os +- os=-nto$os - ;; - esac -+ os=qnx ++ # Some version numbers need modification ++ chorusos*) ++ os=chorusos ;; - hiux*) - os=hiuxwe2 +- -nto-qnx*) ++ isc) ++ os=isc2.2 ;; -- nto-qnx*) -- ;; -- nto*) +- -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` -- ;; -- sim | xray | os68k* | v88r* \ -- | windows* | osx | abug | netware* | os9* \ -- | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) -- ;; -- linux-dietlibc) -- os=linux-dietlibc -- ;; -- linux*) ++ sco6) ++ os=sco5v6 + ;; +- -sim | -xray | -os68k* | -v88r* \ +- | -windows* | -osx | -abug | -netware* | -os9* \ +- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ++ sco5) ++ os=sco3.2v5 + ;; +- -mac*) +- os=`echo "$os" | sed -e 's|mac|macos|'` ++ sco4) ++ os=sco3.2v4 + ;; +- -linux-dietlibc) +- os=-linux-dietlibc ++ sco3.2.[4-9]*) ++ os=$(echo $os | sed -e 's/sco3.2./sco3.2v/') + ;; +- -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` -- ;; - lynx*178) - os=lynxos178 ++ sco*v* | scout) ++ # Don't match below + ;; +- -sunos5*) +- os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ++ sco*) ++ os=sco3.2v2 + ;; +- -sunos6*) +- os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ++ psos*) ++ os=psos ;; - lynx*5) - os=lynxos5 +- -opened*) +- os=-openedition ++ qnx*) ++ os=qnx + ;; +- -os400*) +- os=-os400 ++ hiux*) ++ os=hiuxwe2 + ;; +- -wince*) +- os=-wince ++ lynx*178) ++ os=lynxos178 + ;; +- -utek*) +- os=-bsd ++ lynx*5) ++ os=lynxos5 ;; +- -dynix*) +- os=-bsd + lynxos*) + # don't get caught up in next wildcard -+ ;; - lynx*) - os=lynxos ;; -- mac*) -- os=`echo "$os" | sed -e 's|mac|macos|'` +- -acis*) +- os=-aos ++ lynx*) ++ os=lynxos + ;; +- -atheos*) +- os=-atheos + mac[0-9]*) + os=$(echo "$os" | sed -e 's|mac|macos|') ;; - opened*) - os=openedition -@@ -1409,10 +1398,10 @@ - os=os400 +- -syllable*) +- os=-syllable ++ opened*) ++ os=openedition ;; - sunos5*) -- os=`echo "$os" | sed -e 's|sunos5|solaris2|'` +- -386bsd) +- os=-bsd ++ os400*) ++ os=os400 + ;; +- -ctix* | -uts*) +- os=-sysv ++ sunos5*) + os=$(echo "$os" | sed -e 's|sunos5|solaris2|') ;; - sunos6*) -- os=`echo "$os" | sed -e 's|sunos6|solaris3|'` +- -nova*) +- os=-rtmk-nova ++ sunos6*) + os=$(echo "$os" | sed -e 's|sunos6|solaris3|') ;; - wince*) - os=wince -@@ -1444,12 +1433,9 @@ - ns2) - os=nextstep2 +- -ns2) +- os=-nextstep2 ++ wince*) ++ os=wince ;; -- nsk*) -- os=nsk -- ;; - # Preserve the version number of sinix5. - sinix5.*) +- -nsk*) +- os=-nsk ++ utek*) ++ os=bsd + ;; +- # Preserve the version number of sinix5. +- -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` ++ dynix*) ++ os=bsd ++ ;; ++ acis*) ++ os=aos ++ ;; ++ atheos*) ++ os=atheos ++ ;; ++ syllable*) ++ os=syllable ++ ;; ++ 386bsd) ++ os=bsd ++ ;; ++ ctix* | uts*) ++ os=sysv + ;; +- -sinix*) +- os=-sysv4 ++ nova*) ++ os=rtmk-nova + ;; +- -tpf*) +- os=-tpf ++ ns2) ++ os=nextstep2 + ;; +- -triton*) +- os=-sysv3 ++ # Preserve the version number of sinix5. ++ sinix5.*) + os=$(echo $os | sed -e 's|sinix|sysv|') ;; - sinix*) - os=sysv4 -@@ -1472,18 +1458,12 @@ - sysvr4) - os=sysv4 - ;; -- # This must come after sysvr4. -- sysv*) -- ;; - ose*) - os=ose - ;; - *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) - os=mint - ;; -- zvmoe) -- os=zvmoe -- ;; - dicos*) - os=dicos - ;; -@@ -1500,19 +1480,11 @@ +- -oss*) +- os=-sysv3 ++ sinix*) ++ os=sysv4 + ;; +- -svr4*) +- os=-sysv4 ++ tpf*) ++ os=tpf + ;; +- -svr3) +- os=-sysv3 ++ triton*) ++ os=sysv3 + ;; +- -sysvr4) +- os=-sysv4 ++ oss*) ++ os=sysv3 + ;; +- # This must come after -sysvr4. +- -sysv*) ++ svr4*) ++ os=sysv4 + ;; +- -ose*) +- os=-ose ++ svr3) ++ os=sysv3 + ;; +- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) +- os=-mint ++ sysvr4) ++ os=sysv4 + ;; +- -zvmoe) +- os=-zvmoe ++ ose*) ++ os=ose + ;; +- -dicos*) +- os=-dicos ++ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) ++ os=mint + ;; +- -pikeos*) ++ dicos*) ++ os=dicos ++ ;; ++ pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. +- case $basic_machine in ++ case $cpu in + arm*) +- os=-eabi ++ os=eabi + ;; + *) +- os=-elf ++ os=elf ;; esac ;; -- nacl*) +- -nacl*) - ;; -- ios) -- ;; -- none) +- -ios) - ;; -- *-eabi) +- -none) - ;; *) +- # Get rid of the `-' at the beginning of $os. +- os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 - exit 1 + # No normalization, but not necessarily accepted, that comes below. @@ -1311,26 +2593,244 @@ aarch64/arm64/M1 can compile. else # Here we handle the default operating systems that come with various machines. -@@ -1525,6 +1497,7 @@ +@@ -1543,258 +1497,356 @@ # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. +-case $basic_machine in +kernel= - case $cpu-$vendor in ++case $cpu-$vendor in score-*) - os=elf -@@ -1536,7 +1509,8 @@ - os=riscix1.2 +- os=-elf ++ os=elf + ;; + spu-*) +- os=-elf ++ os=elf + ;; + *-acorn) +- os=-riscix1.2 ++ os=riscix1.2 ;; arm*-rebel) -- os=linux +- os=-linux + kernel=linux + os=gnu ;; arm*-semi) - os=aout -@@ -1702,84 +1676,173 @@ - os=none +- os=-aout ++ os=aout + ;; + c4x-* | tic4x-*) +- os=-coff ++ os=coff + ;; + c8051-*) +- os=-elf ++ os=elf ++ ;; ++ clipper-intergraph) ++ os=clix + ;; + hexagon-*) +- os=-elf ++ os=elf + ;; + tic54x-*) +- os=-coff ++ os=coff + ;; + tic55x-*) +- os=-coff ++ os=coff + ;; + tic6x-*) +- os=-coff ++ os=coff + ;; + # This must come before the *-dec entry. + pdp10-*) +- os=-tops20 ++ os=tops20 + ;; + pdp11-*) +- os=-none ++ os=none + ;; + *-dec | vax-*) +- os=-ultrix4.2 ++ os=ultrix4.2 + ;; + m68*-apollo) +- os=-domain ++ os=domain + ;; + i386-sun) +- os=-sunos4.0.2 ++ os=sunos4.0.2 + ;; + m68000-sun) +- os=-sunos3 ++ os=sunos3 + ;; + m68*-cisco) +- os=-aout ++ os=aout + ;; + mep-*) +- os=-elf ++ os=elf + ;; + mips*-cisco) +- os=-elf ++ os=elf + ;; + mips*-*) +- os=-elf ++ os=elf + ;; + or32-*) +- os=-coff ++ os=coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. +- os=-sysv3 ++ os=sysv3 + ;; + sparc-* | *-sun) +- os=-sunos4.1.1 ++ os=sunos4.1.1 + ;; + pru-*) +- os=-elf ++ os=elf + ;; + *-be) +- os=-beos ++ os=beos + ;; + *-ibm) +- os=-aix ++ os=aix + ;; + *-knuth) +- os=-mmixware ++ os=mmixware + ;; + *-wec) +- os=-proelf ++ os=proelf + ;; + *-winbond) +- os=-proelf ++ os=proelf + ;; + *-oki) +- os=-proelf ++ os=proelf + ;; + *-hp) +- os=-hpux ++ os=hpux + ;; + *-hitachi) +- os=-hiux ++ os=hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) +- os=-sysv ++ os=sysv + ;; + *-cbm) +- os=-amigaos ++ os=amigaos + ;; + *-dg) +- os=-dgux ++ os=dgux + ;; + *-dolphin) +- os=-sysv3 ++ os=sysv3 + ;; + m68k-ccur) +- os=-rtu ++ os=rtu + ;; + m88k-omron*) +- os=-luna ++ os=luna + ;; + *-next) +- os=-nextstep ++ os=nextstep + ;; + *-sequent) +- os=-ptx ++ os=ptx + ;; + *-crds) +- os=-unos ++ os=unos + ;; + *-ns) +- os=-genix ++ os=genix + ;; + i370-*) +- os=-mvs ++ os=mvs + ;; + *-gould) +- os=-sysv ++ os=sysv + ;; + *-highlevel) +- os=-bsd ++ os=bsd + ;; + *-encore) +- os=-bsd ++ os=bsd + ;; + *-sgi) +- os=-irix ++ os=irix + ;; + *-siemens) +- os=-sysv4 ++ os=sysv4 + ;; + *-masscomp) +- os=-rtu ++ os=rtu + ;; + f30[01]-fujitsu | f700-fujitsu) +- os=-uxpv ++ os=uxpv + ;; + *-rom68k) +- os=-coff ++ os=coff + ;; + *-*bug) +- os=-coff ++ os=coff + ;; + *-apple) +- os=-macos ++ os=macos + ;; + *-atari*) +- os=-mint ++ os=mint ++ ;; ++ *-wrs) ++ os=vxworks + ;; + *) +- os=-none ++ os=none ;; esac + @@ -1423,1089 +2923,115 @@ aarch64/arm64/M1 can compile. + # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. - case $vendor in - unknown) +-vendor=unknown +-case $basic_machine in +- *-unknown) - case $os in -- riscix*) +- -riscix*) ++case $vendor in ++ unknown) + case $cpu-$os in + *-riscix*) vendor=acorn ;; -- sunos*) +- -sunos*) + *-sunos*) vendor=sun ;; -- cnk*|-aix*) +- -cnk*|-aix*) + *-cnk* | *-aix*) vendor=ibm ;; -- beos*) +- -beos*) + *-beos*) vendor=be ;; -- hpux*) +- -hpux*) + *-hpux*) vendor=hp ;; -- mpeix*) +- -mpeix*) + *-mpeix*) vendor=hp ;; -- hiux*) +- -hiux*) + *-hiux*) vendor=hitachi ;; -- unos*) +- -unos*) + *-unos*) vendor=crds ;; -- dgux*) +- -dgux*) + *-dgux*) vendor=dg ;; -- luna*) +- -luna*) + *-luna*) vendor=omron ;; -- genix*) +- -genix*) + *-genix*) vendor=ns ;; -- clix*) +- -mvs* | -opened*) + *-clix*) - vendor=intergraph - ;; -- mvs* | opened*) ++ vendor=intergraph ++ ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) vendor=ibm ;; -- os400*) +- -os400*) + s390-* | s390x-*) vendor=ibm ;; -- ptx*) +- -ptx*) + *-ptx*) vendor=sequent ;; -- tpf*) +- -tpf*) + *-tpf*) vendor=ibm ;; -- vxsim* | vxworks* | windiss*) +- -vxsim* | -vxworks* | -windiss*) + *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; -- aux*) +- -aux*) + *-aux*) vendor=apple ;; -- hms*) +- -hms*) + *-hms*) vendor=hitachi ;; -- mpw* | macos*) +- -mpw* | -macos*) + *-mpw* | *-macos*) vendor=apple ;; -- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) +- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; -- vos*) +- -vos*) + *-vos*) vendor=stratus ;; esac +- basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac --echo "$cpu-$vendor-$os" +-echo "$basic_machine$os" +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: ---- a/config.guess -+++ b/config.guess -@@ -1,8 +1,8 @@ - #! /bin/sh - # Attempt to guess a canonical system name. --# Copyright 1992-2018 Free Software Foundation, Inc. -+# Copyright 1992-2020 Free Software Foundation, Inc. - --timestamp='2018-08-29' -+timestamp='2020-11-07' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -32,7 +32,7 @@ - # Please send patches to . - - --me=`echo "$0" | sed -e 's,.*/,,'` -+me=$(echo "$0" | sed -e 's,.*/,,') - - usage="\ - Usage: $0 [OPTION] -@@ -50,7 +50,7 @@ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright 1992-2018 Free Software Foundation, Inc. -+Copyright 1992-2020 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -96,13 +96,14 @@ - - tmp= - # shellcheck disable=SC2172 --trap 'test -z "$tmp" || rm -fr "$tmp"' 1 2 13 15 --trap 'exitcode=$?; test -z "$tmp" || rm -fr "$tmp"; exit $exitcode' 0 -+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 - - set_cc_for_build() { -+ # prevent multiple calls if $tmp is already set -+ test "$tmp" && return 0 - : "${TMPDIR=/tmp}" - # shellcheck disable=SC2039 -- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } -@@ -130,10 +131,10 @@ - PATH=$PATH:/.attbin ; export PATH - fi - --UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown --UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown --UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown --UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -+UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown -+UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown -+UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown -+UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown - - case "$UNAME_SYSTEM" in - Linux|GNU|GNU/*) -@@ -149,17 +150,15 @@ - #elif defined(__dietlibc__) - LIBC=dietlibc - #else -+ #include -+ #ifdef __DEFINED_va_list -+ LIBC=musl -+ #else - LIBC=gnu - #endif -+ #endif - EOF -- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" -- -- # If ldd exists, use it to detect musl libc. -- if command -v ldd >/dev/null && \ -- ldd --version 2>&1 | grep -q ^musl -- then -- LIBC=musl -- fi -+ eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')" - ;; - esac - -@@ -178,19 +177,20 @@ - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" -- UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ -+ UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \ - "/sbin/$sysctl" 2>/dev/null || \ - "/usr/sbin/$sysctl" 2>/dev/null || \ -- echo unknown)` -+ echo unknown)) - case "$UNAME_MACHINE_ARCH" in -+ aarch64eb) machine=aarch64_be-unknown ;; - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - earmv*) -- arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` -- endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` -+ arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,') -+ endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p') - machine="${arch}${endian}"-unknown - ;; - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; -@@ -221,7 +221,7 @@ - case "$UNAME_MACHINE_ARCH" in - earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' -- abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` -+ abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr") - ;; - esac - # The OS release -@@ -234,7 +234,7 @@ - release='-gnu' - ;; - *) -- release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` -+ release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2) - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: -@@ -243,15 +243,15 @@ - echo "$machine-${os}${release}${abi-}" - exit ;; - *:Bitrig:*:*) -- UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` -+ UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//') - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" - exit ;; - *:OpenBSD:*:*) -- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//') - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" - exit ;; - *:LibertyBSD:*:*) -- UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` -+ UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//') - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" - exit ;; - *:MidnightBSD:*:*) -@@ -263,6 +263,9 @@ - *:SolidBSD:*:*) - echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" - exit ;; -+ *:OS108:*:*) -+ echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" -+ exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd"$UNAME_RELEASE" - exit ;; -@@ -272,26 +275,29 @@ - *:Sortix:*:*) - echo "$UNAME_MACHINE"-unknown-sortix - exit ;; -+ *:Twizzler:*:*) -+ echo "$UNAME_MACHINE"-unknown-twizzler -+ exit ;; - *:Redox:*:*) - echo "$UNAME_MACHINE"-unknown-redox - exit ;; - mips:OSF1:*.*) -- echo mips-dec-osf1 -- exit ;; -+ echo mips-dec-osf1 -+ exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) -- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -+ UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}') - ;; - *5.*) -- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}') - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. -- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` -+ ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1) - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE=alpha ;; -@@ -329,7 +335,7 @@ - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" -+ echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)" - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 -@@ -363,7 +369,7 @@ - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. -- if test "`(/bin/universe) 2>/dev/null`" = att ; then -+ if test "$( (/bin/universe) 2>/dev/null)" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd -@@ -376,54 +382,59 @@ - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) -- case `/usr/bin/uname -p` in -+ case $(/usr/bin/uname -p) in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) -- echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" -+ echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" - exit ;; - sun4H:SunOS:5.*:*) -- echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" -+ echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) -- echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" -+ echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux"$UNAME_RELEASE" - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) -- UNAME_REL="`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" -- case `isainfo -b` in -- 32) -- echo i386-pc-solaris2"$UNAME_REL" -- ;; -- 64) -- echo x86_64-pc-solaris2"$UNAME_REL" -- ;; -- esac -+ set_cc_for_build -+ SUN_ARCH=i386 -+ # If there is a compiler, see if it is configured for 64-bit objects. -+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. -+ # This test works for both compilers. -+ if 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 -+ echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. -- echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" -+ echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" - exit ;; - sun4*:SunOS:*:*) -- case "`/usr/bin/arch -k`" in -+ case "$(/usr/bin/arch -k)" in - Series*|S4*) -- UNAME_RELEASE=`uname -v` -+ UNAME_RELEASE=$(uname -v) - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. -- echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" -+ echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')" - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos"$UNAME_RELEASE" - exit ;; - sun*:*:4.2BSD:*) -- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` -+ UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null) - test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 -- case "`/bin/arch`" in -+ case "$(/bin/arch)" in - sun3) - echo m68k-sun-sunos"$UNAME_RELEASE" - ;; -@@ -503,8 +514,8 @@ - } - EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && -- dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && -- SYSTEM_NAME=`"$dummy" "$dummyarg"` && -+ dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') && -+ SYSTEM_NAME=$("$dummy" "$dummyarg") && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos"$UNAME_RELEASE" - exit ;; -@@ -531,11 +542,11 @@ - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures -- UNAME_PROCESSOR=`/usr/bin/uname -p` -- if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] -+ UNAME_PROCESSOR=$(/usr/bin/uname -p) -+ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 - then -- if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ -- [ "$TARGET_BINARY_INTERFACE"x = x ] -+ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ -+ test "$TARGET_BINARY_INTERFACE"x = x - then - echo m88k-dg-dgux"$UNAME_RELEASE" - else -@@ -559,17 +570,17 @@ - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) -- echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" -+ echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')" - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) -- if [ -x /usr/bin/oslevel ] ; then -- IBM_REV=`/usr/bin/oslevel` -+ if test -x /usr/bin/oslevel ; then -+ IBM_REV=$(/usr/bin/oslevel) - else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" - fi -@@ -589,7 +600,7 @@ - exit(0); - } - EOF -- if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` -+ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") - then - echo "$SYSTEM_NAME" - else -@@ -602,15 +613,15 @@ - fi - exit ;; - *:AIX:*:[4567]) -- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` -+ IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }') - if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi -- if [ -x /usr/bin/lslpp ] ; then -- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | -- awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` -+ if test -x /usr/bin/lslpp ; then -+ IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc | -+ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/) - else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" - fi -@@ -638,14 +649,14 @@ - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) -- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` -+ HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') - case "$UNAME_MACHINE" in - 9000/31?) HP_ARCH=m68000 ;; - 9000/[34]??) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) -- if [ -x /usr/bin/getconf ]; then -- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -+ if test -x /usr/bin/getconf; then -+ sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null) -+ sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null) - case "$sc_cpu_version" in - 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 - 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 -@@ -657,7 +668,7 @@ - esac ;; - esac - fi -- if [ "$HP_ARCH" = "" ]; then -+ if test "$HP_ARCH" = ""; then - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" - -@@ -692,11 +703,11 @@ - exit (0); - } - EOF -- (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` -+ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy") - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac -- if [ "$HP_ARCH" = hppa2.0w ] -+ if test "$HP_ARCH" = hppa2.0w - then - set_cc_for_build - -@@ -720,7 +731,7 @@ - echo "$HP_ARCH"-hp-hpux"$HPUX_REV" - exit ;; - ia64:HP-UX:*:*) -- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` -+ HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') - echo ia64-hp-hpux"$HPUX_REV" - exit ;; - 3050*:HI-UX:*:*) -@@ -750,7 +761,7 @@ - exit (0); - } - EOF -- $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && -+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; -@@ -770,7 +781,7 @@ - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) -- if [ -x /usr/sbin/sysversion ] ; then -+ if test -x /usr/sbin/sysversion ; then - echo "$UNAME_MACHINE"-unknown-osf1mk - else - echo "$UNAME_MACHINE"-unknown-osf1 -@@ -819,14 +830,14 @@ - echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) -- FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` -- FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` -- FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` -+ FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) -+ FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') -+ FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/') - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) -- FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` -- FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` -+ FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') -+ FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/') - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) -@@ -839,25 +850,25 @@ - echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" - exit ;; - arm:FreeBSD:*:*) -- UNAME_PROCESSOR=`uname -p` -+ UNAME_PROCESSOR=$(uname -p) - set_cc_for_build - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then -- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi -+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi - else -- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf -+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf - fi - exit ;; - *:FreeBSD:*:*) -- UNAME_PROCESSOR=`/usr/bin/uname -p` -+ UNAME_PROCESSOR=$(/usr/bin/uname -p) - case "$UNAME_PROCESSOR" in - amd64) - UNAME_PROCESSOR=x86_64 ;; - i386) - UNAME_PROCESSOR=i586 ;; - esac -- echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" -+ echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" - exit ;; - i*:CYGWIN*:*) - echo "$UNAME_MACHINE"-pc-cygwin -@@ -890,18 +901,18 @@ - echo "$UNAME_MACHINE"-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -- echo x86_64-unknown-cygwin -+ echo x86_64-pc-cygwin - exit ;; - prep*:SunOS:5.*:*) -- echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" -+ echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" - exit ;; - *:GNU:*:*) - # the GNU system -- echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" -+ echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')" - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland -- echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" -+ echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC" - exit ;; - *:Minix:*:*) - echo "$UNAME_MACHINE"-unknown-minix -@@ -914,7 +925,7 @@ - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - alpha:Linux:*:*) -- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -+ case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; -@@ -981,22 +992,50 @@ - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - set_cc_for_build -+ IS_GLIBC=0 -+ test x"${LIBC}" = xgnu && IS_GLIBC=1 - sed 's/^ //' << EOF > "$dummy.c" - #undef CPU -- #undef ${UNAME_MACHINE} -- #undef ${UNAME_MACHINE}el -+ #undef mips -+ #undef mipsel -+ #undef mips64 -+ #undef mips64el -+ #if ${IS_GLIBC} && defined(_ABI64) -+ LIBCABI=gnuabi64 -+ #else -+ #if ${IS_GLIBC} && defined(_ABIN32) -+ LIBCABI=gnuabin32 -+ #else -+ LIBCABI=${LIBC} -+ #endif -+ #endif -+ -+ #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 -+ CPU=mipsisa64r6 -+ #else -+ #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 -+ CPU=mipsisa32r6 -+ #else -+ #if defined(__mips64) -+ CPU=mips64 -+ #else -+ CPU=mips -+ #endif -+ #endif -+ #endif -+ - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -- CPU=${UNAME_MACHINE}el -+ MIPS_ENDIAN=el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) -- CPU=${UNAME_MACHINE} -+ MIPS_ENDIAN= - #else -- CPU= -+ MIPS_ENDIAN= - #endif - #endif - EOF -- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" -- test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } -+ eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')" -+ test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } - ;; - mips64el:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" -@@ -1015,7 +1054,7 @@ - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level -- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -+ case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in - PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; - PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; - *) echo hppa-unknown-linux-"$LIBC" ;; -@@ -1055,7 +1094,17 @@ - echo "$UNAME_MACHINE"-dec-linux-"$LIBC" - exit ;; - x86_64:Linux:*:*) -- echo "$UNAME_MACHINE"-pc-linux-"$LIBC" -+ set_cc_for_build -+ LIBCABI=$LIBC -+ if test "$CC_FOR_BUILD" != no_compiler_found; then -+ if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ -+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_X32 >/dev/null -+ then -+ LIBCABI="$LIBC"x32 -+ fi -+ fi -+ echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" - exit ;; - xtensa*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" -@@ -1095,7 +1144,7 @@ - echo "$UNAME_MACHINE"-pc-msdosdjgpp - exit ;; - i*86:*:4.*:*) -- UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` -+ UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//') - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" - else -@@ -1104,19 +1153,19 @@ - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. -- case `/bin/uname -X | grep "^Machine"` in -+ case $(/bin/uname -X | grep "^Machine") in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac -- echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" -+ echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then -- UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then -- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` -+ UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //')) - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 -@@ -1166,7 +1215,7 @@ - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ -- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -@@ -1177,7 +1226,7 @@ - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ -- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -@@ -1210,7 +1259,7 @@ - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then -- UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ UNAME_MACHINE=$( (uname -p) 2>/dev/null) - echo "$UNAME_MACHINE"-sni-sysv4 - else - echo ns32k-sni-sysv -@@ -1244,7 +1293,7 @@ - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) -- if [ -d /usr/nec ]; then -+ if test -d /usr/nec; then - echo mips-nec-sysv"$UNAME_RELEASE" - else - echo mips-unknown-sysv"$UNAME_RELEASE" -@@ -1292,44 +1341,48 @@ - *:Rhapsody:*:*) - echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" - exit ;; -+ arm64:Darwin:*:*) -+ echo aarch64-apple-darwin"$UNAME_RELEASE" -+ exit ;; - *:Darwin:*:*) -- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -- set_cc_for_build -- if test "$UNAME_PROCESSOR" = unknown ; then -- UNAME_PROCESSOR=powerpc -+ UNAME_PROCESSOR=$(uname -p) -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; -+ esac -+ if command -v xcode-select > /dev/null 2> /dev/null && \ -+ ! xcode-select --print-path > /dev/null 2> /dev/null ; then -+ # Avoid executing cc if there is no toolchain installed as -+ # cc will be a stub that puts up a graphical alert -+ # prompting the user to install developer tools. -+ CC_FOR_BUILD=no_compiler_found -+ else -+ set_cc_for_build - fi -- if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then -- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then -- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ -- grep IS_64BIT_ARCH >/dev/null -- then -- case $UNAME_PROCESSOR in -- i386) UNAME_PROCESSOR=x86_64 ;; -- powerpc) UNAME_PROCESSOR=powerpc64 ;; -- esac -- fi -- # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc -- if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ -- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ -- grep IS_PPC >/dev/null -- then -- UNAME_PROCESSOR=powerpc -- fi -+ if test "$CC_FOR_BUILD" != no_compiler_found; then -+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ case $UNAME_PROCESSOR in -+ i386) UNAME_PROCESSOR=x86_64 ;; -+ powerpc) UNAME_PROCESSOR=powerpc64 ;; -+ esac -+ fi -+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc -+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ -+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_PPC >/dev/null -+ then -+ UNAME_PROCESSOR=powerpc - fi - elif test "$UNAME_PROCESSOR" = i386 ; then -- # Avoid executing cc on OS X 10.9, as it ships with a stub -- # that puts up a graphical alert prompting to install -- # developer tools. Any system running Mac OS X 10.7 or -- # later (Darwin 11 and later) is required to have a 64-bit -- # processor. This is not true of the ARM version of Darwin -- # that Apple uses in portable devices. -- UNAME_PROCESSOR=x86_64 -+ # uname -m returns i386 or x86_64 -+ UNAME_PROCESSOR=$UNAME_MACHINE - fi - echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) -- UNAME_PROCESSOR=`uname -p` -+ UNAME_PROCESSOR=$(uname -p) - if test "$UNAME_PROCESSOR" = x86; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc -@@ -1397,10 +1450,10 @@ - echo mips-sei-seiux"$UNAME_RELEASE" - exit ;; - *:DragonFly:*:*) -- echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" -+ echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" - exit ;; - *:*VMS:*:*) -- UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ UNAME_MACHINE=$( (uname -p) 2>/dev/null) - case "$UNAME_MACHINE" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; -@@ -1410,7 +1463,7 @@ - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) -- echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" -+ echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')" - exit ;; - i*86:rdos:*:*) - echo "$UNAME_MACHINE"-pc-rdos -@@ -1424,8 +1477,148 @@ - amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; -+ *:Unleashed:*:*) -+ echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" -+ exit ;; - esac - -+# No uname command or uname output not recognized. -+set_cc_for_build -+cat > "$dummy.c" < -+#include -+#endif -+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) -+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) -+#include -+#if defined(_SIZE_T_) || defined(SIGLOST) -+#include -+#endif -+#endif -+#endif -+main () -+{ -+#if defined (sony) -+#if defined (MIPSEB) -+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, -+ I don't know.... */ -+ printf ("mips-sony-bsd\n"); exit (0); -+#else -+#include -+ printf ("m68k-sony-newsos%s\n", -+#ifdef NEWSOS4 -+ "4" -+#else -+ "" -+#endif -+ ); exit (0); -+#endif -+#endif -+ -+#if defined (NeXT) -+#if !defined (__ARCHITECTURE__) -+#define __ARCHITECTURE__ "m68k" -+#endif -+ int version; -+ version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null); -+ if (version < 4) -+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); -+ else -+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); -+ exit (0); -+#endif -+ -+#if defined (MULTIMAX) || defined (n16) -+#if defined (UMAXV) -+ printf ("ns32k-encore-sysv\n"); exit (0); -+#else -+#if defined (CMU) -+ printf ("ns32k-encore-mach\n"); exit (0); -+#else -+ printf ("ns32k-encore-bsd\n"); exit (0); -+#endif -+#endif -+#endif -+ -+#if defined (__386BSD__) -+ printf ("i386-pc-bsd\n"); exit (0); -+#endif -+ -+#if defined (sequent) -+#if defined (i386) -+ printf ("i386-sequent-dynix\n"); exit (0); -+#endif -+#if defined (ns32000) -+ printf ("ns32k-sequent-dynix\n"); exit (0); -+#endif -+#endif -+ -+#if defined (_SEQUENT_) -+ struct utsname un; -+ -+ uname(&un); -+ if (strncmp(un.version, "V2", 2) == 0) { -+ printf ("i386-sequent-ptx2\n"); exit (0); -+ } -+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ -+ printf ("i386-sequent-ptx1\n"); exit (0); -+ } -+ printf ("i386-sequent-ptx\n"); exit (0); -+#endif -+ -+#if defined (vax) -+#if !defined (ultrix) -+#include -+#if defined (BSD) -+#if BSD == 43 -+ printf ("vax-dec-bsd4.3\n"); exit (0); -+#else -+#if BSD == 199006 -+ printf ("vax-dec-bsd4.3reno\n"); exit (0); -+#else -+ printf ("vax-dec-bsd\n"); exit (0); -+#endif -+#endif -+#else -+ printf ("vax-dec-bsd\n"); exit (0); -+#endif -+#else -+#if defined(_SIZE_T_) || defined(SIGLOST) -+ struct utsname un; -+ uname (&un); -+ printf ("vax-dec-ultrix%s\n", un.release); exit (0); -+#else -+ printf ("vax-dec-ultrix\n"); exit (0); -+#endif -+#endif -+#endif -+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) -+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) -+#if defined(_SIZE_T_) || defined(SIGLOST) -+ struct utsname *un; -+ uname (&un); -+ printf ("mips-dec-ultrix%s\n", un.release); exit (0); -+#else -+ printf ("mips-dec-ultrix\n"); exit (0); -+#endif -+#endif -+#endif -+ -+#if defined (alliant) && defined (i860) -+ printf ("i860-alliant-bsd\n"); exit (0); -+#endif -+ -+ exit (1); -+} -+EOF -+ -+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) && -+ { echo "$SYSTEM_NAME"; exit; } -+ -+# Apollos put the system type in the environment. -+test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } -+ - echo "$0: unable to guess system type" >&2 - - case "$UNAME_MACHINE:$UNAME_SYSTEM" in -@@ -1448,6 +1641,12 @@ - https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess - and - https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub -+EOF -+ -+year=$(echo $timestamp | sed 's,-.*,,') -+# shellcheck disable=SC2003 -+if test "$(expr "$(date +%Y)" - "$year")" -lt 3 ; then -+ cat >&2 </dev/null || echo unknown` --uname -r = `(uname -r) 2>/dev/null || echo unknown` --uname -s = `(uname -s) 2>/dev/null || echo unknown` --uname -v = `(uname -v) 2>/dev/null || echo unknown` -- --/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` --/bin/uname -X = `(/bin/uname -X) 2>/dev/null` -- --hostinfo = `(hostinfo) 2>/dev/null` --/bin/universe = `(/bin/universe) 2>/dev/null` --/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` --/bin/arch = `(/bin/arch) 2>/dev/null` --/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` --/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -+uname -m = $( (uname -m) 2>/dev/null || echo unknown) -+uname -r = $( (uname -r) 2>/dev/null || echo unknown) -+uname -s = $( (uname -s) 2>/dev/null || echo unknown) -+uname -v = $( (uname -v) 2>/dev/null || echo unknown) -+ -+/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null) -+/bin/uname -X = $( (/bin/uname -X) 2>/dev/null) -+ -+hostinfo = $( (hostinfo) 2>/dev/null) -+/bin/universe = $( (/bin/universe) 2>/dev/null) -+/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null) -+/bin/arch = $( (/bin/arch) 2>/dev/null) -+/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null) -+/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null) - - UNAME_MACHINE = "$UNAME_MACHINE" - UNAME_RELEASE = "$UNAME_RELEASE" - UNAME_SYSTEM = "$UNAME_SYSTEM" - UNAME_VERSION = "$UNAME_VERSION" - EOF -+fi - - exit 1 - +-# eval: (add-hook 'write-file-functions 'time-stamp) ++# eval: (add-hook 'before-save-hook 'time-stamp) + # time-stamp-start: "timestamp='" + # time-stamp-format: "%:y-%02m-%02d" + # time-stamp-end: "'" diff --git a/patches/libxslt/0002-Fix-xml2-config-check-in-configure-script.patch b/patches/libxslt/0002-Fix-xml2-config-check-in-configure-script.patch deleted file mode 100644 index a882149aa3..0000000000 --- a/patches/libxslt/0002-Fix-xml2-config-check-in-configure-script.patch +++ /dev/null @@ -1,19 +0,0 @@ -From: Nick Wellnhofer -Date: Fri, 15 Nov 2019 11:53:11 +0100 -Subject: [PATCH] Fix xml2-config check in configure script - -A 'print' option has never been supported. After a recent change to -libxml2, invalid options cause xml2-config to fail. -diff --git a/configure b/configure -index c63adc5..6061227 100755 ---- a/configure -+++ b/configure -@@ -14860,7 +14860,7 @@ PKG_CONFIG=$_save_PKG_CONFIG - fi - - --if test "x$LIBXML_LIBS" = "x" && ${XML_CONFIG} --libs print > /dev/null 2>&1 -+if test "x$LIBXML_LIBS" = "x" && ${XML_CONFIG} --libs > /dev/null 2>&1 - then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml libraries >= $LIBXML_REQUIRED_VERSION" >&5 - $as_echo_n "checking for libxml libraries >= $LIBXML_REQUIRED_VERSION... " >&6; } From 95cf66ca9ff0fc5b85b6c74730b102afb50331c6 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 20 Feb 2022 13:14:06 -0500 Subject: [PATCH 7/8] =?UTF-8?q?dep:=20upgrade=20libxml2=202.9.12=20?= =?UTF-8?q?=E2=86=92=202.9.13?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + dependencies.yml | 31 +- ext/nokogiri/extconf.rb | 3 +- patches/libxml2/0004-use-glibc-strlen.patch | 6 +- ...0006-update-automake-files-for-arm64.patch | 4357 +++++++++-------- .../0007-Fix-XPath-recursion-limit.patch | 31 - test/xml/test_xpath.rb | 10 +- 7 files changed, 2458 insertions(+), 1981 deletions(-) delete mode 100644 patches/libxml2/0007-Fix-XPath-recursion-limit.patch diff --git a/CHANGELOG.md b/CHANGELOG.md index 4115f7249b..5371d13af2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Nokogiri follows [Semantic Versioning](https://semver.org/), please see the [REA ### Dependencies +* [CRuby] Vendored libxml2 is updated from 2.9.12 to 2.9.13. This update addresses [CVE-2022-23308](https://gitlab.gnome.org/GNOME/libxml2/-/commit/652dd12). Full changelog is available at https://download.gnome.org/sources/libxml2/2.9/libxml2-2.9.13.news * [CRuby] Vendored libxslt is updated from 1.1.34 to 1.1.35. This update addresses [CVE-2021-30560](https://nvd.nist.gov/vuln/detail/CVE-2021-30560). Full changelog is available at https://download.gnome.org/sources/libxslt/1.1/libxslt-1.1.35.news diff --git a/dependencies.yml b/dependencies.yml index e379e246a1..2d00410f9a 100644 --- a/dependencies.yml +++ b/dependencies.yml @@ -1,32 +1,7 @@ libxml2: - version: "2.9.12" - sha256: "c8d6681e38c56f172892c85ddc0852e1fd4b53b4209e7f4ebf17f7e2eae71d92" - # manually verified checksum: - # - # $ gpg --verify libxml2-2.9.12.tar.gz.asc ports/archives/libxml2-2.9.12.tar.gz - # gpg: Signature made Thu 13 May 2021 02:59:16 PM EDT - # gpg: using RSA key DB46681BB91ADCEA170FA2D415588B26596BEA5D - # gpg: Good signature from "Daniel Veillard (Red Hat work email) " [unknown] - # gpg: aka "Daniel Veillard " [unknown] - # gpg: WARNING: This key is not certified with a trusted signature! - # gpg: There is no indication that the signature belongs to the owner. - # Primary key fingerprint: C744 15BA 7C9C 7F78 F02E 1DC3 4606 B8A5 DE95 BC1F - # Subkey fingerprint: DB46 681B B91A DCEA 170F A2D4 1558 8B26 596B EA5D - # - # using this pgp signature: - # - # -----BEGIN PGP SIGNATURE----- - # - # iQEzBAABCAAdFiEE20ZoG7ka3OoXD6LUFViLJllr6l0FAmCddwQACgkQFViLJllr - # 6l11LQgAioRTdfmcC+uK/7+6HPtF/3c5zkX6j8VGYuvFBwZ0jayqMRBAl++fcpjE - # JUU/JKebSZ/KCYjzyeOWK/i3Gq77iqm3UbZFB85rqu4a5P3gmj/4STWVyAx0KU3z - # G3jKqDhJOt7c0acXb5lh2DngfDa1dn/VGcQcIXsqplNxNr4ET7MnSJjZ3nlxYfW2 - # E5vWBdPCMUeXDBl6MjYvw9XnGGBLUAaEJWoFToG6jKmVf4GAd9nza20jj5dtbcJq - # QEOaSDKDr+f9h2NS8haOhJ9vOpy52PdeGzaFlbRkXarGXuAr8kITgATVs8FAqcgv - # MoVhmrO5r2hJf0dCM9fZoYqzpMfmNA== - # =KfJ9 - # -----END PGP SIGNATURE----- - # + version: "2.9.13" + sha256: "276130602d12fe484ecc03447ee5e759d0465558fbc9d6bd144e3745306ebf0e" + # sha-256 hash provided in https://download.gnome.org/sources/libxml2/2.9/libxml2-2.9.13.sha256sum libxslt: version: "1.1.35" diff --git a/ext/nokogiri/extconf.rb b/ext/nokogiri/extconf.rb index 2c7508a311..86aae34089 100644 --- a/ext/nokogiri/extconf.rb +++ b/ext/nokogiri/extconf.rb @@ -770,8 +770,9 @@ def compile if source_dir recipe.source_directory = source_dir else + minor_version = Gem::Version.new(recipe.version).segments.take(2).join(".") recipe.files = [{ - url: "http://xmlsoft.org/sources/#{recipe.name}-#{recipe.version}.tar.gz", + url: "https://download.gnome.org/sources/libxml2/#{minor_version}/#{recipe.name}-#{recipe.version}.tar.xz", sha256: dependencies["libxml2"]["sha256"], }] recipe.patch_files = Dir[File.join(PACKAGE_ROOT_DIR, "patches", "libxml2", "*.patch")].sort diff --git a/patches/libxml2/0004-use-glibc-strlen.patch b/patches/libxml2/0004-use-glibc-strlen.patch index 26d26e87e9..cccd15075e 100644 --- a/patches/libxml2/0004-use-glibc-strlen.patch +++ b/patches/libxml2/0004-use-glibc-strlen.patch @@ -31,18 +31,18 @@ diff --git a/xmlstring.c b/xmlstring.c index e8a1e45d..df247dff 100644 --- a/xmlstring.c +++ b/xmlstring.c -@@ -423,14 +423,9 @@ xmlStrsub(const xmlChar *str, int start, int len) { +@@ -423,12 +423,7 @@ xmlStrsub(const xmlChar *str, int start, int len) { int xmlStrlen(const xmlChar *str) { -- int len = 0; +- size_t len = 0; - if (str == NULL) return(0); - while (*str != 0) { /* non input consuming */ - str++; - len++; - } -- return(len); +- return(len > INT_MAX ? 0 : len); + + return strlen((const char*)str); } diff --git a/patches/libxml2/0006-update-automake-files-for-arm64.patch b/patches/libxml2/0006-update-automake-files-for-arm64.patch index d441a881f4..e6233e51d9 100644 --- a/patches/libxml2/0006-update-automake-files-for-arm64.patch +++ b/patches/libxml2/0006-update-automake-files-for-arm64.patch @@ -9,7 +9,7 @@ aarch64/arm64/M1 can compile. -# Copyright 1992-2018 Free Software Foundation, Inc. +# Copyright 1992-2020 Free Software Foundation, Inc. --timestamp='2018-08-29' +-timestamp='2018-02-22' +timestamp='2020-11-07' # This file is free software; you can redistribute it and/or modify it @@ -41,1045 +41,2213 @@ aarch64/arm64/M1 can compile. exit 1 ;; *local*) -@@ -111,7 +111,8 @@ +@@ -110,1223 +110,1167 @@ + exit 1;; esac - # Split fields of configuration type --IFS="-" read -r field1 field2 field3 field4 <&2 ++ exit 1 ;; - *-*-*-*) - basic_machine=$field1-$field2 -- os=$field3-$field4 +- -lynx*) +- os=-lynxos ++ *-*-*-*) ++ basic_machine=$field1-$field2 + basic_os=$field3-$field4 ;; - *-*-*) - # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two - # parts - maybe_os=$field2-$field3 - case $maybe_os in -- nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ -- | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ +- -ptx*) +- basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` ++ *-*-*) ++ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two ++ # parts ++ maybe_os=$field2-$field3 ++ case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ - | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ - | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ - | storm-chaos* | os2-emx* | rtmk-nova*) - basic_machine=$field1 -- os=$maybe_os ++ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ ++ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ ++ | storm-chaos* | os2-emx* | rtmk-nova*) ++ basic_machine=$field1 + basic_os=$maybe_os - ;; - android-linux) - basic_machine=$field1-unknown -- os=linux-android ++ ;; ++ android-linux) ++ basic_machine=$field1-unknown + basic_os=linux-android - ;; - *) - basic_machine=$field1-$field2 -- os=$field3 ++ ;; ++ *) ++ basic_machine=$field1-$field2 + basic_os=$field3 - ;; - esac ++ ;; ++ esac ;; - *-*) -- # A lone config we happen to match not fitting any patern +- -psos*) +- os=-psos ++ *-*) + # A lone config we happen to match not fitting any pattern - case $field1-$field2 in - decstation-3100) - basic_machine=mips-dec -- os= ++ case $field1-$field2 in ++ decstation-3100) ++ basic_machine=mips-dec + basic_os= - ;; - *-*) - # Second component is usually, but not always the OS -@@ -161,7 +161,7 @@ - # Prevent following clause from handling this valid os - sun*os*) - basic_machine=$field1 -- os=$field2 ++ ;; ++ *-*) ++ # Second component is usually, but not always the OS ++ case $field2 in ++ # Prevent following clause from handling this valid os ++ sun*os*) ++ basic_machine=$field1 + basic_os=$field2 - ;; - # Manufacturers - dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ -@@ -174,11 +174,11 @@ - | microblaze* | sim | cisco \ - | oki | wec | wrs | winbond) - basic_machine=$field1-$field2 -- os= ++ ;; ++ # Manufacturers ++ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ ++ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ ++ | unicom* | ibm* | next | hp | isi* | apollo | altos* \ ++ | convergent* | ncr* | news | 32* | 3600* | 3100* \ ++ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ ++ | ultra | tti* | harris | dolphin | highlevel | gould \ ++ | cbm | ns | masscomp | apple | axis | knuth | cray \ ++ | microblaze* | sim | cisco \ ++ | oki | wec | wrs | winbond) ++ basic_machine=$field1-$field2 + basic_os= - ;; - *) - basic_machine=$field1 -- os=$field2 ++ ;; ++ *) ++ basic_machine=$field1 + basic_os=$field2 - ;; - esac - ;; -@@ -190,450 +190,451 @@ - case $field1 in - 386bsd) - basic_machine=i386-pc -- os=bsd ++ ;; ++ esac ++ ;; ++ esac + ;; +- -mint | -mint[0-9]*) +- basic_machine=m68k-atari +- os=-mint ++ *) ++ # Convert single-component short-hands not valid as part of ++ # multi-component configurations. ++ case $field1 in ++ 386bsd) ++ basic_machine=i386-pc + basic_os=bsd - ;; - a29khif) - basic_machine=a29k-amd -- os=udi ++ ;; ++ a29khif) ++ basic_machine=a29k-amd + basic_os=udi - ;; - adobe68k) - basic_machine=m68010-adobe -- os=scout ++ ;; ++ adobe68k) ++ basic_machine=m68010-adobe + basic_os=scout - ;; - alliant) - basic_machine=fx80-alliant -- os= ++ ;; ++ alliant) ++ basic_machine=fx80-alliant + basic_os= - ;; - altos | altos3068) - basic_machine=m68k-altos -- os= ++ ;; ++ altos | altos3068) ++ basic_machine=m68k-altos + basic_os= - ;; - am29k) - basic_machine=a29k-none -- os=bsd ++ ;; ++ am29k) ++ basic_machine=a29k-none + basic_os=bsd - ;; - amdahl) - basic_machine=580-amdahl -- os=sysv ++ ;; ++ amdahl) ++ basic_machine=580-amdahl + basic_os=sysv - ;; - amiga) - basic_machine=m68k-unknown -- os= ++ ;; ++ amiga) ++ basic_machine=m68k-unknown + basic_os= - ;; - amigaos | amigados) - basic_machine=m68k-unknown -- os=amigaos ++ ;; ++ amigaos | amigados) ++ basic_machine=m68k-unknown + basic_os=amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown -- os=sysv4 ++ ;; ++ amigaunix | amix) ++ basic_machine=m68k-unknown + basic_os=sysv4 - ;; - apollo68) - basic_machine=m68k-apollo -- os=sysv ++ ;; ++ apollo68) ++ basic_machine=m68k-apollo + basic_os=sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo -- os=bsd ++ ;; ++ apollo68bsd) ++ basic_machine=m68k-apollo + basic_os=bsd - ;; - aros) - basic_machine=i386-pc -- os=aros ++ ;; ++ aros) ++ basic_machine=i386-pc + basic_os=aros - ;; - aux) - basic_machine=m68k-apple -- os=aux ++ ;; ++ aux) ++ basic_machine=m68k-apple + basic_os=aux - ;; - balance) - basic_machine=ns32k-sequent -- os=dynix ++ ;; ++ balance) ++ basic_machine=ns32k-sequent + basic_os=dynix - ;; - blackfin) - basic_machine=bfin-unknown -- os=linux ++ ;; ++ blackfin) ++ basic_machine=bfin-unknown + basic_os=linux - ;; - cegcc) - basic_machine=arm-unknown -- os=cegcc ++ ;; ++ cegcc) ++ basic_machine=arm-unknown + basic_os=cegcc - ;; - convex-c1) - basic_machine=c1-convex -- os=bsd ++ ;; ++ convex-c1) ++ basic_machine=c1-convex + basic_os=bsd - ;; - convex-c2) - basic_machine=c2-convex -- os=bsd ++ ;; ++ convex-c2) ++ basic_machine=c2-convex + basic_os=bsd - ;; - convex-c32) - basic_machine=c32-convex -- os=bsd ++ ;; ++ convex-c32) ++ basic_machine=c32-convex + basic_os=bsd - ;; - convex-c34) - basic_machine=c34-convex -- os=bsd ++ ;; ++ convex-c34) ++ basic_machine=c34-convex + basic_os=bsd - ;; - convex-c38) - basic_machine=c38-convex -- os=bsd ++ ;; ++ convex-c38) ++ basic_machine=c38-convex + basic_os=bsd - ;; - cray) - basic_machine=j90-cray -- os=unicos ++ ;; ++ cray) ++ basic_machine=j90-cray + basic_os=unicos - ;; - crds | unos) - basic_machine=m68k-crds -- os= ++ ;; ++ crds | unos) ++ basic_machine=m68k-crds + basic_os= - ;; - da30) - basic_machine=m68k-da30 -- os= ++ ;; ++ da30) ++ basic_machine=m68k-da30 + basic_os= - ;; - decstation | pmax | pmin | dec3100 | decstatn) - basic_machine=mips-dec -- os= ++ ;; ++ decstation | pmax | pmin | dec3100 | decstatn) ++ basic_machine=mips-dec + basic_os= - ;; - delta88) - basic_machine=m88k-motorola -- os=sysv3 ++ ;; ++ delta88) ++ basic_machine=m88k-motorola + basic_os=sysv3 - ;; - dicos) - basic_machine=i686-pc -- os=dicos ++ ;; ++ dicos) ++ basic_machine=i686-pc + basic_os=dicos - ;; - djgpp) - basic_machine=i586-pc -- os=msdosdjgpp ++ ;; ++ djgpp) ++ basic_machine=i586-pc + basic_os=msdosdjgpp - ;; - ebmon29k) - basic_machine=a29k-amd -- os=ebmon ++ ;; ++ ebmon29k) ++ basic_machine=a29k-amd + basic_os=ebmon - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson -- os=ose ++ ;; ++ es1800 | OSE68k | ose68k | ose | OSE) ++ basic_machine=m68k-ericsson + basic_os=ose - ;; - gmicro) - basic_machine=tron-gmicro -- os=sysv ++ ;; ++ gmicro) ++ basic_machine=tron-gmicro + basic_os=sysv - ;; - go32) - basic_machine=i386-pc -- os=go32 ++ ;; ++ go32) ++ basic_machine=i386-pc + basic_os=go32 - ;; - h8300hms) - basic_machine=h8300-hitachi -- os=hms ++ ;; ++ h8300hms) ++ basic_machine=h8300-hitachi + basic_os=hms - ;; - h8300xray) - basic_machine=h8300-hitachi -- os=xray ++ ;; ++ h8300xray) ++ basic_machine=h8300-hitachi + basic_os=xray - ;; - h8500hms) - basic_machine=h8500-hitachi -- os=hms ++ ;; ++ h8500hms) ++ basic_machine=h8500-hitachi + basic_os=hms - ;; - harris) - basic_machine=m88k-harris -- os=sysv3 ++ ;; ++ harris) ++ basic_machine=m88k-harris + basic_os=sysv3 - ;; -- hp300) ++ ;; + hp300 | hp300hpux) - basic_machine=m68k-hp ++ basic_machine=m68k-hp + basic_os=hpux - ;; - hp300bsd) - basic_machine=m68k-hp -- os=bsd -- ;; -- hp300hpux) -- basic_machine=m68k-hp -- os=hpux ++ ;; ++ hp300bsd) ++ basic_machine=m68k-hp + basic_os=bsd - ;; - hppaosf) - basic_machine=hppa1.1-hp -- os=osf ++ ;; ++ hppaosf) ++ basic_machine=hppa1.1-hp + basic_os=osf - ;; - hppro) - basic_machine=hppa1.1-hp -- os=proelf ++ ;; ++ hppro) ++ basic_machine=hppa1.1-hp + basic_os=proelf - ;; - i386mach) - basic_machine=i386-mach -- os=mach -- ;; -- vsta) -- basic_machine=i386-pc -- os=vsta ++ ;; ++ i386mach) ++ basic_machine=i386-mach + basic_os=mach - ;; - isi68 | isi) - basic_machine=m68k-isi -- os=sysv ++ ;; ++ isi68 | isi) ++ basic_machine=m68k-isi + basic_os=sysv - ;; - m68knommu) - basic_machine=m68k-unknown -- os=linux ++ ;; ++ m68knommu) ++ basic_machine=m68k-unknown + basic_os=linux - ;; - magnum | m3230) - basic_machine=mips-mips -- os=sysv ++ ;; ++ magnum | m3230) ++ basic_machine=mips-mips + basic_os=sysv - ;; - merlin) - basic_machine=ns32k-utek -- os=sysv ++ ;; ++ merlin) ++ basic_machine=ns32k-utek + basic_os=sysv - ;; - mingw64) - basic_machine=x86_64-pc -- os=mingw64 ++ ;; ++ mingw64) ++ basic_machine=x86_64-pc + basic_os=mingw64 - ;; - mingw32) - basic_machine=i686-pc -- os=mingw32 ++ ;; ++ mingw32) ++ basic_machine=i686-pc + basic_os=mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown -- os=mingw32ce ++ ;; ++ mingw32ce) ++ basic_machine=arm-unknown + basic_os=mingw32ce - ;; - monitor) - basic_machine=m68k-rom68k -- os=coff ++ ;; ++ monitor) ++ basic_machine=m68k-rom68k + basic_os=coff - ;; - morphos) - basic_machine=powerpc-unknown -- os=morphos ++ ;; ++ morphos) ++ basic_machine=powerpc-unknown + basic_os=morphos - ;; - moxiebox) - basic_machine=moxie-unknown -- os=moxiebox ++ ;; ++ moxiebox) ++ basic_machine=moxie-unknown + basic_os=moxiebox - ;; - msdos) - basic_machine=i386-pc -- os=msdos ++ ;; ++ msdos) ++ basic_machine=i386-pc + basic_os=msdos - ;; - msys) - basic_machine=i686-pc -- os=msys ++ ;; ++ msys) ++ basic_machine=i686-pc + basic_os=msys - ;; - mvs) - basic_machine=i370-ibm -- os=mvs ++ ;; ++ mvs) ++ basic_machine=i370-ibm + basic_os=mvs - ;; - nacl) - basic_machine=le32-unknown -- os=nacl ++ ;; ++ nacl) ++ basic_machine=le32-unknown + basic_os=nacl - ;; - ncr3000) - basic_machine=i486-ncr -- os=sysv4 ++ ;; ++ ncr3000) ++ basic_machine=i486-ncr + basic_os=sysv4 - ;; - netbsd386) - basic_machine=i386-pc -- os=netbsd ++ ;; ++ netbsd386) ++ basic_machine=i386-pc + basic_os=netbsd - ;; - netwinder) - basic_machine=armv4l-rebel -- os=linux ++ ;; ++ netwinder) ++ basic_machine=armv4l-rebel + basic_os=linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony -- os=newsos ++ ;; ++ news | news700 | news800 | news900) ++ basic_machine=m68k-sony + basic_os=newsos - ;; - news1000) - basic_machine=m68030-sony -- os=newsos ++ ;; ++ news1000) ++ basic_machine=m68030-sony + basic_os=newsos - ;; - necv70) - basic_machine=v70-nec -- os=sysv ++ ;; ++ necv70) ++ basic_machine=v70-nec + basic_os=sysv - ;; - nh3000) - basic_machine=m68k-harris -- os=cxux ++ ;; ++ nh3000) ++ basic_machine=m68k-harris + basic_os=cxux - ;; - nh[45]000) - basic_machine=m88k-harris -- os=cxux ++ ;; ++ nh[45]000) ++ basic_machine=m88k-harris + basic_os=cxux - ;; - nindy960) - basic_machine=i960-intel -- os=nindy ++ ;; ++ nindy960) ++ basic_machine=i960-intel + basic_os=nindy - ;; - mon960) - basic_machine=i960-intel -- os=mon960 ++ ;; ++ mon960) ++ basic_machine=i960-intel + basic_os=mon960 - ;; - nonstopux) - basic_machine=mips-compaq -- os=nonstopux ++ ;; ++ nonstopux) ++ basic_machine=mips-compaq + basic_os=nonstopux - ;; - os400) - basic_machine=powerpc-ibm -- os=os400 ++ ;; ++ os400) ++ basic_machine=powerpc-ibm + basic_os=os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson -- os=ose ++ ;; ++ OSE68000 | ose68000) ++ basic_machine=m68000-ericsson + basic_os=ose - ;; - os68k) - basic_machine=m68k-none -- os=os68k ++ ;; ++ os68k) ++ basic_machine=m68k-none + basic_os=os68k - ;; - paragon) - basic_machine=i860-intel -- os=osf ++ ;; ++ paragon) ++ basic_machine=i860-intel + basic_os=osf - ;; - parisc) - basic_machine=hppa-unknown -- os=linux ++ ;; ++ parisc) ++ basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp - ;; - pw32) - basic_machine=i586-unknown -- os=pw32 ++ ;; ++ pw32) ++ basic_machine=i586-unknown + basic_os=pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc -- os=rdos ++ ;; ++ rdos | rdos64) ++ basic_machine=x86_64-pc + basic_os=rdos - ;; - rdos32) - basic_machine=i386-pc -- os=rdos ++ ;; ++ rdos32) ++ basic_machine=i386-pc + basic_os=rdos - ;; - rom68k) - basic_machine=m68k-rom68k -- os=coff ++ ;; ++ rom68k) ++ basic_machine=m68k-rom68k + basic_os=coff - ;; - sa29200) - basic_machine=a29k-amd -- os=udi ++ ;; ++ sa29200) ++ basic_machine=a29k-amd + basic_os=udi - ;; - sei) - basic_machine=mips-sei -- os=seiux ++ ;; ++ sei) ++ basic_machine=mips-sei + basic_os=seiux - ;; - sequent) - basic_machine=i386-sequent -- os= ++ ;; ++ sequent) ++ basic_machine=i386-sequent + basic_os= - ;; - sps7) - basic_machine=m68k-bull -- os=sysv2 ++ ;; ++ sps7) ++ basic_machine=m68k-bull + basic_os=sysv2 - ;; - st2000) - basic_machine=m68k-tandem -- os= ++ ;; ++ st2000) ++ basic_machine=m68k-tandem + basic_os= - ;; - stratus) - basic_machine=i860-stratus -- os=sysv4 ++ ;; ++ stratus) ++ basic_machine=i860-stratus + basic_os=sysv4 - ;; - sun2) - basic_machine=m68000-sun -- os= ++ ;; ++ sun2) ++ basic_machine=m68000-sun + basic_os= - ;; - sun2os3) - basic_machine=m68000-sun -- os=sunos3 ++ ;; ++ sun2os3) ++ basic_machine=m68000-sun + basic_os=sunos3 - ;; - sun2os4) - basic_machine=m68000-sun -- os=sunos4 ++ ;; ++ sun2os4) ++ basic_machine=m68000-sun + basic_os=sunos4 - ;; - sun3) - basic_machine=m68k-sun -- os= ++ ;; ++ sun3) ++ basic_machine=m68k-sun + basic_os= - ;; - sun3os3) - basic_machine=m68k-sun -- os=sunos3 ++ ;; ++ sun3os3) ++ basic_machine=m68k-sun + basic_os=sunos3 - ;; - sun3os4) - basic_machine=m68k-sun -- os=sunos4 ++ ;; ++ sun3os4) ++ basic_machine=m68k-sun + basic_os=sunos4 - ;; - sun4) - basic_machine=sparc-sun -- os= ++ ;; ++ sun4) ++ basic_machine=sparc-sun + basic_os= - ;; - sun4os3) - basic_machine=sparc-sun -- os=sunos3 ++ ;; ++ sun4os3) ++ basic_machine=sparc-sun + basic_os=sunos3 - ;; - sun4os4) - basic_machine=sparc-sun -- os=sunos4 ++ ;; ++ sun4os4) ++ basic_machine=sparc-sun + basic_os=sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun -- os=solaris2 ++ ;; ++ sun4sol2) ++ basic_machine=sparc-sun + basic_os=solaris2 - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun -- os= ++ ;; ++ sun386 | sun386i | roadrunner) ++ basic_machine=i386-sun + basic_os= - ;; - sv1) - basic_machine=sv1-cray -- os=unicos ++ ;; ++ sv1) ++ basic_machine=sv1-cray + basic_os=unicos - ;; - symmetry) - basic_machine=i386-sequent -- os=dynix ++ ;; ++ symmetry) ++ basic_machine=i386-sequent + basic_os=dynix - ;; - t3e) - basic_machine=alphaev5-cray -- os=unicos ++ ;; ++ t3e) ++ basic_machine=alphaev5-cray + basic_os=unicos - ;; - t90) - basic_machine=t90-cray -- os=unicos ++ ;; ++ t90) ++ basic_machine=t90-cray + basic_os=unicos - ;; - toad1) - basic_machine=pdp10-xkl -- os=tops20 ++ ;; ++ toad1) ++ basic_machine=pdp10-xkl + basic_os=tops20 - ;; - tpf) - basic_machine=s390x-ibm -- os=tpf ++ ;; ++ tpf) ++ basic_machine=s390x-ibm + basic_os=tpf - ;; - udi29k) - basic_machine=a29k-amd -- os=udi ++ ;; ++ udi29k) ++ basic_machine=a29k-amd + basic_os=udi - ;; - ultra3) - basic_machine=a29k-nyu -- os=sym1 ++ ;; ++ ultra3) ++ basic_machine=a29k-nyu + basic_os=sym1 - ;; - v810 | necv810) - basic_machine=v810-nec -- os=none ++ ;; ++ v810 | necv810) ++ basic_machine=v810-nec + basic_os=none - ;; - vaxv) - basic_machine=vax-dec -- os=sysv ++ ;; ++ vaxv) ++ basic_machine=vax-dec + basic_os=sysv - ;; - vms) - basic_machine=vax-dec -- os=vms ++ ;; ++ vms) ++ basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta - ;; - vxworks960) - basic_machine=i960-wrs -- os=vxworks ++ ;; ++ vxworks960) ++ basic_machine=i960-wrs + basic_os=vxworks - ;; - vxworks68) - basic_machine=m68k-wrs -- os=vxworks ++ ;; ++ vxworks68) ++ basic_machine=m68k-wrs + basic_os=vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs -- os=vxworks ++ ;; ++ vxworks29k) ++ basic_machine=a29k-wrs + basic_os=vxworks - ;; - xbox) - basic_machine=i686-pc -- os=mingw32 ++ ;; ++ xbox) ++ basic_machine=i686-pc + basic_os=mingw32 - ;; - ymp) - basic_machine=ymp-cray -- os=unicos ++ ;; ++ ymp) ++ basic_machine=ymp-cray + basic_os=unicos - ;; - *) - basic_machine=$1 -- os= ++ ;; ++ *) ++ basic_machine=$1 + basic_os= - ;; - esac ++ ;; ++ esac + ;; + esac + +-# Decode aliases for certain CPU-COMPANY combinations. ++# Decode 1-component or ad-hoc basic machines + case $basic_machine in +- # Recognize the basic CPU types without company name. +- # Some are omitted here because they have special meanings below. +- 1750a | 580 \ +- | a29k \ +- | aarch64 | aarch64_be \ +- | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ +- | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ +- | am33_2.0 \ +- | arc | arceb \ +- | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ +- | avr | avr32 \ +- | ba \ +- | be32 | be64 \ +- | bfin \ +- | c4x | c8051 | clipper \ +- | d10v | d30v | dlx | dsp16xx \ +- | e2k | epiphany \ +- | fido | fr30 | frv | ft32 \ +- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ +- | hexagon \ +- | i370 | i860 | i960 | ia16 | ia64 \ +- | ip2k | iq2000 \ +- | k1om \ +- | le32 | le64 \ +- | lm32 \ +- | m32c | m32r | m32rle | m68000 | m68k | m88k \ +- | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ +- | mips | mipsbe | mipseb | mipsel | mipsle \ +- | mips16 \ +- | mips64 | mips64el \ +- | mips64octeon | mips64octeonel \ +- | mips64orion | mips64orionel \ +- | mips64r5900 | mips64r5900el \ +- | mips64vr | mips64vrel \ +- | mips64vr4100 | mips64vr4100el \ +- | mips64vr4300 | mips64vr4300el \ +- | mips64vr5000 | mips64vr5000el \ +- | mips64vr5900 | mips64vr5900el \ +- | mipsisa32 | mipsisa32el \ +- | mipsisa32r2 | mipsisa32r2el \ +- | mipsisa32r6 | mipsisa32r6el \ +- | mipsisa64 | mipsisa64el \ +- | mipsisa64r2 | mipsisa64r2el \ +- | mipsisa64r6 | mipsisa64r6el \ +- | mipsisa64sb1 | mipsisa64sb1el \ +- | mipsisa64sr71k | mipsisa64sr71kel \ +- | mipsr5900 | mipsr5900el \ +- | mipstx39 | mipstx39el \ +- | mn10200 | mn10300 \ +- | moxie \ +- | mt \ +- | msp430 \ +- | nds32 | nds32le | nds32be \ +- | nios | nios2 | nios2eb | nios2el \ +- | ns16k | ns32k \ +- | open8 | or1k | or1knd | or32 \ +- | pdp10 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle \ +- | pru \ +- | pyramid \ +- | riscv32 | riscv64 \ +- | rl78 | rx \ +- | score \ +- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ +- | sh64 | sh64le \ +- | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ +- | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ +- | spu \ +- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ +- | ubicom32 \ +- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ +- | visium \ +- | wasm32 \ +- | x86 | xc16x | xstormy16 | xtensa \ +- | z8k | z80) +- basic_machine=$basic_machine-unknown +- ;; +- c54x) +- basic_machine=tic54x-unknown +- ;; +- c55x) +- basic_machine=tic55x-unknown +- ;; +- c6x) +- basic_machine=tic6x-unknown +- ;; +- leon|leon[3-9]) +- basic_machine=sparc-$basic_machine +- ;; +- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) +- basic_machine=$basic_machine-unknown +- os=-none ++ # Here we handle the default manufacturer of certain CPU types. It is in ++ # some cases the only manufacturer, in others, it is the most popular. ++ w89k) ++ cpu=hppa1.1 ++ vendor=winbond + ;; +- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) ++ op50n) ++ cpu=hppa1.1 ++ vendor=oki + ;; +- ms1) +- basic_machine=mt-unknown ++ op60c) ++ cpu=hppa1.1 ++ vendor=oki + ;; +- +- strongarm | thumb | xscale) +- basic_machine=arm-unknown ++ ibm*) ++ cpu=i370 ++ vendor=ibm + ;; +- xgate) +- basic_machine=$basic_machine-unknown +- os=-none ++ orion105) ++ cpu=clipper ++ vendor=highlevel + ;; +- xscaleeb) +- basic_machine=armeb-unknown ++ mac | mpw | mac-mpw) ++ cpu=m68k ++ vendor=apple + ;; +- +- xscaleel) +- basic_machine=armel-unknown ++ pmac | pmac-mpw) ++ cpu=powerpc ++ vendor=apple + ;; + +- # We use `pc' rather than `unknown' +- # because (1) that's what they normally are, and +- # (2) the word "unknown" tends to confuse beginning users. +- i*86 | x86_64) +- basic_machine=$basic_machine-pc +- ;; +- # Object if more than one company name word. +- *-*-*) +- echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 +- exit 1 +- ;; +- # Recognize the basic CPU types with company name. +- 580-* \ +- | a29k-* \ +- | aarch64-* | aarch64_be-* \ +- | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ +- | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ +- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ +- | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ +- | avr-* | avr32-* \ +- | ba-* \ +- | be32-* | be64-* \ +- | bfin-* | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* \ +- | c8051-* | clipper-* | craynv-* | cydra-* \ +- | d10v-* | d30v-* | dlx-* \ +- | e2k-* | elxsi-* \ +- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ +- | h8300-* | h8500-* \ +- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ +- | hexagon-* \ +- | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ +- | ip2k-* | iq2000-* \ +- | k1om-* \ +- | le32-* | le64-* \ +- | lm32-* \ +- | m32c-* | m32r-* | m32rle-* \ +- | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ +- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ +- | microblaze-* | microblazeel-* \ +- | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ +- | mips16-* \ +- | mips64-* | mips64el-* \ +- | mips64octeon-* | mips64octeonel-* \ +- | mips64orion-* | mips64orionel-* \ +- | mips64r5900-* | mips64r5900el-* \ +- | mips64vr-* | mips64vrel-* \ +- | mips64vr4100-* | mips64vr4100el-* \ +- | mips64vr4300-* | mips64vr4300el-* \ +- | mips64vr5000-* | mips64vr5000el-* \ +- | mips64vr5900-* | mips64vr5900el-* \ +- | mipsisa32-* | mipsisa32el-* \ +- | mipsisa32r2-* | mipsisa32r2el-* \ +- | mipsisa32r6-* | mipsisa32r6el-* \ +- | mipsisa64-* | mipsisa64el-* \ +- | mipsisa64r2-* | mipsisa64r2el-* \ +- | mipsisa64r6-* | mipsisa64r6el-* \ +- | mipsisa64sb1-* | mipsisa64sb1el-* \ +- | mipsisa64sr71k-* | mipsisa64sr71kel-* \ +- | mipsr5900-* | mipsr5900el-* \ +- | mipstx39-* | mipstx39el-* \ +- | mmix-* \ +- | mt-* \ +- | msp430-* \ +- | nds32-* | nds32le-* | nds32be-* \ +- | nios-* | nios2-* | nios2eb-* | nios2el-* \ +- | none-* | np1-* | ns16k-* | ns32k-* \ +- | open8-* \ +- | or1k*-* \ +- | orion-* \ +- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ +- | pru-* \ +- | pyramid-* \ +- | riscv32-* | riscv64-* \ +- | rl78-* | romp-* | rs6000-* | rx-* \ +- | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ +- | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ +- | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ +- | sparclite-* \ +- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ +- | tahoe-* \ +- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ +- | tile*-* \ +- | tron-* \ +- | ubicom32-* \ +- | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ +- | vax-* \ +- | visium-* \ +- | wasm32-* \ +- | we32k-* \ +- | x86-* | x86_64-* | xc16x-* | xps100-* \ +- | xstormy16-* | xtensa*-* \ +- | ymp-* \ +- | z8k-* | z80-*) +- ;; +- # Recognize the basic CPU types without company name, with glob match. +- xtensa*) +- basic_machine=$basic_machine-unknown +- ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. +- 386bsd) +- basic_machine=i386-pc +- os=-bsd +- ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) +- basic_machine=m68000-att ++ cpu=m68000 ++ vendor=att + ;; + 3b*) +- basic_machine=we32k-att +- ;; +- a29khif) +- basic_machine=a29k-amd +- os=-udi +- ;; +- abacus) +- basic_machine=abacus-unknown +- ;; +- adobe68k) +- basic_machine=m68010-adobe +- os=-scout +- ;; +- alliant | fx80) +- basic_machine=fx80-alliant +- ;; +- altos | altos3068) +- basic_machine=m68k-altos +- ;; +- am29k) +- basic_machine=a29k-none +- os=-bsd +- ;; +- amd64) +- basic_machine=x86_64-pc +- ;; +- amd64-*) +- basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- ;; +- amdahl) +- basic_machine=580-amdahl +- os=-sysv +- ;; +- amiga | amiga-*) +- basic_machine=m68k-unknown +- ;; +- amigaos | amigados) +- basic_machine=m68k-unknown +- os=-amigaos +- ;; +- amigaunix | amix) +- basic_machine=m68k-unknown +- os=-sysv4 +- ;; +- apollo68) +- basic_machine=m68k-apollo +- os=-sysv +- ;; +- apollo68bsd) +- basic_machine=m68k-apollo +- os=-bsd +- ;; +- aros) +- basic_machine=i386-pc +- os=-aros +- ;; +- asmjs) +- basic_machine=asmjs-unknown +- ;; +- aux) +- basic_machine=m68k-apple +- os=-aux +- ;; +- balance) +- basic_machine=ns32k-sequent +- os=-dynix +- ;; +- blackfin) +- basic_machine=bfin-unknown +- os=-linux +- ;; +- blackfin-*) +- basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- os=-linux ++ cpu=we32k ++ vendor=att ;; -@@ -685,17 +686,17 @@ bluegene*) - cpu=powerpc - vendor=ibm -- os=cnk +- basic_machine=powerpc-ibm +- os=-cnk +- ;; +- c54x-*) +- basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- ;; +- c55x-*) +- basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- ;; +- c6x-*) +- basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- ;; +- c90) +- basic_machine=c90-cray +- os=-unicos +- ;; +- cegcc) +- basic_machine=arm-unknown +- os=-cegcc +- ;; +- convex-c1) +- basic_machine=c1-convex +- os=-bsd +- ;; +- convex-c2) +- basic_machine=c2-convex +- os=-bsd +- ;; +- convex-c32) +- basic_machine=c32-convex +- os=-bsd +- ;; +- convex-c34) +- basic_machine=c34-convex +- os=-bsd +- ;; +- convex-c38) +- basic_machine=c38-convex +- os=-bsd +- ;; +- cray | j90) +- basic_machine=j90-cray +- os=-unicos +- ;; +- craynv) +- basic_machine=craynv-cray +- os=-unicosmp +- ;; +- cr16 | cr16-*) +- basic_machine=cr16-unknown +- os=-elf +- ;; +- crds | unos) +- basic_machine=m68k-crds +- ;; +- crisv32 | crisv32-* | etraxfs*) +- basic_machine=crisv32-axis +- ;; +- cris | cris-* | etrax*) +- basic_machine=cris-axis +- ;; +- crx) +- basic_machine=crx-unknown +- os=-elf +- ;; +- da30 | da30-*) +- basic_machine=m68k-da30 +- ;; +- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) +- basic_machine=mips-dec ++ cpu=powerpc ++ vendor=ibm + basic_os=cnk ;; decsystem10* | dec10*) - cpu=pdp10 - vendor=dec -- os=tops10 +- basic_machine=pdp10-dec +- os=-tops10 ++ cpu=pdp10 ++ vendor=dec + basic_os=tops10 ;; decsystem20* | dec20*) - cpu=pdp10 - vendor=dec -- os=tops20 +- basic_machine=pdp10-dec +- os=-tops20 ++ cpu=pdp10 ++ vendor=dec + basic_os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) -@@ -705,7 +706,7 @@ +- basic_machine=m68k-motorola +- ;; +- delta88) +- basic_machine=m88k-motorola +- os=-sysv3 +- ;; +- dicos) +- basic_machine=i686-pc +- os=-dicos +- ;; +- djgpp) +- basic_machine=i586-pc +- os=-msdosdjgpp +- ;; +- dpx20 | dpx20-*) +- basic_machine=rs6000-bull +- os=-bosx ++ cpu=m68k ++ vendor=motorola + ;; dpx2*) - cpu=m68k - vendor=bull -- os=sysv3 +- basic_machine=m68k-bull +- os=-sysv3 +- ;; +- e500v[12]) +- basic_machine=powerpc-unknown +- os=$os"spe" +- ;; +- e500v[12]-*) +- basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- os=$os"spe" +- ;; +- ebmon29k) +- basic_machine=a29k-amd +- os=-ebmon +- ;; +- elxsi) +- basic_machine=elxsi-elxsi +- os=-bsd ++ cpu=m68k ++ vendor=bull + basic_os=sysv3 ;; encore | umax | mmax) - cpu=ns32k -@@ -714,7 +715,7 @@ - elxsi) - cpu=elxsi - vendor=elxsi -- os=${os:-bsd} +- basic_machine=ns32k-encore ++ cpu=ns32k ++ vendor=encore + ;; +- es1800 | OSE68k | ose68k | ose | OSE) +- basic_machine=m68k-ericsson +- os=-ose ++ elxsi) ++ cpu=elxsi ++ vendor=elxsi + basic_os=${basic_os:-bsd} ;; fx2800) - cpu=i860 -@@ -727,7 +728,7 @@ +- basic_machine=i860-alliant ++ cpu=i860 ++ vendor=alliant + ;; + genix) +- basic_machine=ns32k-ns +- ;; +- gmicro) +- basic_machine=tron-gmicro +- os=-sysv +- ;; +- go32) +- basic_machine=i386-pc +- os=-go32 ++ cpu=ns32k ++ vendor=ns + ;; h3050r* | hiux*) - cpu=hppa1.1 - vendor=hitachi -- os=hiuxwe2 +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 +- ;; +- h8300hms) +- basic_machine=h8300-hitachi +- os=-hms +- ;; +- h8300xray) +- basic_machine=h8300-hitachi +- os=-xray +- ;; +- h8500hms) +- basic_machine=h8500-hitachi +- os=-hms +- ;; +- harris) +- basic_machine=m88k-harris +- os=-sysv3 +- ;; +- hp300-*) +- basic_machine=m68k-hp +- ;; +- hp300bsd) +- basic_machine=m68k-hp +- os=-bsd +- ;; +- hp300hpux) +- basic_machine=m68k-hp +- os=-hpux ++ cpu=hppa1.1 ++ vendor=hitachi + basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - cpu=hppa1.0 -@@ -768,38 +769,38 @@ - vendor=hp +- basic_machine=hppa1.0-hp ++ cpu=hppa1.0 ++ vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) +- basic_machine=m68000-hp ++ cpu=m68000 ++ vendor=hp + ;; + hp9k3[2-9][0-9]) +- basic_machine=m68k-hp ++ cpu=m68k ++ vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) +- basic_machine=hppa1.0-hp ++ cpu=hppa1.0 ++ vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) +- basic_machine=hppa1.1-hp ++ cpu=hppa1.1 ++ vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) +- basic_machine=hppa1.0-hp +- ;; +- hppaosf) +- basic_machine=hppa1.1-hp +- os=-osf +- ;; +- hppro) +- basic_machine=hppa1.1-hp +- os=-proelf +- ;; +- i370-ibm* | ibm*) +- basic_machine=i370-ibm ++ cpu=hppa1.0 ++ vendor=hp ;; i*86v32) -- cpu=`echo "$1" | sed -e 's/86.*/86/'` +- basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` +- os=-sysv32 + cpu=$(echo "$1" | sed -e 's/86.*/86/') - vendor=pc -- os=sysv32 ++ vendor=pc + basic_os=sysv32 ;; i*86v4*) -- cpu=`echo "$1" | sed -e 's/86.*/86/'` +- basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` +- os=-sysv4 + cpu=$(echo "$1" | sed -e 's/86.*/86/') - vendor=pc -- os=sysv4 ++ vendor=pc + basic_os=sysv4 ;; i*86v) -- cpu=`echo "$1" | sed -e 's/86.*/86/'` +- basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` +- os=-sysv + cpu=$(echo "$1" | sed -e 's/86.*/86/') - vendor=pc -- os=sysv ++ vendor=pc + basic_os=sysv ;; i*86sol2) -- cpu=`echo "$1" | sed -e 's/86.*/86/'` +- basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` +- os=-solaris2 +- ;; +- i386mach) +- basic_machine=i386-mach +- os=-mach +- ;; +- vsta) +- basic_machine=i386-unknown +- os=-vsta + cpu=$(echo "$1" | sed -e 's/86.*/86/') - vendor=pc -- os=solaris2 ++ vendor=pc + basic_os=solaris2 - ;; - j90 | j90-cray) - cpu=j90 - vendor=cray -- os=${os:-unicos} ++ ;; ++ j90 | j90-cray) ++ cpu=j90 ++ vendor=cray + basic_os=${basic_os:-unicos} ;; iris | iris4d) - cpu=mips - vendor=sgi +- basic_machine=mips-sgi - case $os in +- -irix*) ++ cpu=mips ++ vendor=sgi + case $basic_os in - irix*) ++ irix*) ;; *) -- os=irix4 +- os=-irix4 + basic_os=irix4 ;; esac ;; -@@ -810,24 +811,26 @@ - *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) - cpu=m68k - vendor=atari -- os=mint +- isi68 | isi) +- basic_machine=m68k-isi +- os=-sysv +- ;; +- leon-*|leon[3-9]-*) +- basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` +- ;; +- m68knommu) +- basic_machine=m68k-unknown +- os=-linux +- ;; +- m68knommu-*) +- basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- magnum | m3230) +- basic_machine=mips-mips +- os=-sysv +- ;; +- merlin) +- basic_machine=ns32k-utek +- os=-sysv +- ;; +- microblaze*) +- basic_machine=microblaze-xilinx +- ;; +- mingw64) +- basic_machine=x86_64-pc +- os=-mingw64 +- ;; +- mingw32) +- basic_machine=i686-pc +- os=-mingw32 +- ;; +- mingw32ce) +- basic_machine=arm-unknown +- os=-mingw32ce +- ;; + miniframe) +- basic_machine=m68000-convergent +- ;; +- *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) +- basic_machine=m68k-atari +- os=-mint +- ;; +- mips3*-*) +- basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` ++ cpu=m68000 ++ vendor=convergent + ;; +- mips3*) +- basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown +- ;; +- monitor) +- basic_machine=m68k-rom68k +- os=-coff +- ;; +- morphos) +- basic_machine=powerpc-unknown +- os=-morphos +- ;; +- moxiebox) +- basic_machine=moxie-unknown +- os=-moxiebox +- ;; +- msdos) +- basic_machine=i386-pc +- os=-msdos +- ;; +- ms1-*) +- basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` +- ;; +- msys) +- basic_machine=i686-pc +- os=-msys +- ;; +- mvs) +- basic_machine=i370-ibm +- os=-mvs +- ;; +- nacl) +- basic_machine=le32-unknown +- os=-nacl +- ;; +- ncr3000) +- basic_machine=i486-ncr +- os=-sysv4 +- ;; +- netbsd386) +- basic_machine=i386-unknown +- os=-netbsd +- ;; +- netwinder) +- basic_machine=armv4l-rebel +- os=-linux +- ;; +- news | news700 | news800 | news900) +- basic_machine=m68k-sony +- os=-newsos +- ;; +- news1000) +- basic_machine=m68030-sony +- os=-newsos ++ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ cpu=m68k ++ vendor=atari + basic_os=mint ;; news-3600 | risc-news) - cpu=mips - vendor=sony -- os=newsos +- basic_machine=mips-sony +- os=-newsos +- ;; +- necv70) +- basic_machine=v70-nec +- os=-sysv ++ cpu=mips ++ vendor=sony + basic_os=newsos ;; next | m*-next) - cpu=m68k - vendor=next +- basic_machine=m68k-next - case $os in -- nextstep* ) +- -nextstep* ) ++ cpu=m68k ++ vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) ;; - ns2*) -- os=nextstep2 +- -ns2*) +- os=-nextstep2 ++ ns2*) + basic_os=nextstep2 ;; *) -- os=nextstep3 +- os=-nextstep3 + basic_os=nextstep3 ;; esac ;; -@@ -838,12 +841,12 @@ +- nh3000) +- basic_machine=m68k-harris +- os=-cxux +- ;; +- nh[45]000) +- basic_machine=m88k-harris +- os=-cxux +- ;; +- nindy960) +- basic_machine=i960-intel +- os=-nindy +- ;; +- mon960) +- basic_machine=i960-intel +- os=-mon960 +- ;; +- nonstopux) +- basic_machine=mips-compaq +- os=-nonstopux +- ;; + np1) +- basic_machine=np1-gould +- ;; +- neo-tandem) +- basic_machine=neo-tandem +- ;; +- nse-tandem) +- basic_machine=nse-tandem +- ;; +- nsr-tandem) +- basic_machine=nsr-tandem +- ;; +- nsv-tandem) +- basic_machine=nsv-tandem +- ;; +- nsx-tandem) +- basic_machine=nsx-tandem ++ cpu=np1 ++ vendor=gould + ;; op50n-* | op60c-*) - cpu=hppa1.1 - vendor=oki -- os=proelf +- basic_machine=hppa1.1-oki +- os=-proelf +- ;; +- openrisc | openrisc-*) +- basic_machine=or32-unknown +- ;; +- os400) +- basic_machine=powerpc-ibm +- os=-os400 +- ;; +- OSE68000 | ose68000) +- basic_machine=m68000-ericsson +- os=-ose +- ;; +- os68k) +- basic_machine=m68k-none +- os=-os68k ++ cpu=hppa1.1 ++ vendor=oki + basic_os=proelf ;; pa-hitachi) - cpu=hppa1.1 - vendor=hitachi -- os=hiuxwe2 +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 +- ;; +- paragon) +- basic_machine=i860-intel +- os=-osf +- ;; +- parisc) +- basic_machine=hppa-unknown +- os=-linux +- ;; +- parisc-*) +- basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` +- os=-linux ++ cpu=hppa1.1 ++ vendor=hitachi + basic_os=hiuxwe2 ;; pbd) - cpu=sparc -@@ -880,12 +883,12 @@ - sde) - cpu=mipsisa32 - vendor=sde -- os=${os:-elf} +- basic_machine=sparc-tti ++ cpu=sparc ++ vendor=tti + ;; + pbb) +- basic_machine=m68k-tti ++ cpu=m68k ++ vendor=tti + ;; +- pc532 | pc532-*) +- basic_machine=ns32k-pc532 ++ pc532) ++ cpu=ns32k ++ vendor=pc532 + ;; +- pc98) +- basic_machine=i386-pc ++ pn) ++ cpu=pn ++ vendor=gould + ;; +- pc98-*) +- basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` ++ power) ++ cpu=power ++ vendor=ibm + ;; +- pentium | p5 | k5 | k6 | nexgen | viac3) +- basic_machine=i586-pc ++ ps2) ++ cpu=i386 ++ vendor=ibm + ;; +- pentiumpro | p6 | 6x86 | athlon | athlon_*) +- basic_machine=i686-pc ++ rm[46]00) ++ cpu=mips ++ vendor=siemens + ;; +- pentiumii | pentium2 | pentiumiii | pentium3) +- basic_machine=i686-pc ++ rtpc | rtpc-*) ++ cpu=romp ++ vendor=ibm + ;; +- pentium4) +- basic_machine=i786-pc ++ sde) ++ cpu=mipsisa32 ++ vendor=sde + basic_os=${basic_os:-elf} ;; - simso-wrs) - cpu=sparclite - vendor=wrs -- os=vxworks +- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) +- basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` ++ simso-wrs) ++ cpu=sparclite ++ vendor=wrs + basic_os=vxworks ;; - tower | tower-32) - cpu=m68k -@@ -902,7 +905,7 @@ - w89k-*) - cpu=hppa1.1 - vendor=winbond -- os=proelf +- pentiumpro-* | p6-* | 6x86-* | athlon-*) +- basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ++ tower | tower-32) ++ cpu=m68k ++ vendor=ncr + ;; +- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) +- basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ++ vpp*|vx|vx-*) ++ cpu=f301 ++ vendor=fujitsu + ;; +- pentium4-*) +- basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` ++ w65) ++ cpu=w65 ++ vendor=wdc + ;; +- pn) +- basic_machine=pn-gould ++ w89k-*) ++ cpu=hppa1.1 ++ vendor=winbond + basic_os=proelf ;; - none) - cpu=none -@@ -914,11 +917,12 @@ - ;; - leon-*|leon[3-9]-*) - cpu=sparc -- vendor=`echo "$basic_machine" | sed 's/-.*//'` +- power) basic_machine=power-ibm ++ none) ++ cpu=none ++ vendor=none + ;; +- ppc | ppcbe) basic_machine=powerpc-unknown ++ leon|leon[3-9]) ++ cpu=sparc ++ vendor=$basic_machine + ;; +- ppc-* | ppcbe-*) +- basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` ++ leon-*|leon[3-9]-*) ++ cpu=sparc + vendor=$(echo "$basic_machine" | sed 's/-.*//') ;; - - *-*) -- IFS="-" read -r cpu vendor <&2 +- exit 1 + # Recognize the canonical CPU types that are allowed with any - # company name. - case $cpu in - 1750a | 580 \ -@@ -1161,13 +1164,14 @@ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ - | alphapca5[67] | alpha64pca5[67] \ - | am33_2.0 \ ++ # company name. ++ case $cpu in ++ 1750a | 580 \ ++ | a29k \ ++ | aarch64 | aarch64_be \ ++ | abacus \ ++ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ ++ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ ++ | alphapca5[67] | alpha64pca5[67] \ ++ | am33_2.0 \ + | amdgcn \ - | arc | arceb \ -- | arm | arm[lb]e | arme[lb] | armv* \ ++ | arc | arceb \ + | arm | arm[lb]e | arme[lb] | armv* \ - | avr | avr32 \ - | asmjs \ - | ba \ - | be32 | be64 \ -- | bfin | bs2000 \ ++ | avr | avr32 \ ++ | asmjs \ ++ | ba \ ++ | be32 | be64 \ + | bfin | bpf | bs2000 \ - | c[123]* | c30 | [cjt]90 | c4x \ - | c8051 | clipper | craynv | csky | cydra \ - | d10v | d30v | dlx | dsp16xx \ -@@ -1182,13 +1186,13 @@ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle \ -- | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \ -- | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \ ++ | c[123]* | c30 | [cjt]90 | c4x \ ++ | c8051 | clipper | craynv | csky | cydra \ ++ | d10v | d30v | dlx | dsp16xx \ ++ | e2k | elxsi | epiphany \ ++ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ ++ | h8300 | h8500 \ ++ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ ++ | hexagon \ ++ | i370 | i*86 | i860 | i960 | ia16 | ia64 \ ++ | ip2k | iq2000 \ ++ | k1om \ ++ | le32 | le64 \ ++ | lm32 \ ++ | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ - | m88110 | m88k | maxq | mb | mcore | mep | metag \ - | microblaze | microblazeel \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ -- | mips64 | mips64el \ ++ | m88110 | m88k | maxq | mb | mcore | mep | metag \ ++ | microblaze | microblazeel \ ++ | mips | mipsbe | mipseb | mipsel | mipsle \ ++ | mips16 \ + | mips64 | mips64eb | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ -@@ -1215,19 +1219,22 @@ - | nds32 | nds32le | nds32be \ - | nfp \ - | nios | nios2 | nios2eb | nios2el \ -- | none | np1 | ns16k | ns32k \ ++ | mips64octeon | mips64octeonel \ ++ | mips64orion | mips64orionel \ ++ | mips64r5900 | mips64r5900el \ ++ | mips64vr | mips64vrel \ ++ | mips64vr4100 | mips64vr4100el \ ++ | mips64vr4300 | mips64vr4300el \ ++ | mips64vr5000 | mips64vr5000el \ ++ | mips64vr5900 | mips64vr5900el \ ++ | mipsisa32 | mipsisa32el \ ++ | mipsisa32r2 | mipsisa32r2el \ ++ | mipsisa32r6 | mipsisa32r6el \ ++ | mipsisa64 | mipsisa64el \ ++ | mipsisa64r2 | mipsisa64r2el \ ++ | mipsisa64r6 | mipsisa64r6el \ ++ | mipsisa64sb1 | mipsisa64sb1el \ ++ | mipsisa64sr71k | mipsisa64sr71kel \ ++ | mipsr5900 | mipsr5900el \ ++ | mipstx39 | mipstx39el \ ++ | mmix \ ++ | mn10200 | mn10300 \ ++ | moxie \ ++ | mt \ ++ | msp430 \ ++ | nds32 | nds32le | nds32be \ ++ | nfp \ ++ | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k | nvptx \ - | open8 \ - | or1k* \ - | or32 \ - | orion \ ++ | open8 \ ++ | or1k* \ ++ | or32 \ ++ | orion \ + | picochip \ - | pdp10 | pdp11 | pj | pjl | pn | power \ - | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ - | pru \ - | pyramid \ - | riscv | riscv32 | riscv64 \ - | rl78 | romp | rs6000 | rx \ ++ | pdp10 | pdp11 | pj | pjl | pn | power \ ++ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ ++ | pru \ ++ | pyramid \ ++ | riscv | riscv32 | riscv64 \ ++ | rl78 | romp | rs6000 | rx \ + | s390 | s390x \ - | score \ -- | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ ++ | score \ + | sh | shl \ + | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ - | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ - | sparclite \ -@@ -1237,10 +1244,11 @@ - | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ - | tron \ - | ubicom32 \ -- | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ ++ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ ++ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ ++ | sparclite \ ++ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ ++ | spu \ ++ | tahoe \ ++ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ ++ | tron \ ++ | ubicom32 \ + | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ - | vax \ - | visium \ -- | wasm32 \ ++ | vax \ ++ | visium \ + | w65 \ + | wasm32 | wasm64 \ - | we32k \ - | x86 | x86_64 | xc16x | xgate | xps100 \ - | xstormy16 | xtensa* \ -@@ -1270,8 +1278,47 @@ ++ | we32k \ ++ | x86 | x86_64 | xc16x | xgate | xps100 \ ++ | xstormy16 | xtensa* \ ++ | ymp \ ++ | z8k | z80) ++ ;; ++ ++ *) ++ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 ++ exit 1 ++ ;; ++ esac + ;; + esac + + # Here we canonicalize certain aliases for manufacturers. +-case $basic_machine in +- *-digital*) +- basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` ++case $vendor in ++ digital*) ++ vendor=dec + ;; +- *-commodore*) +- basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` ++ commodore*) ++ vendor=cbm + ;; + *) + ;; +@@ -1334,203 +1278,213 @@ # Decode manufacturer-specific aliases for certain operating systems. --if [ x$os != x ] +-if [ x"$os" != x"" ] +if test x$basic_os != x then + @@ -1124,184 +2292,301 @@ aarch64/arm64/M1 can compile. case $os in # First match some system type aliases that might get confused # with valid system types. -@@ -1283,7 +1330,7 @@ - os=cnk - ;; - solaris1 | solaris1.*) +- # -solaris* is a basic system type, with this one exception. +- -auroraux) +- os=-auroraux ++ # solaris* is a basic system type, with this one exception. ++ auroraux) ++ os=auroraux + ;; +- -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` ++ bluegene*) ++ os=cnk + ;; +- -solaris) +- os=-solaris2 ++ solaris1 | solaris1.*) + os=$(echo $os | sed -e 's|solaris1|sunos4|') ;; - solaris) - os=solaris2 -@@ -1291,9 +1338,6 @@ - unixware*) - os=sysv4.2uw +- -unixware*) +- os=-sysv4.2uw ++ solaris) ++ os=solaris2 ;; -- gnu/linux*) +- -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` -- ;; - # es1800 is here to avoid being matched by es* (a different OS) - es1800*) - os=ose -@@ -1315,12 +1359,9 @@ - os=sco3.2v4 - ;; - sco3.2.[4-9]*) -- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` -- ;; -- sco3.2v[4-9]* | sco5v6*) -- # Don't forget version if it is 3.2v4 or newer. -+ os=$(echo $os | sed -e 's/sco3.2./sco3.2v/') ++ unixware*) ++ os=sysv4.2uw ;; -- scout) -+ sco*v* | scout) - # Don't match below - ;; - sco*) -@@ -1329,78 +1370,26 @@ - psos*) - os=psos + # es1800 is here to avoid being matched by es* (a different OS) +- -es1800*) +- os=-ose ++ es1800*) ++ os=ose ;; - # Now accept the basic system types. - # The portable systems comes first. - # Each alternative MUST end in a * to match a version number. -- # sysv* is not here because it comes later, after sysvr4. -- gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ -- | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ -- | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ -- | sym* | kopensolaris* | plan9* \ -- | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ -- | aos* | aros* | cloudabi* | sortix* \ -- | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ -- | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ -- | knetbsd* | mirbsd* | netbsd* \ -- | bitrig* | openbsd* | solidbsd* | libertybsd* \ -- | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ -- | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ -- | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ -- | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ -- | chorusrdb* | cegcc* | glidix* \ -- | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ -- | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ -- | linux-newlib* | linux-musl* | linux-uclibc* \ -- | uxpv* | beos* | mpeix* | udk* | moxiebox* \ -- | interix* | uwin* | mks* | rhapsody* | darwin* \ -- | openstep* | oskit* | conix* | pw32* | nonstopux* \ -- | storm-chaos* | tops10* | tenex* | tops20* | its* \ -- | os2* | vos* | palmos* | uclinux* | nucleus* \ -- | morphos* | superux* | rtmk* | windiss* \ -- | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ -- | skyos* | haiku* | rdos* | toppers* | drops* | es* \ -- | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ -- | midnightbsd*) +- # -sysv* is not here because it comes later, after sysvr4. +- -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ +- | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ +- | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ +- | -sym* | -kopensolaris* | -plan9* \ +- | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ +- | -aos* | -aros* | -cloudabi* | -sortix* \ +- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ +- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ +- | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ +- | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ +- | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ +- | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ +- | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ +- | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ +- | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ +- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ +- | -linux-newlib* | -linux-musl* | -linux-uclibc* \ +- | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ +- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ +- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ +- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ +- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ +- | -morphos* | -superux* | -rtmk* | -windiss* \ +- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ +- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ +- | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ +- | -midnightbsd*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - qnx*) -- case $cpu in -- x86 | i*86) +- -qnx*) +- case $basic_machine in +- x86-* | i*86-*) - ;; - *) -- os=nto-$os +- os=-nto$os - ;; - esac -+ os=qnx ++ # Some version numbers need modification ++ chorusos*) ++ os=chorusos ;; - hiux*) - os=hiuxwe2 +- -nto-qnx*) ++ isc) ++ os=isc2.2 ;; -- nto-qnx*) -- ;; -- nto*) +- -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` -- ;; -- sim | xray | os68k* | v88r* \ -- | windows* | osx | abug | netware* | os9* \ -- | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) -- ;; -- linux-dietlibc) -- os=linux-dietlibc -- ;; -- linux*) ++ sco6) ++ os=sco5v6 + ;; +- -sim | -xray | -os68k* | -v88r* \ +- | -windows* | -osx | -abug | -netware* | -os9* \ +- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ++ sco5) ++ os=sco3.2v5 + ;; +- -mac*) +- os=`echo "$os" | sed -e 's|mac|macos|'` ++ sco4) ++ os=sco3.2v4 + ;; +- -linux-dietlibc) +- os=-linux-dietlibc ++ sco3.2.[4-9]*) ++ os=$(echo $os | sed -e 's/sco3.2./sco3.2v/') + ;; +- -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` -- ;; - lynx*178) - os=lynxos178 ++ sco*v* | scout) ++ # Don't match below + ;; +- -sunos5*) +- os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ++ sco*) ++ os=sco3.2v2 + ;; +- -sunos6*) +- os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ++ psos*) ++ os=psos ;; - lynx*5) - os=lynxos5 +- -opened*) +- os=-openedition ++ qnx*) ++ os=qnx + ;; +- -os400*) +- os=-os400 ++ hiux*) ++ os=hiuxwe2 + ;; +- -wince*) +- os=-wince ++ lynx*178) ++ os=lynxos178 + ;; +- -utek*) +- os=-bsd ++ lynx*5) ++ os=lynxos5 ;; +- -dynix*) +- os=-bsd + lynxos*) + # don't get caught up in next wildcard -+ ;; - lynx*) - os=lynxos ;; -- mac*) -- os=`echo "$os" | sed -e 's|mac|macos|'` +- -acis*) +- os=-aos ++ lynx*) ++ os=lynxos + ;; +- -atheos*) +- os=-atheos + mac[0-9]*) + os=$(echo "$os" | sed -e 's|mac|macos|') ;; - opened*) - os=openedition -@@ -1409,10 +1398,10 @@ - os=os400 +- -syllable*) +- os=-syllable ++ opened*) ++ os=openedition ;; - sunos5*) -- os=`echo "$os" | sed -e 's|sunos5|solaris2|'` +- -386bsd) +- os=-bsd ++ os400*) ++ os=os400 + ;; +- -ctix* | -uts*) +- os=-sysv ++ sunos5*) + os=$(echo "$os" | sed -e 's|sunos5|solaris2|') ;; - sunos6*) -- os=`echo "$os" | sed -e 's|sunos6|solaris3|'` +- -nova*) +- os=-rtmk-nova ++ sunos6*) + os=$(echo "$os" | sed -e 's|sunos6|solaris3|') ;; - wince*) - os=wince -@@ -1444,12 +1433,9 @@ - ns2) - os=nextstep2 +- -ns2) +- os=-nextstep2 ++ wince*) ++ os=wince ;; -- nsk*) -- os=nsk -- ;; - # Preserve the version number of sinix5. - sinix5.*) +- -nsk*) +- os=-nsk ++ utek*) ++ os=bsd + ;; +- # Preserve the version number of sinix5. +- -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` ++ dynix*) ++ os=bsd ++ ;; ++ acis*) ++ os=aos ++ ;; ++ atheos*) ++ os=atheos ++ ;; ++ syllable*) ++ os=syllable ++ ;; ++ 386bsd) ++ os=bsd ++ ;; ++ ctix* | uts*) ++ os=sysv + ;; +- -sinix*) +- os=-sysv4 ++ nova*) ++ os=rtmk-nova + ;; +- -tpf*) +- os=-tpf ++ ns2) ++ os=nextstep2 + ;; +- -triton*) +- os=-sysv3 ++ # Preserve the version number of sinix5. ++ sinix5.*) + os=$(echo $os | sed -e 's|sinix|sysv|') ;; - sinix*) - os=sysv4 -@@ -1472,18 +1458,12 @@ - sysvr4) - os=sysv4 - ;; -- # This must come after sysvr4. -- sysv*) -- ;; - ose*) - os=ose - ;; - *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) - os=mint - ;; -- zvmoe) -- os=zvmoe -- ;; - dicos*) - os=dicos - ;; -@@ -1500,19 +1480,11 @@ +- -oss*) +- os=-sysv3 ++ sinix*) ++ os=sysv4 + ;; +- -svr4*) +- os=-sysv4 ++ tpf*) ++ os=tpf + ;; +- -svr3) +- os=-sysv3 ++ triton*) ++ os=sysv3 + ;; +- -sysvr4) +- os=-sysv4 ++ oss*) ++ os=sysv3 + ;; +- # This must come after -sysvr4. +- -sysv*) ++ svr4*) ++ os=sysv4 + ;; +- -ose*) +- os=-ose ++ svr3) ++ os=sysv3 + ;; +- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) +- os=-mint ++ sysvr4) ++ os=sysv4 + ;; +- -zvmoe) +- os=-zvmoe ++ ose*) ++ os=ose + ;; +- -dicos*) +- os=-dicos ++ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) ++ os=mint + ;; +- -pikeos*) ++ dicos*) ++ os=dicos ++ ;; ++ pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. +- case $basic_machine in ++ case $cpu in + arm*) +- os=-eabi ++ os=eabi + ;; + *) +- os=-elf ++ os=elf ;; esac ;; -- nacl*) +- -nacl*) - ;; -- ios) -- ;; -- none) +- -ios) - ;; -- *-eabi) +- -none) - ;; *) +- # Get rid of the `-' at the beginning of $os. +- os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 - exit 1 + # No normalization, but not necessarily accepted, that comes below. @@ -1311,26 +2596,244 @@ aarch64/arm64/M1 can compile. else # Here we handle the default operating systems that come with various machines. -@@ -1525,6 +1497,7 @@ +@@ -1543,258 +1497,356 @@ # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. +-case $basic_machine in +kernel= - case $cpu-$vendor in ++case $cpu-$vendor in score-*) - os=elf -@@ -1536,7 +1509,8 @@ - os=riscix1.2 +- os=-elf ++ os=elf + ;; + spu-*) +- os=-elf ++ os=elf + ;; + *-acorn) +- os=-riscix1.2 ++ os=riscix1.2 ;; arm*-rebel) -- os=linux +- os=-linux + kernel=linux + os=gnu ;; arm*-semi) - os=aout -@@ -1702,84 +1676,173 @@ - os=none +- os=-aout ++ os=aout + ;; + c4x-* | tic4x-*) +- os=-coff ++ os=coff + ;; + c8051-*) +- os=-elf ++ os=elf ++ ;; ++ clipper-intergraph) ++ os=clix + ;; + hexagon-*) +- os=-elf ++ os=elf + ;; + tic54x-*) +- os=-coff ++ os=coff + ;; + tic55x-*) +- os=-coff ++ os=coff + ;; + tic6x-*) +- os=-coff ++ os=coff + ;; + # This must come before the *-dec entry. + pdp10-*) +- os=-tops20 ++ os=tops20 + ;; + pdp11-*) +- os=-none ++ os=none + ;; + *-dec | vax-*) +- os=-ultrix4.2 ++ os=ultrix4.2 + ;; + m68*-apollo) +- os=-domain ++ os=domain + ;; + i386-sun) +- os=-sunos4.0.2 ++ os=sunos4.0.2 + ;; + m68000-sun) +- os=-sunos3 ++ os=sunos3 + ;; + m68*-cisco) +- os=-aout ++ os=aout + ;; + mep-*) +- os=-elf ++ os=elf + ;; + mips*-cisco) +- os=-elf ++ os=elf + ;; + mips*-*) +- os=-elf ++ os=elf + ;; + or32-*) +- os=-coff ++ os=coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. +- os=-sysv3 ++ os=sysv3 + ;; + sparc-* | *-sun) +- os=-sunos4.1.1 ++ os=sunos4.1.1 + ;; + pru-*) +- os=-elf ++ os=elf + ;; + *-be) +- os=-beos ++ os=beos + ;; + *-ibm) +- os=-aix ++ os=aix + ;; + *-knuth) +- os=-mmixware ++ os=mmixware + ;; + *-wec) +- os=-proelf ++ os=proelf + ;; + *-winbond) +- os=-proelf ++ os=proelf + ;; + *-oki) +- os=-proelf ++ os=proelf + ;; + *-hp) +- os=-hpux ++ os=hpux + ;; + *-hitachi) +- os=-hiux ++ os=hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) +- os=-sysv ++ os=sysv + ;; + *-cbm) +- os=-amigaos ++ os=amigaos + ;; + *-dg) +- os=-dgux ++ os=dgux + ;; + *-dolphin) +- os=-sysv3 ++ os=sysv3 + ;; + m68k-ccur) +- os=-rtu ++ os=rtu + ;; + m88k-omron*) +- os=-luna ++ os=luna + ;; + *-next) +- os=-nextstep ++ os=nextstep + ;; + *-sequent) +- os=-ptx ++ os=ptx + ;; + *-crds) +- os=-unos ++ os=unos + ;; + *-ns) +- os=-genix ++ os=genix + ;; + i370-*) +- os=-mvs ++ os=mvs + ;; + *-gould) +- os=-sysv ++ os=sysv + ;; + *-highlevel) +- os=-bsd ++ os=bsd + ;; + *-encore) +- os=-bsd ++ os=bsd + ;; + *-sgi) +- os=-irix ++ os=irix + ;; + *-siemens) +- os=-sysv4 ++ os=sysv4 + ;; + *-masscomp) +- os=-rtu ++ os=rtu + ;; + f30[01]-fujitsu | f700-fujitsu) +- os=-uxpv ++ os=uxpv + ;; + *-rom68k) +- os=-coff ++ os=coff + ;; + *-*bug) +- os=-coff ++ os=coff + ;; + *-apple) +- os=-macos ++ os=macos + ;; + *-atari*) +- os=-mint ++ os=mint ++ ;; ++ *-wrs) ++ os=vxworks + ;; + *) +- os=-none ++ os=none ;; esac + @@ -1423,1089 +2926,115 @@ aarch64/arm64/M1 can compile. + # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. - case $vendor in - unknown) +-vendor=unknown +-case $basic_machine in +- *-unknown) - case $os in -- riscix*) +- -riscix*) ++case $vendor in ++ unknown) + case $cpu-$os in + *-riscix*) vendor=acorn ;; -- sunos*) +- -sunos*) + *-sunos*) vendor=sun ;; -- cnk*|-aix*) +- -cnk*|-aix*) + *-cnk* | *-aix*) vendor=ibm ;; -- beos*) +- -beos*) + *-beos*) vendor=be ;; -- hpux*) +- -hpux*) + *-hpux*) vendor=hp ;; -- mpeix*) +- -mpeix*) + *-mpeix*) vendor=hp ;; -- hiux*) +- -hiux*) + *-hiux*) vendor=hitachi ;; -- unos*) +- -unos*) + *-unos*) vendor=crds ;; -- dgux*) +- -dgux*) + *-dgux*) vendor=dg ;; -- luna*) +- -luna*) + *-luna*) vendor=omron ;; -- genix*) +- -genix*) + *-genix*) vendor=ns ;; -- clix*) +- -mvs* | -opened*) + *-clix*) - vendor=intergraph - ;; -- mvs* | opened*) ++ vendor=intergraph ++ ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) vendor=ibm ;; -- os400*) +- -os400*) + s390-* | s390x-*) vendor=ibm ;; -- ptx*) +- -ptx*) + *-ptx*) vendor=sequent ;; -- tpf*) +- -tpf*) + *-tpf*) vendor=ibm ;; -- vxsim* | vxworks* | windiss*) +- -vxsim* | -vxworks* | -windiss*) + *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; -- aux*) +- -aux*) + *-aux*) vendor=apple ;; -- hms*) +- -hms*) + *-hms*) vendor=hitachi ;; -- mpw* | macos*) +- -mpw* | -macos*) + *-mpw* | *-macos*) vendor=apple ;; -- *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) +- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; -- vos*) +- -vos*) + *-vos*) vendor=stratus ;; esac +- basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac --echo "$cpu-$vendor-$os" +-echo "$basic_machine$os" +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: ---- a/config.guess -+++ b/config.guess -@@ -1,8 +1,8 @@ - #! /bin/sh - # Attempt to guess a canonical system name. --# Copyright 1992-2018 Free Software Foundation, Inc. -+# Copyright 1992-2020 Free Software Foundation, Inc. - --timestamp='2018-08-29' -+timestamp='2020-11-07' - - # This file is free software; you can redistribute it and/or modify it - # under the terms of the GNU General Public License as published by -@@ -32,7 +32,7 @@ - # Please send patches to . - - --me=`echo "$0" | sed -e 's,.*/,,'` -+me=$(echo "$0" | sed -e 's,.*/,,') - - usage="\ - Usage: $0 [OPTION] -@@ -50,7 +50,7 @@ - GNU config.guess ($timestamp) - - Originally written by Per Bothner. --Copyright 1992-2018 Free Software Foundation, Inc. -+Copyright 1992-2020 Free Software Foundation, Inc. - - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." -@@ -96,13 +96,14 @@ - - tmp= - # shellcheck disable=SC2172 --trap 'test -z "$tmp" || rm -fr "$tmp"' 1 2 13 15 --trap 'exitcode=$?; test -z "$tmp" || rm -fr "$tmp"; exit $exitcode' 0 -+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 - - set_cc_for_build() { -+ # prevent multiple calls if $tmp is already set -+ test "$tmp" && return 0 - : "${TMPDIR=/tmp}" - # shellcheck disable=SC2039 -- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || -+ { tmp=$( (umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null) && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } -@@ -130,10 +131,10 @@ - PATH=$PATH:/.attbin ; export PATH - fi - --UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown --UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown --UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown --UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -+UNAME_MACHINE=$( (uname -m) 2>/dev/null) || UNAME_MACHINE=unknown -+UNAME_RELEASE=$( (uname -r) 2>/dev/null) || UNAME_RELEASE=unknown -+UNAME_SYSTEM=$( (uname -s) 2>/dev/null) || UNAME_SYSTEM=unknown -+UNAME_VERSION=$( (uname -v) 2>/dev/null) || UNAME_VERSION=unknown - - case "$UNAME_SYSTEM" in - Linux|GNU|GNU/*) -@@ -149,17 +150,15 @@ - #elif defined(__dietlibc__) - LIBC=dietlibc - #else -+ #include -+ #ifdef __DEFINED_va_list -+ LIBC=musl -+ #else - LIBC=gnu - #endif -+ #endif - EOF -- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" -- -- # If ldd exists, use it to detect musl libc. -- if command -v ldd >/dev/null && \ -- ldd --version 2>&1 | grep -q ^musl -- then -- LIBC=musl -- fi -+ eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g')" - ;; - esac - -@@ -178,19 +177,20 @@ - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" -- UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ -+ UNAME_MACHINE_ARCH=$( (uname -p 2>/dev/null || \ - "/sbin/$sysctl" 2>/dev/null || \ - "/usr/sbin/$sysctl" 2>/dev/null || \ -- echo unknown)` -+ echo unknown)) - case "$UNAME_MACHINE_ARCH" in -+ aarch64eb) machine=aarch64_be-unknown ;; - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - earmv*) -- arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` -- endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` -+ arch=$(echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,') -+ endian=$(echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p') - machine="${arch}${endian}"-unknown - ;; - *) machine="$UNAME_MACHINE_ARCH"-unknown ;; -@@ -221,7 +221,7 @@ - case "$UNAME_MACHINE_ARCH" in - earm*) - expr='s/^earmv[0-9]/-eabi/;s/eb$//' -- abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` -+ abi=$(echo "$UNAME_MACHINE_ARCH" | sed -e "$expr") - ;; - esac - # The OS release -@@ -234,7 +234,7 @@ - release='-gnu' - ;; - *) -- release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` -+ release=$(echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2) - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: -@@ -243,15 +243,15 @@ - echo "$machine-${os}${release}${abi-}" - exit ;; - *:Bitrig:*:*) -- UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` -+ UNAME_MACHINE_ARCH=$(arch | sed 's/Bitrig.//') - echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" - exit ;; - *:OpenBSD:*:*) -- UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` -+ UNAME_MACHINE_ARCH=$(arch | sed 's/OpenBSD.//') - echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" - exit ;; - *:LibertyBSD:*:*) -- UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` -+ UNAME_MACHINE_ARCH=$(arch | sed 's/^.*BSD\.//') - echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" - exit ;; - *:MidnightBSD:*:*) -@@ -263,6 +263,9 @@ - *:SolidBSD:*:*) - echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" - exit ;; -+ *:OS108:*:*) -+ echo "$UNAME_MACHINE"-unknown-os108_"$UNAME_RELEASE" -+ exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd"$UNAME_RELEASE" - exit ;; -@@ -272,26 +275,29 @@ - *:Sortix:*:*) - echo "$UNAME_MACHINE"-unknown-sortix - exit ;; -+ *:Twizzler:*:*) -+ echo "$UNAME_MACHINE"-unknown-twizzler -+ exit ;; - *:Redox:*:*) - echo "$UNAME_MACHINE"-unknown-redox - exit ;; - mips:OSF1:*.*) -- echo mips-dec-osf1 -- exit ;; -+ echo mips-dec-osf1 -+ exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) -- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` -+ UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $3}') - ;; - *5.*) -- UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` -+ UNAME_RELEASE=$(/usr/sbin/sizer -v | awk '{print $4}') - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. -- ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` -+ ALPHA_CPU_TYPE=$(/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1) - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE=alpha ;; -@@ -329,7 +335,7 @@ - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. -- echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" -+ echo "$UNAME_MACHINE"-dec-osf"$(echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz)" - # Reset EXIT trap before exiting to avoid spurious non-zero exit code. - exitcode=$? - trap '' 0 -@@ -363,7 +369,7 @@ - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. -- if test "`(/bin/universe) 2>/dev/null`" = att ; then -+ if test "$( (/bin/universe) 2>/dev/null)" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd -@@ -376,54 +382,59 @@ - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) -- case `/usr/bin/uname -p` in -+ case $(/usr/bin/uname -p) in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) -- echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" -+ echo "$UNAME_MACHINE"-ibm-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" - exit ;; - sun4H:SunOS:5.*:*) -- echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" -+ echo sparc-hal-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) -- echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" -+ echo sparc-sun-solaris2"$(echo "$UNAME_RELEASE" | sed -e 's/[^.]*//')" - exit ;; - i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux"$UNAME_RELEASE" - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) -- UNAME_REL="`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" -- case `isainfo -b` in -- 32) -- echo i386-pc-solaris2"$UNAME_REL" -- ;; -- 64) -- echo x86_64-pc-solaris2"$UNAME_REL" -- ;; -- esac -+ set_cc_for_build -+ SUN_ARCH=i386 -+ # If there is a compiler, see if it is configured for 64-bit objects. -+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. -+ # This test works for both compilers. -+ if 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 -+ echo "$SUN_ARCH"-pc-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. -- echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" -+ echo sparc-sun-solaris3"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" - exit ;; - sun4*:SunOS:*:*) -- case "`/usr/bin/arch -k`" in -+ case "$(/usr/bin/arch -k)" in - Series*|S4*) -- UNAME_RELEASE=`uname -v` -+ UNAME_RELEASE=$(uname -v) - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. -- echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" -+ echo sparc-sun-sunos"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/')" - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos"$UNAME_RELEASE" - exit ;; - sun*:*:4.2BSD:*) -- UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` -+ UNAME_RELEASE=$( (sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null) - test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 -- case "`/bin/arch`" in -+ case "$(/bin/arch)" in - sun3) - echo m68k-sun-sunos"$UNAME_RELEASE" - ;; -@@ -503,8 +514,8 @@ - } - EOF - $CC_FOR_BUILD -o "$dummy" "$dummy.c" && -- dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && -- SYSTEM_NAME=`"$dummy" "$dummyarg"` && -+ dummyarg=$(echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p') && -+ SYSTEM_NAME=$("$dummy" "$dummyarg") && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos"$UNAME_RELEASE" - exit ;; -@@ -531,11 +542,11 @@ - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures -- UNAME_PROCESSOR=`/usr/bin/uname -p` -- if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] -+ UNAME_PROCESSOR=$(/usr/bin/uname -p) -+ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 - then -- if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ -- [ "$TARGET_BINARY_INTERFACE"x = x ] -+ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ -+ test "$TARGET_BINARY_INTERFACE"x = x - then - echo m88k-dg-dgux"$UNAME_RELEASE" - else -@@ -559,17 +570,17 @@ - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) -- echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" -+ echo mips-sgi-irix"$(echo "$UNAME_RELEASE"|sed -e 's/-/_/g')" - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id -- exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' -+ exit ;; # Note that: echo "'$(uname -s)'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) -- if [ -x /usr/bin/oslevel ] ; then -- IBM_REV=`/usr/bin/oslevel` -+ if test -x /usr/bin/oslevel ; then -+ IBM_REV=$(/usr/bin/oslevel) - else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" - fi -@@ -589,7 +600,7 @@ - exit(0); - } - EOF -- if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` -+ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") - then - echo "$SYSTEM_NAME" - else -@@ -602,15 +613,15 @@ - fi - exit ;; - *:AIX:*:[4567]) -- IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` -+ IBM_CPU_ID=$(/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }') - if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi -- if [ -x /usr/bin/lslpp ] ; then -- IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | -- awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` -+ if test -x /usr/bin/lslpp ; then -+ IBM_REV=$(/usr/bin/lslpp -Lqc bos.rte.libc | -+ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/) - else - IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" - fi -@@ -638,14 +649,14 @@ - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) -- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` -+ HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') - case "$UNAME_MACHINE" in - 9000/31?) HP_ARCH=m68000 ;; - 9000/[34]??) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) -- if [ -x /usr/bin/getconf ]; then -- sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` -- sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` -+ if test -x /usr/bin/getconf; then -+ sc_cpu_version=$(/usr/bin/getconf SC_CPU_VERSION 2>/dev/null) -+ sc_kernel_bits=$(/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null) - case "$sc_cpu_version" in - 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 - 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 -@@ -657,7 +668,7 @@ - esac ;; - esac - fi -- if [ "$HP_ARCH" = "" ]; then -+ if test "$HP_ARCH" = ""; then - set_cc_for_build - sed 's/^ //' << EOF > "$dummy.c" - -@@ -692,11 +703,11 @@ - exit (0); - } - EOF -- (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` -+ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=$("$dummy") - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac -- if [ "$HP_ARCH" = hppa2.0w ] -+ if test "$HP_ARCH" = hppa2.0w - then - set_cc_for_build - -@@ -720,7 +731,7 @@ - echo "$HP_ARCH"-hp-hpux"$HPUX_REV" - exit ;; - ia64:HP-UX:*:*) -- HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` -+ HPUX_REV=$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//') - echo ia64-hp-hpux"$HPUX_REV" - exit ;; - 3050*:HI-UX:*:*) -@@ -750,7 +761,7 @@ - exit (0); - } - EOF -- $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && -+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=$("$dummy") && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; -@@ -770,7 +781,7 @@ - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) -- if [ -x /usr/sbin/sysversion ] ; then -+ if test -x /usr/sbin/sysversion ; then - echo "$UNAME_MACHINE"-unknown-osf1mk - else - echo "$UNAME_MACHINE"-unknown-osf1 -@@ -819,14 +830,14 @@ - echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) -- FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` -- FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` -- FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` -+ FUJITSU_PROC=$(uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz) -+ FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') -+ FUJITSU_REL=$(echo "$UNAME_RELEASE" | sed -e 's/ /_/') - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) -- FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` -- FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` -+ FUJITSU_SYS=$(uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///') -+ FUJITSU_REL=$(echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/') - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) -@@ -839,25 +850,25 @@ - echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" - exit ;; - arm:FreeBSD:*:*) -- UNAME_PROCESSOR=`uname -p` -+ UNAME_PROCESSOR=$(uname -p) - set_cc_for_build - if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_PCS_VFP - then -- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi -+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabi - else -- echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf -+ echo "${UNAME_PROCESSOR}"-unknown-freebsd"$(echo ${UNAME_RELEASE}|sed -e 's/[-(].*//')"-gnueabihf - fi - exit ;; - *:FreeBSD:*:*) -- UNAME_PROCESSOR=`/usr/bin/uname -p` -+ UNAME_PROCESSOR=$(/usr/bin/uname -p) - case "$UNAME_PROCESSOR" in - amd64) - UNAME_PROCESSOR=x86_64 ;; - i386) - UNAME_PROCESSOR=i586 ;; - esac -- echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" -+ echo "$UNAME_PROCESSOR"-unknown-freebsd"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" - exit ;; - i*:CYGWIN*:*) - echo "$UNAME_MACHINE"-pc-cygwin -@@ -890,18 +901,18 @@ - echo "$UNAME_MACHINE"-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) -- echo x86_64-unknown-cygwin -+ echo x86_64-pc-cygwin - exit ;; - prep*:SunOS:5.*:*) -- echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" -+ echo powerpcle-unknown-solaris2"$(echo "$UNAME_RELEASE"|sed -e 's/[^.]*//')" - exit ;; - *:GNU:*:*) - # the GNU system -- echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" -+ echo "$(echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,')-unknown-$LIBC$(echo "$UNAME_RELEASE"|sed -e 's,/.*$,,')" - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland -- echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" -+ echo "$UNAME_MACHINE-unknown-$(echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]")$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')-$LIBC" - exit ;; - *:Minix:*:*) - echo "$UNAME_MACHINE"-unknown-minix -@@ -914,7 +925,7 @@ - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" - exit ;; - alpha:Linux:*:*) -- case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in -+ case $(sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null) in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; -@@ -981,22 +992,50 @@ - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - set_cc_for_build -+ IS_GLIBC=0 -+ test x"${LIBC}" = xgnu && IS_GLIBC=1 - sed 's/^ //' << EOF > "$dummy.c" - #undef CPU -- #undef ${UNAME_MACHINE} -- #undef ${UNAME_MACHINE}el -+ #undef mips -+ #undef mipsel -+ #undef mips64 -+ #undef mips64el -+ #if ${IS_GLIBC} && defined(_ABI64) -+ LIBCABI=gnuabi64 -+ #else -+ #if ${IS_GLIBC} && defined(_ABIN32) -+ LIBCABI=gnuabin32 -+ #else -+ LIBCABI=${LIBC} -+ #endif -+ #endif -+ -+ #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 -+ CPU=mipsisa64r6 -+ #else -+ #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 -+ CPU=mipsisa32r6 -+ #else -+ #if defined(__mips64) -+ CPU=mips64 -+ #else -+ CPU=mips -+ #endif -+ #endif -+ #endif -+ - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) -- CPU=${UNAME_MACHINE}el -+ MIPS_ENDIAN=el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) -- CPU=${UNAME_MACHINE} -+ MIPS_ENDIAN= - #else -- CPU= -+ MIPS_ENDIAN= - #endif - #endif - EOF -- eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" -- test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } -+ eval "$($CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI')" -+ test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } - ;; - mips64el:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" -@@ -1015,7 +1054,7 @@ - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level -- case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in -+ case $(grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2) in - PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; - PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; - *) echo hppa-unknown-linux-"$LIBC" ;; -@@ -1055,7 +1094,17 @@ - echo "$UNAME_MACHINE"-dec-linux-"$LIBC" - exit ;; - x86_64:Linux:*:*) -- echo "$UNAME_MACHINE"-pc-linux-"$LIBC" -+ set_cc_for_build -+ LIBCABI=$LIBC -+ if test "$CC_FOR_BUILD" != no_compiler_found; then -+ if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \ -+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_X32 >/dev/null -+ then -+ LIBCABI="$LIBC"x32 -+ fi -+ fi -+ echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI" - exit ;; - xtensa*:Linux:*:*) - echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" -@@ -1095,7 +1144,7 @@ - echo "$UNAME_MACHINE"-pc-msdosdjgpp - exit ;; - i*86:*:4.*:*) -- UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` -+ UNAME_REL=$(echo "$UNAME_RELEASE" | sed 's/\/MP$//') - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" - else -@@ -1104,19 +1153,19 @@ - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. -- case `/bin/uname -X | grep "^Machine"` in -+ case $(/bin/uname -X | grep "^Machine") in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac -- echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" -+ echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}" - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then -- UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then -- UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` -+ UNAME_REL=$( (/bin/uname -X|grep Release|sed -e 's/.*= //')) - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 -@@ -1166,7 +1215,7 @@ - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ -- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -@@ -1177,7 +1226,7 @@ - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ -- && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` -+ && OS_REL=.$(sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ -@@ -1210,7 +1259,7 @@ - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then -- UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ UNAME_MACHINE=$( (uname -p) 2>/dev/null) - echo "$UNAME_MACHINE"-sni-sysv4 - else - echo ns32k-sni-sysv -@@ -1244,7 +1293,7 @@ - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) -- if [ -d /usr/nec ]; then -+ if test -d /usr/nec; then - echo mips-nec-sysv"$UNAME_RELEASE" - else - echo mips-unknown-sysv"$UNAME_RELEASE" -@@ -1292,44 +1341,48 @@ - *:Rhapsody:*:*) - echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" - exit ;; -+ arm64:Darwin:*:*) -+ echo aarch64-apple-darwin"$UNAME_RELEASE" -+ exit ;; - *:Darwin:*:*) -- UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown -- set_cc_for_build -- if test "$UNAME_PROCESSOR" = unknown ; then -- UNAME_PROCESSOR=powerpc -+ UNAME_PROCESSOR=$(uname -p) -+ case $UNAME_PROCESSOR in -+ unknown) UNAME_PROCESSOR=powerpc ;; -+ esac -+ if command -v xcode-select > /dev/null 2> /dev/null && \ -+ ! xcode-select --print-path > /dev/null 2> /dev/null ; then -+ # Avoid executing cc if there is no toolchain installed as -+ # cc will be a stub that puts up a graphical alert -+ # prompting the user to install developer tools. -+ CC_FOR_BUILD=no_compiler_found -+ else -+ set_cc_for_build - fi -- if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then -- if [ "$CC_FOR_BUILD" != no_compiler_found ]; then -- if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ -- grep IS_64BIT_ARCH >/dev/null -- then -- case $UNAME_PROCESSOR in -- i386) UNAME_PROCESSOR=x86_64 ;; -- powerpc) UNAME_PROCESSOR=powerpc64 ;; -- esac -- fi -- # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc -- if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ -- (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ -- grep IS_PPC >/dev/null -- then -- UNAME_PROCESSOR=powerpc -- fi -+ if test "$CC_FOR_BUILD" != no_compiler_found; then -+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ -+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_64BIT_ARCH >/dev/null -+ then -+ case $UNAME_PROCESSOR in -+ i386) UNAME_PROCESSOR=x86_64 ;; -+ powerpc) UNAME_PROCESSOR=powerpc64 ;; -+ esac -+ fi -+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc -+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ -+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ -+ grep IS_PPC >/dev/null -+ then -+ UNAME_PROCESSOR=powerpc - fi - elif test "$UNAME_PROCESSOR" = i386 ; then -- # Avoid executing cc on OS X 10.9, as it ships with a stub -- # that puts up a graphical alert prompting to install -- # developer tools. Any system running Mac OS X 10.7 or -- # later (Darwin 11 and later) is required to have a 64-bit -- # processor. This is not true of the ARM version of Darwin -- # that Apple uses in portable devices. -- UNAME_PROCESSOR=x86_64 -+ # uname -m returns i386 or x86_64 -+ UNAME_PROCESSOR=$UNAME_MACHINE - fi - echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) -- UNAME_PROCESSOR=`uname -p` -+ UNAME_PROCESSOR=$(uname -p) - if test "$UNAME_PROCESSOR" = x86; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc -@@ -1397,10 +1450,10 @@ - echo mips-sei-seiux"$UNAME_RELEASE" - exit ;; - *:DragonFly:*:*) -- echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" -+ echo "$UNAME_MACHINE"-unknown-dragonfly"$(echo "$UNAME_RELEASE"|sed -e 's/[-(].*//')" - exit ;; - *:*VMS:*:*) -- UNAME_MACHINE=`(uname -p) 2>/dev/null` -+ UNAME_MACHINE=$( (uname -p) 2>/dev/null) - case "$UNAME_MACHINE" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; -@@ -1410,7 +1463,7 @@ - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) -- echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" -+ echo "$UNAME_MACHINE"-pc-skyos"$(echo "$UNAME_RELEASE" | sed -e 's/ .*$//')" - exit ;; - i*86:rdos:*:*) - echo "$UNAME_MACHINE"-pc-rdos -@@ -1424,8 +1477,148 @@ - amd64:Isilon\ OneFS:*:*) - echo x86_64-unknown-onefs - exit ;; -+ *:Unleashed:*:*) -+ echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" -+ exit ;; - esac - -+# No uname command or uname output not recognized. -+set_cc_for_build -+cat > "$dummy.c" < -+#include -+#endif -+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) -+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) -+#include -+#if defined(_SIZE_T_) || defined(SIGLOST) -+#include -+#endif -+#endif -+#endif -+main () -+{ -+#if defined (sony) -+#if defined (MIPSEB) -+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, -+ I don't know.... */ -+ printf ("mips-sony-bsd\n"); exit (0); -+#else -+#include -+ printf ("m68k-sony-newsos%s\n", -+#ifdef NEWSOS4 -+ "4" -+#else -+ "" -+#endif -+ ); exit (0); -+#endif -+#endif -+ -+#if defined (NeXT) -+#if !defined (__ARCHITECTURE__) -+#define __ARCHITECTURE__ "m68k" -+#endif -+ int version; -+ version=$( (hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null); -+ if (version < 4) -+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); -+ else -+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); -+ exit (0); -+#endif -+ -+#if defined (MULTIMAX) || defined (n16) -+#if defined (UMAXV) -+ printf ("ns32k-encore-sysv\n"); exit (0); -+#else -+#if defined (CMU) -+ printf ("ns32k-encore-mach\n"); exit (0); -+#else -+ printf ("ns32k-encore-bsd\n"); exit (0); -+#endif -+#endif -+#endif -+ -+#if defined (__386BSD__) -+ printf ("i386-pc-bsd\n"); exit (0); -+#endif -+ -+#if defined (sequent) -+#if defined (i386) -+ printf ("i386-sequent-dynix\n"); exit (0); -+#endif -+#if defined (ns32000) -+ printf ("ns32k-sequent-dynix\n"); exit (0); -+#endif -+#endif -+ -+#if defined (_SEQUENT_) -+ struct utsname un; -+ -+ uname(&un); -+ if (strncmp(un.version, "V2", 2) == 0) { -+ printf ("i386-sequent-ptx2\n"); exit (0); -+ } -+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ -+ printf ("i386-sequent-ptx1\n"); exit (0); -+ } -+ printf ("i386-sequent-ptx\n"); exit (0); -+#endif -+ -+#if defined (vax) -+#if !defined (ultrix) -+#include -+#if defined (BSD) -+#if BSD == 43 -+ printf ("vax-dec-bsd4.3\n"); exit (0); -+#else -+#if BSD == 199006 -+ printf ("vax-dec-bsd4.3reno\n"); exit (0); -+#else -+ printf ("vax-dec-bsd\n"); exit (0); -+#endif -+#endif -+#else -+ printf ("vax-dec-bsd\n"); exit (0); -+#endif -+#else -+#if defined(_SIZE_T_) || defined(SIGLOST) -+ struct utsname un; -+ uname (&un); -+ printf ("vax-dec-ultrix%s\n", un.release); exit (0); -+#else -+ printf ("vax-dec-ultrix\n"); exit (0); -+#endif -+#endif -+#endif -+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) -+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) -+#if defined(_SIZE_T_) || defined(SIGLOST) -+ struct utsname *un; -+ uname (&un); -+ printf ("mips-dec-ultrix%s\n", un.release); exit (0); -+#else -+ printf ("mips-dec-ultrix\n"); exit (0); -+#endif -+#endif -+#endif -+ -+#if defined (alliant) && defined (i860) -+ printf ("i860-alliant-bsd\n"); exit (0); -+#endif -+ -+ exit (1); -+} -+EOF -+ -+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=$($dummy) && -+ { echo "$SYSTEM_NAME"; exit; } -+ -+# Apollos put the system type in the environment. -+test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } -+ - echo "$0: unable to guess system type" >&2 - - case "$UNAME_MACHINE:$UNAME_SYSTEM" in -@@ -1448,6 +1641,12 @@ - https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess - and - https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub -+EOF -+ -+year=$(echo $timestamp | sed 's,-.*,,') -+# shellcheck disable=SC2003 -+if test "$(expr "$(date +%Y)" - "$year")" -lt 3 ; then -+ cat >&2 </dev/null || echo unknown` --uname -r = `(uname -r) 2>/dev/null || echo unknown` --uname -s = `(uname -s) 2>/dev/null || echo unknown` --uname -v = `(uname -v) 2>/dev/null || echo unknown` -- --/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` --/bin/uname -X = `(/bin/uname -X) 2>/dev/null` -- --hostinfo = `(hostinfo) 2>/dev/null` --/bin/universe = `(/bin/universe) 2>/dev/null` --/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` --/bin/arch = `(/bin/arch) 2>/dev/null` --/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` --/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -+uname -m = $( (uname -m) 2>/dev/null || echo unknown) -+uname -r = $( (uname -r) 2>/dev/null || echo unknown) -+uname -s = $( (uname -s) 2>/dev/null || echo unknown) -+uname -v = $( (uname -v) 2>/dev/null || echo unknown) -+ -+/usr/bin/uname -p = $( (/usr/bin/uname -p) 2>/dev/null) -+/bin/uname -X = $( (/bin/uname -X) 2>/dev/null) -+ -+hostinfo = $( (hostinfo) 2>/dev/null) -+/bin/universe = $( (/bin/universe) 2>/dev/null) -+/usr/bin/arch -k = $( (/usr/bin/arch -k) 2>/dev/null) -+/bin/arch = $( (/bin/arch) 2>/dev/null) -+/usr/bin/oslevel = $( (/usr/bin/oslevel) 2>/dev/null) -+/usr/convex/getsysinfo = $( (/usr/convex/getsysinfo) 2>/dev/null) - - UNAME_MACHINE = "$UNAME_MACHINE" - UNAME_RELEASE = "$UNAME_RELEASE" - UNAME_SYSTEM = "$UNAME_SYSTEM" - UNAME_VERSION = "$UNAME_VERSION" - EOF -+fi - - exit 1 - +-# eval: (add-hook 'write-file-functions 'time-stamp) ++# eval: (add-hook 'before-save-hook 'time-stamp) + # time-stamp-start: "timestamp='" + # time-stamp-format: "%:y-%02m-%02d" + # time-stamp-end: "'" diff --git a/patches/libxml2/0007-Fix-XPath-recursion-limit.patch b/patches/libxml2/0007-Fix-XPath-recursion-limit.patch deleted file mode 100644 index 11342b33d8..0000000000 --- a/patches/libxml2/0007-Fix-XPath-recursion-limit.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 3e1aad4fe584747fd7d17cc7b2863a78e2d21a77 Mon Sep 17 00:00:00 2001 -From: Nick Wellnhofer -Date: Wed, 2 Jun 2021 17:31:49 +0200 -Subject: [PATCH] Fix XPath recursion limit - -Fix accounting of recursion depth when parsing XPath expressions. - -This silly bug introduced in commit 804c5297 could lead to spurious -errors when parsing larger expressions or XSLT documents. - -Should fix #264. ---- - xpath.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/xpath.c b/xpath.c -index 7497ba0..1aa2f1a 100644 ---- a/xpath.c -+++ b/xpath.c -@@ -10983,7 +10983,7 @@ xmlXPathCompileExpr(xmlXPathParserContextPtr ctxt, int sort) { - } - - if (xpctxt != NULL) -- xpctxt->depth -= 1; -+ xpctxt->depth -= 10; - } - - /** --- -2.31.0 - diff --git a/test/xml/test_xpath.rb b/test/xml/test_xpath.rb index 5c6589cdd5..8fae2ea39c 100644 --- a/test/xml/test_xpath.rb +++ b/test/xml/test_xpath.rb @@ -477,10 +477,11 @@ def test_xpath_syntax_error_should_not_display_line_and_column_if_both_are_zero end def test_huge_xpath_query - skip_unless_libxml2_patch("0007-Fix-XPath-recursion-limit.patch") if Nokogiri.uses_libxml?("~>2.9.11") + if Nokogiri::VersionInfo.instance.libxml2_using_system? && Nokogiri.uses_libxml?([">= 2.9.11", "< 2.9.13"]) + skip("upstream libxml2 3e1aad4f") + end - # real world example - # from https://github.com/sparklemotion/nokogiri/issues/2257 + # real world example from https://github.com/sparklemotion/nokogiri/issues/2257 query = File.read(File.join(ASSETS_DIR, "huge-xpath-query.txt")) doc = Nokogiri::XML::Document.parse("") @@ -493,7 +494,8 @@ def add(context, rhs) 42 end end - doc.xpath(query, { "ct" => "https://test.nokogiri.org/ct", "date" => "https://test.nokogiri.org/date" }, handler.new) + result = doc.xpath(query, { "ct" => "https://test.nokogiri.org/ct", "date" => "https://test.nokogiri.org/date" }, handler.new) + assert(result) end describe "nokogiri-builtin:css-class xpath function" do From 379f757ef529feae0fafba2ae2c145c050d8a4fc Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Sun, 20 Feb 2022 14:21:33 -0500 Subject: [PATCH 8/8] dev(package): work around gnome mirrors with expired certs what year is it, jfc --- ext/nokogiri/extconf.rb | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/ext/nokogiri/extconf.rb b/ext/nokogiri/extconf.rb index 86aae34089..a1d6be549e 100644 --- a/ext/nokogiri/extconf.rb +++ b/ext/nokogiri/extconf.rb @@ -211,6 +211,18 @@ def local_have_library(lib, func = nil, headers = nil) have_library(lib, func, headers) || have_library("lib#{lib}", func, headers) end +def gnome_source + # As of 2022-02-20, some mirrors have expired SSL certificates. I'm able to retrieve from my home, + # but whatever host is resolved on the github actions workers see an expired cert. + # + # See https://github.com/sparklemotion/nokogiri/runs/5266206403?check_suite_focus=true + if ENV["NOKOGIRI_USE_CANONICAL_GNOME_SOURCE"] + "https://download.gnome.org" + else + "https://mirror.csclub.uwaterloo.ca/gnome" # old reliable + end +end + LOCAL_PACKAGE_RESPONSE = Object.new def LOCAL_PACKAGE_RESPONSE.%(package) package ? "yes: #{package}" : "no" @@ -512,6 +524,7 @@ def recipe.port_path EOM + pp(recipe.files) chdir_for_build { recipe.cook } FileUtils.touch(checkpoint) end @@ -772,7 +785,7 @@ def compile else minor_version = Gem::Version.new(recipe.version).segments.take(2).join(".") recipe.files = [{ - url: "https://download.gnome.org/sources/libxml2/#{minor_version}/#{recipe.name}-#{recipe.version}.tar.xz", + url: "#{gnome_source}/sources/libxml2/#{minor_version}/#{recipe.name}-#{recipe.version}.tar.xz", sha256: dependencies["libxml2"]["sha256"], }] recipe.patch_files = Dir[File.join(PACKAGE_ROOT_DIR, "patches", "libxml2", "*.patch")].sort @@ -821,7 +834,7 @@ def compile else minor_version = Gem::Version.new(recipe.version).segments.take(2).join(".") recipe.files = [{ - url: "https://download.gnome.org/sources/libxslt/#{minor_version}/#{recipe.name}-#{recipe.version}.tar.xz", + url: "#{gnome_source}/sources/libxslt/#{minor_version}/#{recipe.name}-#{recipe.version}.tar.xz", sha256: dependencies["libxslt"]["sha256"], }] recipe.patch_files = Dir[File.join(PACKAGE_ROOT_DIR, "patches", "libxslt", "*.patch")].sort