[1/2] Update config.sub to GCC master branch version
Commit Message
From: Yuriy Kolerov <ykolerov@synopsys.com>
New config.sub contains support of Synopsys ARCv3 targets. It's
necessary for further porting Newlib for ARCv3.
config.guess has not been updated yet in GCC.
Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
---
config.sub | 81 +++++++++++++++++++++++++++++++++++-------------------
1 file changed, 53 insertions(+), 28 deletions(-)
Comments
Patch applied.
-- Jeff J.
On Wed, Aug 21, 2024 at 9:32 AM <Yuriy.Kolerov@synopsys.com> wrote:
> From: Yuriy Kolerov <ykolerov@synopsys.com>
>
> New config.sub contains support of Synopsys ARCv3 targets. It's
> necessary for further porting Newlib for ARCv3.
>
> config.guess has not been updated yet in GCC.
>
> Signed-off-by: Yuriy Kolerov <ykolerov@synopsys.com>
> ---
> config.sub | 81 +++++++++++++++++++++++++++++++++++-------------------
> 1 file changed, 53 insertions(+), 28 deletions(-)
>
> diff --git a/config.sub b/config.sub
> index 63c1f1c8b..38f3d037a 100755
> --- a/config.sub
> +++ b/config.sub
> @@ -2,7 +2,9 @@
> # Configuration validation subroutine script.
> # Copyright 1992-2021 Free Software Foundation, Inc.
>
> -timestamp='2021-01-08'
> +# shellcheck disable=SC2006,SC2268 # see below for rationale
> +
> +timestamp='2021-10-27'
>
> # 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
> @@ -50,7 +52,14 @@ timestamp='2021-01-08'
> # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
> # It is wrong to echo any other type of specification.
>
> -me=$(echo "$0" | sed -e 's,.*/,,')
> +# The "shellcheck disable" line above the timestamp inhibits complaints
> +# about features and limitations of the classic Bourne shell that were
> +# superseded or lifted in POSIX. However, this script identifies a wide
> +# variety of pre-POSIX systems that do not have POSIX shells at all, and
> +# even some reasonably current systems (Solaris 10 as case-in-point) still
> +# have a pre-POSIX /bin/sh.
> +
> +me=`echo "$0" | sed -e 's,.*/,,'`
>
> usage="\
> Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
> @@ -112,9 +121,11 @@ esac
>
> # Split fields of configuration type
> # shellcheck disable=SC2162
> +saved_IFS=$IFS
> IFS="-" read field1 field2 field3 field4 <<EOF
> $1
> EOF
> +IFS=$saved_IFS
>
> # Separate into logical components for further validation
> case $1 in
> @@ -163,6 +174,10 @@ case $1 in
> basic_machine=$field1
> basic_os=$field2
> ;;
> + zephyr*)
> +
> basic_machine=$field1-unknown
> + basic_os=$field2
> + ;;
> # Manufacturers
> dec* | mips* | sequent* | encore*
> | pc533* | sgi* | sony* \
> | att* | 7300* | 3300* | delta* |
> motorola* | sun[234]* \
> @@ -769,22 +784,22 @@ case $basic_machine in
> vendor=hp
> ;;
> i*86v32)
> - cpu=$(echo "$1" | sed -e 's/86.*/86/')
> + cpu=`echo "$1" | sed -e 's/86.*/86/'`
> vendor=pc
> basic_os=sysv32
> ;;
> i*86v4*)
> - cpu=$(echo "$1" | sed -e 's/86.*/86/')
> + cpu=`echo "$1" | sed -e 's/86.*/86/'`
> vendor=pc
> basic_os=sysv4
> ;;
> i*86v)
> - cpu=$(echo "$1" | sed -e 's/86.*/86/')
> + cpu=`echo "$1" | sed -e 's/86.*/86/'`
> vendor=pc
> basic_os=sysv
> ;;
> i*86sol2)
> - cpu=$(echo "$1" | sed -e 's/86.*/86/')
> + cpu=`echo "$1" | sed -e 's/86.*/86/'`
> vendor=pc
> basic_os=solaris2
> ;;
> @@ -917,14 +932,16 @@ case $basic_machine in
> ;;
> leon-*|leon[3-9]-*)
> cpu=sparc
> - vendor=$(echo "$basic_machine" | sed 's/-.*//')
> + vendor=`echo "$basic_machine" | sed 's/-.*//'`
> ;;
>
> *-*)
> # shellcheck disable=SC2162
> + saved_IFS=$IFS
> IFS="-" read cpu vendor <<EOF
> $basic_machine
> EOF
> + IFS=$saved_IFS
> ;;
> # We use `pc' rather than `unknown'
> # because (1) that's what they normally are, and
> @@ -1084,7 +1101,7 @@ case $cpu-$vendor in
> cpu=mipsisa64sb1el
> ;;
> sh5e[lb]-*)
> - cpu=$(echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/')
> + cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
> ;;
> spur-*)
> cpu=spur
> @@ -1102,7 +1119,7 @@ case $cpu-$vendor in
> cpu=x86_64
> ;;
> xscale-* | xscalee[bl]-*)
> - cpu=$(echo "$cpu" | sed 's/^xscale/arm/')
> + cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
> ;;
> arm64-*)
> cpu=aarch64
> @@ -1165,7 +1182,7 @@ case $cpu-$vendor in
> | alphapca5[67] | alpha64pca5[67] \
> | am33_2.0 \
> | amdgcn \
> - | arc | arceb \
> + | arc | arceb | arc32 | arc64 \
> | arm | arm[lb]e | arme[lb] | armv* \
> | avr | avr32 \
> | asmjs \
> @@ -1204,9 +1221,13 @@ case $cpu-$vendor in
> | mips64vr5900 | mips64vr5900el \
> | mipsisa32 | mipsisa32el \
> | mipsisa32r2 | mipsisa32r2el \
> + | mipsisa32r3 | mipsisa32r3el \
> + | mipsisa32r5 | mipsisa32r5el \
> | mipsisa32r6 | mipsisa32r6el \
> | mipsisa64 | mipsisa64el \
> | mipsisa64r2 | mipsisa64r2el \
> + | mipsisa64r3 | mipsisa64r3el \
> + | mipsisa64r5 | mipsisa64r5el \
> | mipsisa64r6 | mipsisa64r6el \
> | mipsisa64sb1 | mipsisa64sb1el \
> | mipsisa64sr71k | mipsisa64sr71kel \
> @@ -1283,35 +1304,37 @@ esac
> if test x$basic_os != x
> then
>
> -# First recognize some ad-hoc caes, or perhaps split kernel-os, or else
> just
> +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else
> just
> # set os.
> case $basic_os in
> gnu/linux*)
> kernel=linux
> - os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|')
> + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
> ;;
> os2-emx)
> kernel=os2
> - os=$(echo $basic_os | sed -e 's|os2-emx|emx|')
> + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
> ;;
> nto-qnx*)
> 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
> + saved_IFS=$IFS
> IFS="-" read kernel os <<EOF
> $basic_os
> EOF
> + IFS=$saved_IFS
> ;;
> # Default OS when just kernel was specified
> nto*)
> kernel=nto
> - os=$(echo $basic_os | sed -e 's|nto|qnx|')
> + os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
> ;;
> linux*)
> kernel=linux
> - os=$(echo $basic_os | sed -e 's|linux|gnu|')
> + os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
> ;;
> *)
> kernel=
> @@ -1332,7 +1355,7 @@ case $os in
> os=cnk
> ;;
> solaris1 | solaris1.*)
> - os=$(echo $os | sed -e 's|solaris1|sunos4|')
> + os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
> ;;
> solaris)
> os=solaris2
> @@ -1361,7 +1384,7 @@ case $os in
> os=sco3.2v4
> ;;
> sco3.2.[4-9]*)
> - os=$(echo $os | sed -e 's/sco3.2./sco3.2v/')
> + os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
> ;;
> sco*v* | scout)
> # Don't match below
> @@ -1391,7 +1414,7 @@ case $os in
> os=lynxos
> ;;
> mac[0-9]*)
> - os=$(echo "$os" | sed -e 's|mac|macos|')
> + os=`echo "$os" | sed -e 's|mac|macos|'`
> ;;
> opened*)
> os=openedition
> @@ -1400,10 +1423,10 @@ case $os in
> os=os400
> ;;
> sunos5*)
> - os=$(echo "$os" | sed -e 's|sunos5|solaris2|')
> + os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
> ;;
> sunos6*)
> - os=$(echo "$os" | sed -e 's|sunos6|solaris3|')
> + os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
> ;;
> wince*)
> os=wince
> @@ -1437,7 +1460,7 @@ case $os in
> ;;
> # Preserve the version number of sinix5.
> sinix5.*)
> - os=$(echo $os | sed -e 's|sinix|sysv|')
> + os=`echo "$os" | sed -e 's|sinix|sysv|'`
> ;;
> sinix*)
> os=sysv4
> @@ -1684,7 +1707,7 @@ fi
> # Now, validate our (potentially fixed-up) OS.
> case $os in
> # Sometimes we do "kernel-libc", so those need to count as OSes.
> - musl* | newlib* | uclibc*)
> + musl* | newlib* | relibc* | uclibc*)
> ;;
> # Likewise for "kernel-abi"
> eabi* | gnueabi*)
> @@ -1707,12 +1730,12 @@ case $os in
> | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
> | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
> | mirbsd* | netbsd* | dicos* | openedition* | ose* \
> - | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
> + | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* |
> os108* \
> | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
> | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
> | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
> | udi* | lites* | ieee* | go32* | aux* | hcos* \
> - | chorusrdb* | cegcc* | glidix* \
> + | chorusrdb* | cegcc* | glidix* | serenity* \
> | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
> | midipix* | mingw32* | mingw64* | mint* \
> | uxpv* | beos* | mpeix* | udk* | moxiebox* \
> @@ -1725,7 +1748,8 @@ case $os in
> | skyos* | haiku* | rdos* | toppers* | drops* | es* \
> | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
> | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
> - | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
> + | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* |
> zephyr* \
> + | fiwix* )
> ;;
> # This one is extra strict with allowed versions
> sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
> @@ -1742,11 +1766,12 @@ esac
> # As a final step for OS-related things, validate the OS-kernel
> combination
> # (given a valid OS), if there is a kernel.
> case $kernel-$os in
> - linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* |
> linux-musl* | linux-uclibc* )
> + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
> + | linux-musl* | linux-relibc* | linux-uclibc* )
> ;;
> uclinux-uclibc* )
> ;;
> - -dietlibc* | -newlib* | -musl* | -uclibc* )
> + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
> # These are just libc implementations, not actual OSes,
> and thus
> # require a kernel.
> echo "Invalid configuration \`$1': libc \`$os' needs
> explicit kernel." 1>&2
> --
> 2.34.1
>
>
@@ -2,7 +2,9 @@
# Configuration validation subroutine script.
# Copyright 1992-2021 Free Software Foundation, Inc.
-timestamp='2021-01-08'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2021-10-27'
# 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
@@ -50,7 +52,14 @@ timestamp='2021-01-08'
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
-me=$(echo "$0" | sed -e 's,.*/,,')
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
@@ -112,9 +121,11 @@ esac
# Split fields of configuration type
# shellcheck disable=SC2162
+saved_IFS=$IFS
IFS="-" read field1 field2 field3 field4 <<EOF
$1
EOF
+IFS=$saved_IFS
# Separate into logical components for further validation
case $1 in
@@ -163,6 +174,10 @@ case $1 in
basic_machine=$field1
basic_os=$field2
;;
+ zephyr*)
+ basic_machine=$field1-unknown
+ basic_os=$field2
+ ;;
# Manufacturers
dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
@@ -769,22 +784,22 @@ case $basic_machine in
vendor=hp
;;
i*86v32)
- cpu=$(echo "$1" | sed -e 's/86.*/86/')
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
basic_os=sysv32
;;
i*86v4*)
- cpu=$(echo "$1" | sed -e 's/86.*/86/')
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
basic_os=sysv4
;;
i*86v)
- cpu=$(echo "$1" | sed -e 's/86.*/86/')
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
basic_os=sysv
;;
i*86sol2)
- cpu=$(echo "$1" | sed -e 's/86.*/86/')
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
vendor=pc
basic_os=solaris2
;;
@@ -917,14 +932,16 @@ case $basic_machine in
;;
leon-*|leon[3-9]-*)
cpu=sparc
- vendor=$(echo "$basic_machine" | sed 's/-.*//')
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
;;
*-*)
# shellcheck disable=SC2162
+ saved_IFS=$IFS
IFS="-" read cpu vendor <<EOF
$basic_machine
EOF
+ IFS=$saved_IFS
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
@@ -1084,7 +1101,7 @@ case $cpu-$vendor in
cpu=mipsisa64sb1el
;;
sh5e[lb]-*)
- cpu=$(echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/')
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
;;
spur-*)
cpu=spur
@@ -1102,7 +1119,7 @@ case $cpu-$vendor in
cpu=x86_64
;;
xscale-* | xscalee[bl]-*)
- cpu=$(echo "$cpu" | sed 's/^xscale/arm/')
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
arm64-*)
cpu=aarch64
@@ -1165,7 +1182,7 @@ case $cpu-$vendor in
| alphapca5[67] | alpha64pca5[67] \
| am33_2.0 \
| amdgcn \
- | arc | arceb \
+ | arc | arceb | arc32 | arc64 \
| arm | arm[lb]e | arme[lb] | armv* \
| avr | avr32 \
| asmjs \
@@ -1204,9 +1221,13 @@ case $cpu-$vendor in
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r3 | mipsisa32r3el \
+ | mipsisa32r5 | mipsisa32r5el \
| mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r3 | mipsisa64r3el \
+ | mipsisa64r5 | mipsisa64r5el \
| mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
@@ -1283,35 +1304,37 @@ esac
if test x$basic_os != x
then
-# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
+# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
# set os.
case $basic_os in
gnu/linux*)
kernel=linux
- os=$(echo $basic_os | sed -e 's|gnu/linux|gnu|')
+ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
;;
os2-emx)
kernel=os2
- os=$(echo $basic_os | sed -e 's|os2-emx|emx|')
+ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
;;
nto-qnx*)
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
+ saved_IFS=$IFS
IFS="-" read kernel os <<EOF
$basic_os
EOF
+ IFS=$saved_IFS
;;
# Default OS when just kernel was specified
nto*)
kernel=nto
- os=$(echo $basic_os | sed -e 's|nto|qnx|')
+ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
;;
linux*)
kernel=linux
- os=$(echo $basic_os | sed -e 's|linux|gnu|')
+ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
;;
*)
kernel=
@@ -1332,7 +1355,7 @@ case $os in
os=cnk
;;
solaris1 | solaris1.*)
- os=$(echo $os | sed -e 's|solaris1|sunos4|')
+ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
;;
solaris)
os=solaris2
@@ -1361,7 +1384,7 @@ case $os in
os=sco3.2v4
;;
sco3.2.[4-9]*)
- os=$(echo $os | sed -e 's/sco3.2./sco3.2v/')
+ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
;;
sco*v* | scout)
# Don't match below
@@ -1391,7 +1414,7 @@ case $os in
os=lynxos
;;
mac[0-9]*)
- os=$(echo "$os" | sed -e 's|mac|macos|')
+ os=`echo "$os" | sed -e 's|mac|macos|'`
;;
opened*)
os=openedition
@@ -1400,10 +1423,10 @@ case $os in
os=os400
;;
sunos5*)
- os=$(echo "$os" | sed -e 's|sunos5|solaris2|')
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
;;
sunos6*)
- os=$(echo "$os" | sed -e 's|sunos6|solaris3|')
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
;;
wince*)
os=wince
@@ -1437,7 +1460,7 @@ case $os in
;;
# Preserve the version number of sinix5.
sinix5.*)
- os=$(echo $os | sed -e 's|sinix|sysv|')
+ os=`echo "$os" | sed -e 's|sinix|sysv|'`
;;
sinix*)
os=sysv4
@@ -1684,7 +1707,7 @@ fi
# Now, validate our (potentially fixed-up) OS.
case $os in
# Sometimes we do "kernel-libc", so those need to count as OSes.
- musl* | newlib* | uclibc*)
+ musl* | newlib* | relibc* | uclibc*)
;;
# Likewise for "kernel-abi"
eabi* | gnueabi*)
@@ -1707,12 +1730,12 @@ case $os in
| nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
| clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
| mirbsd* | netbsd* | dicos* | openedition* | ose* \
- | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
+ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
| ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
| bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
| ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
| udi* | lites* | ieee* | go32* | aux* | hcos* \
- | chorusrdb* | cegcc* | glidix* \
+ | chorusrdb* | cegcc* | glidix* | serenity* \
| cygwin* | msys* | pe* | moss* | proelf* | rtems* \
| midipix* | mingw32* | mingw64* | mint* \
| uxpv* | beos* | mpeix* | udk* | moxiebox* \
@@ -1725,7 +1748,8 @@ case $os in
| skyos* | haiku* | rdos* | toppers* | drops* | es* \
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
- | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx*)
+ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
+ | fiwix* )
;;
# This one is extra strict with allowed versions
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
@@ -1742,11 +1766,12 @@ esac
# As a final step for OS-related things, validate the OS-kernel combination
# (given a valid OS), if there is a kernel.
case $kernel-$os in
- linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
+ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
+ | linux-musl* | linux-relibc* | linux-uclibc* )
;;
uclinux-uclibc* )
;;
- -dietlibc* | -newlib* | -musl* | -uclibc* )
+ -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
# These are just libc implementations, not actual OSes, and thus
# require a kernel.
echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2