config.sub (bison-3.8.1.tar.xz) | : | config.sub (bison-3.8.2.tar.xz) | ||
---|---|---|---|---|
#! /bin/sh | #! /bin/sh | |||
# Configuration validation subroutine script. | # Configuration validation subroutine script. | |||
# Copyright 1992-2021 Free Software Foundation, Inc. | # Copyright 1992-2021 Free Software Foundation, Inc. | |||
# shellcheck disable=SC2006,SC2268 # see below for rationale | # shellcheck disable=SC2006,SC2268 # see below for rationale | |||
timestamp='2021-07-03' | timestamp='2021-08-14' | |||
# This file is free software; you can redistribute it and/or modify it | # 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 | # under the terms of the GNU General Public License as published by | |||
# the Free Software Foundation; either version 3 of the License, or | # the Free Software Foundation; either version 3 of the License, or | |||
# (at your option) any later version. | # (at your option) any later version. | |||
# | # | |||
# This program is distributed in the hope that it will be useful, but | # This program is distributed in the hope that it will be useful, but | |||
# WITHOUT ANY WARRANTY; without even the implied warranty of | # WITHOUT ANY WARRANTY; without even the implied warranty of | |||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
# General Public License for more details. | # General Public License for more details. | |||
skipping to change at line 123 | skipping to change at line 123 | |||
case $# in | case $# in | |||
0) echo "$me: missing argument$help" >&2 | 0) echo "$me: missing argument$help" >&2 | |||
exit 1;; | exit 1;; | |||
1) ;; | 1) ;; | |||
*) echo "$me: too many arguments$help" >&2 | *) echo "$me: too many arguments$help" >&2 | |||
exit 1;; | exit 1;; | |||
esac | esac | |||
# Split fields of configuration type | # Split fields of configuration type | |||
# shellcheck disable=SC2162 | # shellcheck disable=SC2162 | |||
saved_IFS=$IFS | ||||
IFS="-" read field1 field2 field3 field4 <<EOF | IFS="-" read field1 field2 field3 field4 <<EOF | |||
$1 | $1 | |||
EOF | EOF | |||
IFS=$saved_IFS | ||||
# Separate into logical components for further validation | # Separate into logical components for further validation | |||
case $1 in | case $1 in | |||
*-*-*-*-*) | *-*-*-*-*) | |||
echo Invalid configuration \`"$1"\': more than four components >& 2 | echo Invalid configuration \`"$1"\': more than four components >& 2 | |||
exit 1 | exit 1 | |||
;; | ;; | |||
*-*-*-*) | *-*-*-*) | |||
basic_machine=$field1-$field2 | basic_machine=$field1-$field2 | |||
basic_os=$field3-$field4 | basic_os=$field3-$field4 | |||
skipping to change at line 174 | skipping to change at line 176 | |||
basic_os= | basic_os= | |||
;; | ;; | |||
*-*) | *-*) | |||
# Second component is usually, but not always the OS | # Second component is usually, but not always the OS | |||
case $field2 in | case $field2 in | |||
# Prevent following clause from handling this valid os | # Prevent following clause from handling this valid os | |||
sun*os*) | sun*os*) | |||
basic_machine=$field1 | basic_machine=$field1 | |||
basic_os=$field2 | basic_os=$field2 | |||
;; | ;; | |||
zephyr*) | ||||
basic_machine=$field1-unknown | ||||
basic_os=$field2 | ||||
;; | ||||
# Manufacturers | # Manufacturers | |||
dec* | mips* | sequent* | encore* | pc533 * | sgi* | sony* \ | dec* | mips* | sequent* | encore* | pc533 * | sgi* | sony* \ | |||
| att* | 7300* | 3300* | delta* | motorol a* | sun[234]* \ | | att* | 7300* | 3300* | delta* | motorol a* | sun[234]* \ | |||
| unicom* | ibm* | next | hp | isi* | apo llo | altos* \ | | unicom* | ibm* | next | hp | isi* | apo llo | altos* \ | |||
| convergent* | ncr* | news | 32* | 3600* | 3100* \ | | convergent* | ncr* | news | 32* | 3600* | 3100* \ | |||
| hitachi* | c[123]* | convex* | sun | cr ds | omron* | dg \ | | hitachi* | c[123]* | convex* | sun | cr ds | omron* | dg \ | |||
| ultra | tti* | harris | dolphin | highl evel | gould \ | | ultra | tti* | harris | dolphin | highl evel | gould \ | |||
| cbm | ns | masscomp | apple | axis | kn uth | cray \ | | cbm | ns | masscomp | apple | axis | kn uth | cray \ | |||
| microblaze* | sim | cisco \ | | microblaze* | sim | cisco \ | |||
| oki | wec | wrs | winbond) | | oki | wec | wrs | winbond) | |||
skipping to change at line 933 | skipping to change at line 939 | |||
cpu=sparc | cpu=sparc | |||
vendor=$basic_machine | vendor=$basic_machine | |||
;; | ;; | |||
leon-*|leon[3-9]-*) | leon-*|leon[3-9]-*) | |||
cpu=sparc | cpu=sparc | |||
vendor=`echo "$basic_machine" | sed 's/-.*//'` | vendor=`echo "$basic_machine" | sed 's/-.*//'` | |||
;; | ;; | |||
*-*) | *-*) | |||
# shellcheck disable=SC2162 | # shellcheck disable=SC2162 | |||
saved_IFS=$IFS | ||||
IFS="-" read cpu vendor <<EOF | IFS="-" read cpu vendor <<EOF | |||
$basic_machine | $basic_machine | |||
EOF | EOF | |||
IFS=$saved_IFS | ||||
;; | ;; | |||
# We use `pc' rather than `unknown' | # We use `pc' rather than `unknown' | |||
# because (1) that's what they normally are, and | # because (1) that's what they normally are, and | |||
# (2) the word "unknown" tends to confuse beginning users. | # (2) the word "unknown" tends to confuse beginning users. | |||
i*86 | x86_64) | i*86 | x86_64) | |||
cpu=$basic_machine | cpu=$basic_machine | |||
vendor=pc | vendor=pc | |||
;; | ;; | |||
# These rules are duplicated from below for sake of the special case abov e; | # These rules are duplicated from below for sake of the special case abov e; | |||
# i.e. things that normalized to x86 arches should also default to "pc" | # i.e. things that normalized to x86 arches should also default to "pc" | |||
skipping to change at line 1315 | skipping to change at line 1323 | |||
os2-emx) | os2-emx) | |||
kernel=os2 | kernel=os2 | |||
os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` | os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` | |||
;; | ;; | |||
nto-qnx*) | nto-qnx*) | |||
kernel=nto | kernel=nto | |||
os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` | os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` | |||
;; | ;; | |||
*-*) | *-*) | |||
# shellcheck disable=SC2162 | # shellcheck disable=SC2162 | |||
saved_IFS=$IFS | ||||
IFS="-" read kernel os <<EOF | IFS="-" read kernel os <<EOF | |||
$basic_os | $basic_os | |||
EOF | EOF | |||
IFS=$saved_IFS | ||||
;; | ;; | |||
# Default OS when just kernel was specified | # Default OS when just kernel was specified | |||
nto*) | nto*) | |||
kernel=nto | kernel=nto | |||
os=`echo "$basic_os" | sed -e 's|nto|qnx|'` | os=`echo "$basic_os" | sed -e 's|nto|qnx|'` | |||
;; | ;; | |||
linux*) | linux*) | |||
kernel=linux | kernel=linux | |||
os=`echo "$basic_os" | sed -e 's|linux|gnu|'` | os=`echo "$basic_os" | sed -e 's|linux|gnu|'` | |||
;; | ;; | |||
skipping to change at line 1699 | skipping to change at line 1709 | |||
*) | *) | |||
os=none | os=none | |||
;; | ;; | |||
esac | esac | |||
fi | fi | |||
# Now, validate our (potentially fixed-up) OS. | # Now, validate our (potentially fixed-up) OS. | |||
case $os in | case $os in | |||
# Sometimes we do "kernel-libc", so those need to count as OSes. | # Sometimes we do "kernel-libc", so those need to count as OSes. | |||
musl* | newlib* | uclibc*) | musl* | newlib* | relibc* | uclibc*) | |||
;; | ;; | |||
# Likewise for "kernel-abi" | # Likewise for "kernel-abi" | |||
eabi* | gnueabi*) | eabi* | gnueabi*) | |||
;; | ;; | |||
# VxWorks passes extra cpu info in the 4th filed. | # VxWorks passes extra cpu info in the 4th filed. | |||
simlinux | simwindows | spe) | simlinux | simwindows | spe) | |||
;; | ;; | |||
# Now accept the basic system types. | # Now accept the basic system types. | |||
# The portable systems comes first. | # The portable systems comes first. | |||
# Each alternative MUST end in a * to match a version number. | # Each alternative MUST end in a * to match a version number. | |||
skipping to change at line 1740 | skipping to change at line 1750 | |||
| uxpv* | beos* | mpeix* | udk* | moxiebox* \ | | uxpv* | beos* | mpeix* | udk* | moxiebox* \ | |||
| interix* | uwin* | mks* | rhapsody* | darwin* \ | | interix* | uwin* | mks* | rhapsody* | darwin* \ | |||
| openstep* | oskit* | conix* | pw32* | nonstopux* \ | | openstep* | oskit* | conix* | pw32* | nonstopux* \ | |||
| storm-chaos* | tops10* | tenex* | tops20* | its* \ | | storm-chaos* | tops10* | tenex* | tops20* | its* \ | |||
| os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ | | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \ | |||
| scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ | | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \ | |||
| powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ | | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ | |||
| skyos* | haiku* | rdos* | toppers* | drops* | es* \ | | skyos* | haiku* | rdos* | toppers* | drops* | es* \ | |||
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | |||
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | |||
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*) | | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr*) | |||
;; | ;; | |||
# This one is extra strict with allowed versions | # This one is extra strict with allowed versions | |||
sco3.2v2 | sco3.2v[4-9]* | sco5v6*) | sco3.2v2 | sco3.2v[4-9]* | sco5v6*) | |||
# Don't forget version if it is 3.2v4 or newer. | # Don't forget version if it is 3.2v4 or newer. | |||
;; | ;; | |||
none) | none) | |||
;; | ;; | |||
*) | *) | |||
echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 | echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 | |||
exit 1 | exit 1 | |||
;; | ;; | |||
esac | esac | |||
# As a final step for OS-related things, validate the OS-kernel combination | # As a final step for OS-related things, validate the OS-kernel combination | |||
# (given a valid OS), if there is a kernel. | # (given a valid OS), if there is a kernel. | |||
case $kernel-$os in | case $kernel-$os in | |||
linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-mus | linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ | |||
l* | linux-uclibc* ) | | linux-musl* | linux-relibc* | linux-uclibc* ) | |||
;; | ;; | |||
uclinux-uclibc* ) | uclinux-uclibc* ) | |||
;; | ;; | |||
-dietlibc* | -newlib* | -musl* | -uclibc* ) | -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) | |||
# These are just libc implementations, not actual OSes, and thus | # These are just libc implementations, not actual OSes, and thus | |||
# require a kernel. | # require a kernel. | |||
echo "Invalid configuration \`$1': libc \`$os' needs explicit ker nel." 1>&2 | echo "Invalid configuration \`$1': libc \`$os' needs explicit ker nel." 1>&2 | |||
exit 1 | exit 1 | |||
;; | ;; | |||
kfreebsd*-gnu* | kopensolaris*-gnu*) | kfreebsd*-gnu* | kopensolaris*-gnu*) | |||
;; | ;; | |||
vxworks-simlinux | vxworks-simwindows | vxworks-spe) | vxworks-simlinux | vxworks-simwindows | vxworks-spe) | |||
;; | ;; | |||
nto-qnx*) | nto-qnx*) | |||
End of changes. 12 change blocks. | ||||
6 lines changed or deleted | 16 lines changed or added |