diff --git a/.gitignore b/.gitignore index eab8ed427987c62daee897e243db107c1013ad78..7fd98398076fe2b1dfb036d40ab6c3987df3808d 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,9 @@ stage.tar.gz stage.toml sysroot xargo + + +#Added by cargo + +/target +**/*.rs.bk diff --git a/recipes/acid/recipe.toml b/recipes/acid/recipe.toml new file mode 100644 index 0000000000000000000000000000000000000000..2c63247f6a457eb61ce5e31336631694f5fc435d --- /dev/null +++ b/recipes/acid/recipe.toml @@ -0,0 +1,6 @@ +[source] +git = "https://gitlab.redox-os.org/redox-os/acid.git" +branch = "master" + +[build] +template = "cargo" diff --git a/recipes/libffi/recipe.toml b/recipes/libffi/recipe.toml new file mode 100644 index 0000000000000000000000000000000000000000..cebe71c4a7add45736cfa3f3b0e7762a675d6d58 --- /dev/null +++ b/recipes/libffi/recipe.toml @@ -0,0 +1,8 @@ +[source] +tar = "https://sourceware.org/pub/libffi/libffi-3.2.1.tar.gz" +patches = [ + "redox.patch" +] + +[build] +template = "configure" diff --git a/recipes/libffi/redox.patch b/recipes/libffi/redox.patch new file mode 100644 index 0000000000000000000000000000000000000000..c96d3cf9d5a138551c70f7d601a273a2a5db48bd --- /dev/null +++ b/recipes/libffi/redox.patch @@ -0,0 +1,2820 @@ +--- source/config.sub 2014-11-12 04:59:58.000000000 -0700 ++++ source-newconfig.sub 2020-05-20 15:41:56.000000000 -0600 +@@ -1,8 +1,8 @@ + #! /bin/sh + # Configuration validation subroutine script. +-# Copyright 1992-2013 Free Software Foundation, Inc. ++# Copyright 1992-2020 Free Software Foundation, Inc. + +-timestamp='2013-04-24' ++timestamp='2020-05-04' + + # 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 +@@ -15,7 +15,7 @@ + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, see <http://www.gnu.org/licenses/>. ++# along with this program; if not, see <https://www.gnu.org/licenses/>. + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -25,7 +25,7 @@ + # of the GNU General Public License, version 3 ("GPLv3"). + + +-# Please send patches with a ChangeLog entry to config-patches@gnu.org. ++# Please send patches to <config-patches@gnu.org>. + # + # Configuration subroutine to validate and canonicalize a configuration type. + # Supply the specified configuration type as an argument. +@@ -33,7 +33,7 @@ + # Otherwise, we print the canonical config type on stdout and succeed. + + # You can get the latest version of this script from: +-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD ++# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + + # This file is supposed to be the same for all GNU packages + # and recognize all the CPU types, system types and aliases +@@ -53,12 +53,11 @@ + me=`echo "$0" | sed -e 's,.*/,,'` + + usage="\ +-Usage: $0 [OPTION] CPU-MFR-OPSYS +- $0 [OPTION] ALIAS ++Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + + Canonicalize a configuration name. + +-Operation modes: ++Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit +@@ -68,7 +67,7 @@ + version="\ + GNU config.sub ($timestamp) + +-Copyright 1992-2013 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." +@@ -90,12 +89,12 @@ + - ) # Use stdin as input. + break ;; + -* ) +- echo "$me: invalid option $1$help" ++ echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. +- echo $1 ++ echo "$1" + exit ;; + + * ) +@@ -111,1209 +110,1164 @@ + exit 1;; + esac + +-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +-# Here we must recognize all the valid KERNEL-OS combinations. +-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` ++# Split fields of configuration type ++# shellcheck disable=SC2162 ++IFS="-" read field1 field2 field3 field4 <<EOF ++$1 ++EOF ++ ++# Separate into logical components for further validation ++case $1 in ++ *-*-*-*-*) ++ echo Invalid configuration \`"$1"\': more than four components >&2 ++ exit 1 ++ ;; ++ *-*-*-*) ++ basic_machine=$field1-$field2 ++ 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* | uclinux-gnu* | kfreebsd*-gnu* | \ +- knetbsd*-gnu* | netbsd*-gnu* | \ +- kopensolaris*-gnu* | \ +- storm-chaos* | os2-emx* | rtmk-nova*) +- os=-$maybe_os +- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ ++ | linux-newlib* | linux-musl* | linux-uclibc* | 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 + ;; + android-linux) +- os=-linux-android +- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ++ basic_machine=$field1-unknown ++ os=linux-android + ;; + *) +- basic_machine=`echo $1 | sed 's/-[^-]*$//'` +- if [ $basic_machine != $1 ] +- then os=`echo $1 | sed 's/.*-/-/'` +- else os=; fi ++ basic_machine=$field1-$field2 ++ os=$field3 + ;; + esac +- +-### Let's recognize common machines as not being operating systems so +-### that things like config.sub decstation-3100 work. We also +-### recognize some manufacturers as not being operating systems, so we +-### can provide default operating systems below. +-case $os in +- -sun*os*) +- # Prevent following clause from handling this invalid input. + ;; +- -dec* | -mips* | -sequent* | -encore* | -pc532* | -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*) ++ *-*) ++ # A lone config we happen to match not fitting any pattern ++ case $field1-$field2 in ++ decstation-3100) ++ basic_machine=mips-dec + os= +- basic_machine=$1 +- ;; +- -bluegene*) +- os=-cnk + ;; +- -sim | -cisco | -oki | -wec | -winbond) ++ *-*) ++ # 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 ++ os=$field2 ++ ;; ++ # 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 + os= +- basic_machine=$1 +- ;; +- -scout) +- ;; +- -wrs) +- os=-vxworks +- basic_machine=$1 +- ;; +- -chorusos*) +- os=-chorusos +- basic_machine=$1 +- ;; +- -chorusrdb) +- os=-chorusrdb +- basic_machine=$1 +- ;; +- -hiux*) +- os=-hiuxwe2 +- ;; +- -sco6) +- os=-sco5v6 +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -sco5) +- os=-sco3.2v5 +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -sco4) +- os=-sco3.2v4 +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; +- -sco3.2.[4-9]*) +- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -sco3.2v[4-9]*) +- # Don't forget version if it is 3.2v4 or newer. +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -sco5v6*) +- # Don't forget version if it is 3.2v4 or newer. +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -sco*) +- os=-sco3.2v2 +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -udk*) +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -isc) +- os=-isc2.2 +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -clix*) +- basic_machine=clipper-intergraph +- ;; +- -isc*) +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -lynx*178) +- os=-lynxos178 +- ;; +- -lynx*5) +- os=-lynxos5 +- ;; +- -lynx*) +- os=-lynxos +- ;; +- -ptx*) +- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` +- ;; +- -windowsnt*) +- os=`echo $os | sed -e 's/windowsnt/winnt/'` +- ;; +- -psos*) +- os=-psos +- ;; +- -mint | -mint[0-9]*) +- basic_machine=m68k-atari +- os=-mint ++ *) ++ basic_machine=$field1 ++ os=$field2 + ;; + esac +- +-# Decode aliases for certain CPU-COMPANY combinations. +-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 \ +- | be32 | be64 \ +- | bfin \ +- | c4x | clipper \ +- | d10v | d30v | dlx | dsp16xx \ +- | epiphany \ +- | fido | fr30 | frv \ +- | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ +- | hexagon \ +- | i370 | i860 | i960 | ia64 \ +- | ip2k | iq2000 \ +- | 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 \ +- | mipsisa64 | mipsisa64el \ +- | mipsisa64r2 | mipsisa64r2el \ +- | mipsisa64sb1 | mipsisa64sb1el \ +- | mipsisa64sr71k | mipsisa64sr71kel \ +- | mipsr5900 | mipsr5900el \ +- | mipstx39 | mipstx39el \ +- | mn10200 | mn10300 \ +- | moxie \ +- | mt \ +- | msp430 \ +- | nds32 | nds32le | nds32be \ +- | nios | nios2 | nios2eb | nios2el \ +- | ns16k | ns32k \ +- | open8 \ +- | or1k | or32 \ +- | pdp10 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle \ +- | pyramid \ +- | rl78 | rx \ +- | score \ +- | 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 \ +- | spu \ +- | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ +- | ubicom32 \ +- | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ +- | we32k \ +- | 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 +- ;; +- m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) +- basic_machine=$basic_machine-unknown +- os=-none +- ;; +- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) +- ;; +- ms1) +- basic_machine=mt-unknown +- ;; +- +- strongarm | thumb | xscale) +- basic_machine=arm-unknown +- ;; +- xgate) +- basic_machine=$basic_machine-unknown +- os=-none +- ;; +- xscaleeb) +- basic_machine=armeb-unknown +- ;; +- +- xscaleel) +- basic_machine=armel-unknown +- ;; +- +- # 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-* \ +- | be32-* | be64-* \ +- | bfin-* | bs2000-* \ +- | c[123]* | c30-* | [cjt]90-* | c4x-* \ +- | clipper-* | craynv-* | cydra-* \ +- | d10v-* | d30v-* | dlx-* \ +- | elxsi-* \ +- | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ +- | h8300-* | h8500-* \ +- | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ +- | hexagon-* \ +- | i*86-* | i860-* | i960-* | ia64-* \ +- | ip2k-* | iq2000-* \ +- | 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-* \ +- | mipsisa64-* | mipsisa64el-* \ +- | mipsisa64r2-* | mipsisa64r2el-* \ +- | mipsisa64sb1-* | mipsisa64sb1el-* \ +- | mipsisa64sr71k-* | mipsisa64sr71kel-* \ +- | mipsr5900-* | mipsr5900el-* \ +- | mipstx39-* | mipstx39el-* \ +- | mmix-* \ +- | mt-* \ +- | msp430-* \ +- | nds32-* | nds32le-* | nds32be-* \ +- | nios-* | nios2-* | nios2eb-* | nios2el-* \ +- | none-* | np1-* | ns16k-* | ns32k-* \ +- | open8-* \ +- | orion-* \ +- | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ +- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ +- | pyramid-* \ +- | 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-* \ +- | 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 ++ esac + ;; +- # Recognize the various machine names and aliases which stand +- # for a CPU type and a company and sometimes even an OS. ++ *) ++ # Convert single-component short-hands not valid as part of ++ # multi-component configurations. ++ case $field1 in + 386bsd) +- basic_machine=i386-unknown +- os=-bsd +- ;; +- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) +- basic_machine=m68000-att +- ;; +- 3b*) +- basic_machine=we32k-att ++ basic_machine=i386-pc ++ os=bsd + ;; + a29khif) + basic_machine=a29k-amd +- os=-udi +- ;; +- abacus) +- basic_machine=abacus-unknown ++ os=udi + ;; + adobe68k) + basic_machine=m68010-adobe +- os=-scout ++ os=scout + ;; +- alliant | fx80) ++ alliant) + basic_machine=fx80-alliant ++ os= + ;; + altos | altos3068) + basic_machine=m68k-altos ++ os= + ;; + am29k) + basic_machine=a29k-none +- os=-bsd +- ;; +- amd64) +- basic_machine=x86_64-pc +- ;; +- amd64-*) +- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=bsd + ;; + amdahl) + basic_machine=580-amdahl +- os=-sysv ++ os=sysv + ;; +- amiga | amiga-*) ++ amiga) + basic_machine=m68k-unknown ++ os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown +- os=-amigaos ++ os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown +- os=-sysv4 ++ os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo +- os=-sysv ++ os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo +- os=-bsd ++ os=bsd + ;; + aros) + basic_machine=i386-pc +- os=-aros ++ os=aros + ;; + aux) + basic_machine=m68k-apple +- os=-aux ++ os=aux + ;; + balance) + basic_machine=ns32k-sequent +- os=-dynix ++ os=dynix + ;; + blackfin) + basic_machine=bfin-unknown +- os=-linux +- ;; +- blackfin-*) +- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- bluegene*) +- 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 ++ os=linux + ;; + cegcc) + basic_machine=arm-unknown +- os=-cegcc ++ os=cegcc + ;; + convex-c1) + basic_machine=c1-convex +- os=-bsd ++ os=bsd + ;; + convex-c2) + basic_machine=c2-convex +- os=-bsd ++ os=bsd + ;; + convex-c32) + basic_machine=c32-convex +- os=-bsd ++ os=bsd + ;; + convex-c34) + basic_machine=c34-convex +- os=-bsd ++ os=bsd + ;; + convex-c38) + basic_machine=c38-convex +- os=-bsd ++ os=bsd + ;; +- cray | j90) ++ cray) + basic_machine=j90-cray +- os=-unicos +- ;; +- craynv) +- basic_machine=craynv-cray +- os=-unicosmp +- ;; +- cr16 | cr16-*) +- basic_machine=cr16-unknown +- os=-elf ++ os=unicos + ;; + crds | unos) + basic_machine=m68k-crds ++ os= + ;; +- crisv32 | crisv32-* | etraxfs*) +- basic_machine=crisv32-axis +- ;; +- cris | cris-* | etrax*) +- basic_machine=cris-axis +- ;; +- crx) +- basic_machine=crx-unknown +- os=-elf +- ;; +- da30 | da30-*) ++ da30) + basic_machine=m68k-da30 ++ os= + ;; +- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) ++ decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec +- ;; +- decsystem10* | dec10*) +- basic_machine=pdp10-dec +- os=-tops10 +- ;; +- decsystem20* | dec20*) +- basic_machine=pdp10-dec +- os=-tops20 +- ;; +- delta | 3300 | motorola-3300 | motorola-delta \ +- | 3300-motorola | delta-motorola) +- basic_machine=m68k-motorola ++ os= + ;; + delta88) + basic_machine=m88k-motorola +- os=-sysv3 ++ os=sysv3 + ;; + dicos) + basic_machine=i686-pc +- os=-dicos ++ os=dicos + ;; + djgpp) + basic_machine=i586-pc +- os=-msdosdjgpp +- ;; +- dpx20 | dpx20-*) +- basic_machine=rs6000-bull +- os=-bosx +- ;; +- dpx2* | dpx2*-bull) +- basic_machine=m68k-bull +- os=-sysv3 ++ os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd +- os=-ebmon +- ;; +- elxsi) +- basic_machine=elxsi-elxsi +- os=-bsd +- ;; +- encore | umax | mmax) +- basic_machine=ns32k-encore ++ os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson +- os=-ose +- ;; +- fx2800) +- basic_machine=i860-alliant +- ;; +- genix) +- basic_machine=ns32k-ns ++ os=ose + ;; + gmicro) + basic_machine=tron-gmicro +- os=-sysv ++ os=sysv + ;; + go32) + basic_machine=i386-pc +- os=-go32 +- ;; +- h3050r* | hiux*) +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 ++ os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi +- os=-hms ++ os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi +- os=-xray ++ os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi +- os=-hms ++ os=hms + ;; + harris) + basic_machine=m88k-harris +- os=-sysv3 ++ os=sysv3 + ;; +- hp300-*) ++ hp300 | hp300hpux) + basic_machine=m68k-hp ++ os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp +- os=-bsd +- ;; +- hp300hpux) +- basic_machine=m68k-hp +- os=-hpux +- ;; +- hp3k9[0-9][0-9] | hp9[0-9][0-9]) +- basic_machine=hppa1.0-hp +- ;; +- hp9k2[0-9][0-9] | hp9k31[0-9]) +- basic_machine=m68000-hp +- ;; +- hp9k3[2-9][0-9]) +- basic_machine=m68k-hp +- ;; +- hp9k6[0-9][0-9] | hp6[0-9][0-9]) +- basic_machine=hppa1.0-hp +- ;; +- hp9k7[0-79][0-9] | hp7[0-79][0-9]) +- basic_machine=hppa1.1-hp +- ;; +- hp9k78[0-9] | hp78[0-9]) +- # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-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 +- ;; +- hp9k8[0-9][13679] | hp8[0-9][13679]) +- basic_machine=hppa1.1-hp +- ;; +- hp9k8[0-9][0-9] | hp8[0-9][0-9]) +- basic_machine=hppa1.0-hp +- ;; +- hppa-next) +- os=-nextstep3 ++ os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp +- os=-osf ++ os=osf + ;; + hppro) + basic_machine=hppa1.1-hp +- os=-proelf +- ;; +- i370-ibm* | ibm*) +- basic_machine=i370-ibm +- ;; +- i*86v32) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv32 +- ;; +- i*86v4*) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv4 +- ;; +- i*86v) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv +- ;; +- i*86sol2) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-solaris2 ++ os=proelf + ;; + i386mach) + basic_machine=i386-mach +- os=-mach +- ;; +- i386-vsta | vsta) +- basic_machine=i386-unknown +- os=-vsta +- ;; +- iris | iris4d) +- basic_machine=mips-sgi +- case $os in +- -irix*) +- ;; +- *) +- os=-irix4 +- ;; +- esac ++ os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi +- os=-sysv ++ os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown +- os=-linux +- ;; +- m68knommu-*) +- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- m88k-omron*) +- basic_machine=m88k-omron ++ os=linux + ;; + magnum | m3230) + basic_machine=mips-mips +- os=-sysv ++ os=sysv + ;; + merlin) + basic_machine=ns32k-utek +- os=-sysv +- ;; +- microblaze*) +- basic_machine=microblaze-xilinx ++ os=sysv + ;; + mingw64) + basic_machine=x86_64-pc +- os=-mingw64 ++ os=mingw64 + ;; + mingw32) +- basic_machine=i386-pc +- os=-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/'` +- ;; +- mips3*) +- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ++ os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k +- os=-coff ++ os=coff + ;; + morphos) + basic_machine=powerpc-unknown +- os=-morphos ++ 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-/'` ++ os=msdos + ;; + msys) +- basic_machine=i386-pc +- os=-msys ++ basic_machine=i686-pc ++ os=msys + ;; + mvs) + basic_machine=i370-ibm +- os=-mvs ++ os=mvs + ;; + nacl) + basic_machine=le32-unknown +- os=-nacl ++ os=nacl + ;; + ncr3000) + basic_machine=i486-ncr +- os=-sysv4 ++ os=sysv4 + ;; + netbsd386) +- basic_machine=i386-unknown +- os=-netbsd ++ basic_machine=i386-pc ++ os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel +- os=-linux ++ os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony +- os=-newsos ++ os=newsos + ;; + news1000) + basic_machine=m68030-sony +- os=-newsos +- ;; +- news-3600 | risc-news) +- basic_machine=mips-sony +- os=-newsos ++ os=newsos + ;; + necv70) + basic_machine=v70-nec +- os=-sysv +- ;; +- next | m*-next ) +- basic_machine=m68k-next +- case $os in +- -nextstep* ) +- ;; +- -ns2*) +- os=-nextstep2 +- ;; +- *) +- os=-nextstep3 +- ;; +- esac ++ os=sysv + ;; + nh3000) + basic_machine=m68k-harris +- os=-cxux ++ os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris +- os=-cxux ++ os=cxux + ;; + nindy960) + basic_machine=i960-intel +- os=-nindy ++ os=nindy + ;; + mon960) + basic_machine=i960-intel +- os=-mon960 ++ 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 +- ;; +- op50n-* | op60c-*) +- basic_machine=hppa1.1-oki +- os=-proelf +- ;; +- openrisc | openrisc-*) +- basic_machine=or32-unknown ++ os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm +- os=-os400 ++ os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson +- os=-ose ++ os=ose + ;; + os68k) + basic_machine=m68k-none +- os=-os68k +- ;; +- pa-hitachi) +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 ++ os=os68k + ;; + paragon) + basic_machine=i860-intel +- os=-osf ++ os=osf + ;; + parisc) + basic_machine=hppa-unknown +- os=-linux +- ;; +- parisc-*) +- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- pbd) +- basic_machine=sparc-tti +- ;; +- pbb) +- basic_machine=m68k-tti +- ;; +- pc532 | pc532-*) +- basic_machine=ns32k-pc532 +- ;; +- pc98) +- basic_machine=i386-pc +- ;; +- pc98-*) +- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentium | p5 | k5 | k6 | nexgen | viac3) +- basic_machine=i586-pc +- ;; +- pentiumpro | p6 | 6x86 | athlon | athlon_*) +- basic_machine=i686-pc +- ;; +- pentiumii | pentium2 | pentiumiii | pentium3) +- basic_machine=i686-pc +- ;; +- pentium4) +- basic_machine=i786-pc +- ;; +- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) +- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentiumpro-* | p6-* | 6x86-* | athlon-*) +- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) +- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentium4-*) +- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pn) +- basic_machine=pn-gould +- ;; +- power) basic_machine=power-ibm +- ;; +- ppc | ppcbe) basic_machine=powerpc-unknown +- ;; +- ppc-* | ppcbe-*) +- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppcle | powerpclittle | ppc-le | powerpc-little) +- basic_machine=powerpcle-unknown +- ;; +- ppcle-* | powerpclittle-*) +- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppc64) basic_machine=powerpc64-unknown +- ;; +- ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppc64le | powerpc64little | ppc64-le | powerpc64-little) +- basic_machine=powerpc64le-unknown +- ;; +- ppc64le-* | powerpc64little-*) +- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ps2) +- basic_machine=i386-ibm ++ os=linux + ;; + pw32) + basic_machine=i586-unknown +- os=-pw32 ++ os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc +- os=-rdos ++ os=rdos + ;; + rdos32) + basic_machine=i386-pc +- os=-rdos ++ os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k +- os=-coff +- ;; +- rm[46]00) +- basic_machine=mips-siemens +- ;; +- rtpc | rtpc-*) +- basic_machine=romp-ibm +- ;; +- s390 | s390-*) +- basic_machine=s390-ibm +- ;; +- s390x | s390x-*) +- basic_machine=s390x-ibm ++ os=coff + ;; + sa29200) + basic_machine=a29k-amd +- os=-udi +- ;; +- sb1) +- basic_machine=mipsisa64sb1-unknown +- ;; +- sb1el) +- basic_machine=mipsisa64sb1el-unknown +- ;; +- sde) +- basic_machine=mipsisa32-sde +- os=-elf ++ os=udi + ;; + sei) + basic_machine=mips-sei +- os=-seiux ++ os=seiux + ;; + sequent) + basic_machine=i386-sequent +- ;; +- sh) +- basic_machine=sh-hitachi +- os=-hms +- ;; +- sh5el) +- basic_machine=sh5le-unknown +- ;; +- sh64) +- basic_machine=sh64-unknown +- ;; +- sparclite-wrs | simso-wrs) +- basic_machine=sparclite-wrs +- os=-vxworks ++ os= + ;; + sps7) + basic_machine=m68k-bull +- os=-sysv2 +- ;; +- spur) +- basic_machine=spur-unknown ++ os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem ++ os= + ;; + stratus) + basic_machine=i860-stratus +- os=-sysv4 +- ;; +- strongarm-* | thumb-*) +- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=sysv4 + ;; + sun2) + basic_machine=m68000-sun ++ os= + ;; + sun2os3) + basic_machine=m68000-sun +- os=-sunos3 ++ os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun +- os=-sunos4 ++ os=sunos4 ++ ;; ++ sun3) ++ basic_machine=m68k-sun ++ os= + ;; + sun3os3) + basic_machine=m68k-sun +- os=-sunos3 ++ os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun +- os=-sunos4 ++ os=sunos4 ++ ;; ++ sun4) ++ basic_machine=sparc-sun ++ os= + ;; + sun4os3) + basic_machine=sparc-sun +- os=-sunos3 ++ os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun +- os=-sunos4 ++ os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun +- os=-solaris2 +- ;; +- sun3 | sun3-*) +- basic_machine=m68k-sun +- ;; +- sun4) +- basic_machine=sparc-sun ++ os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun ++ os= + ;; + sv1) + basic_machine=sv1-cray +- os=-unicos ++ os=unicos + ;; + symmetry) + basic_machine=i386-sequent +- os=-dynix ++ os=dynix + ;; + t3e) + basic_machine=alphaev5-cray +- os=-unicos ++ os=unicos + ;; + t90) + basic_machine=t90-cray +- os=-unicos +- ;; +- tile*) +- basic_machine=$basic_machine-unknown +- os=-linux-gnu +- ;; +- tx39) +- basic_machine=mipstx39-unknown +- ;; +- tx39el) +- basic_machine=mipstx39el-unknown ++ os=unicos + ;; + toad1) + basic_machine=pdp10-xkl +- os=-tops20 +- ;; +- tower | tower-32) +- basic_machine=m68k-ncr ++ os=tops20 + ;; + tpf) + basic_machine=s390x-ibm +- os=-tpf ++ os=tpf + ;; + udi29k) + basic_machine=a29k-amd +- os=-udi ++ os=udi + ;; + ultra3) + basic_machine=a29k-nyu +- os=-sym1 ++ os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec +- os=-none ++ os=none + ;; + vaxv) + basic_machine=vax-dec +- os=-sysv ++ os=sysv + ;; + vms) + basic_machine=vax-dec +- os=-vms ++ os=vms + ;; +- vpp*|vx|vx-*) +- basic_machine=f301-fujitsu ++ vsta) ++ basic_machine=i386-pc ++ os=vsta + ;; + vxworks960) + basic_machine=i960-wrs +- os=-vxworks ++ os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs +- os=-vxworks ++ os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs +- os=-vxworks +- ;; +- w65*) +- basic_machine=w65-wdc +- os=-none +- ;; +- w89k-*) +- basic_machine=hppa1.1-winbond +- os=-proelf ++ os=vxworks + ;; + xbox) + basic_machine=i686-pc +- os=-mingw32 +- ;; +- xps | xps100) +- basic_machine=xps100-honeywell +- ;; +- xscale-* | xscalee[bl]-*) +- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ++ os=mingw32 + ;; + ymp) + basic_machine=ymp-cray +- os=-unicos ++ os=unicos + ;; +- z8k-*-coff) +- basic_machine=z8k-unknown +- os=-sim +- ;; +- z80-*-coff) +- basic_machine=z80-unknown +- os=-sim ++ *) ++ basic_machine=$1 ++ os= + ;; +- none) +- basic_machine=none-none +- os=-none ++ esac + ;; ++esac + ++# Decode 1-component or ad-hoc basic machines ++case $basic_machine in + # 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) +- basic_machine=hppa1.1-winbond ++ cpu=hppa1.1 ++ vendor=winbond + ;; + op50n) +- basic_machine=hppa1.1-oki ++ cpu=hppa1.1 ++ vendor=oki + ;; + op60c) +- basic_machine=hppa1.1-oki ++ cpu=hppa1.1 ++ vendor=oki + ;; +- romp) +- basic_machine=romp-ibm ++ ibm*) ++ cpu=i370 ++ vendor=ibm + ;; +- mmix) +- basic_machine=mmix-knuth ++ orion105) ++ cpu=clipper ++ vendor=highlevel + ;; +- rs6000) +- basic_machine=rs6000-ibm ++ mac | mpw | mac-mpw) ++ cpu=m68k ++ vendor=apple + ;; +- vax) +- basic_machine=vax-dec ++ pmac | pmac-mpw) ++ cpu=powerpc ++ vendor=apple + ;; +- pdp10) +- # there are many clones, so DEC is not a safe bet +- basic_machine=pdp10-unknown ++ ++ # Recognize the various machine names and aliases which stand ++ # for a CPU type and a company and sometimes even an OS. ++ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) ++ cpu=m68000 ++ vendor=att + ;; +- pdp11) +- basic_machine=pdp11-dec ++ 3b*) ++ cpu=we32k ++ vendor=att + ;; +- we32k) +- basic_machine=we32k-att ++ bluegene*) ++ cpu=powerpc ++ vendor=ibm ++ os=cnk + ;; +- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) +- basic_machine=sh-unknown ++ decsystem10* | dec10*) ++ cpu=pdp10 ++ vendor=dec ++ os=tops10 + ;; +- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) +- basic_machine=sparc-sun ++ decsystem20* | dec20*) ++ cpu=pdp10 ++ vendor=dec ++ os=tops20 + ;; +- cydra) +- basic_machine=cydra-cydrome ++ delta | 3300 | motorola-3300 | motorola-delta \ ++ | 3300-motorola | delta-motorola) ++ cpu=m68k ++ vendor=motorola + ;; +- orion) +- basic_machine=orion-highlevel ++ dpx2*) ++ cpu=m68k ++ vendor=bull ++ os=sysv3 + ;; +- orion105) +- basic_machine=clipper-highlevel ++ encore | umax | mmax) ++ cpu=ns32k ++ vendor=encore + ;; +- mac | mpw | mac-mpw) +- basic_machine=m68k-apple ++ elxsi) ++ cpu=elxsi ++ vendor=elxsi ++ os=${os:-bsd} + ;; +- pmac | pmac-mpw) +- basic_machine=powerpc-apple ++ fx2800) ++ cpu=i860 ++ vendor=alliant ++ ;; ++ genix) ++ cpu=ns32k ++ vendor=ns ++ ;; ++ h3050r* | hiux*) ++ cpu=hppa1.1 ++ vendor=hitachi ++ os=hiuxwe2 ++ ;; ++ hp3k9[0-9][0-9] | hp9[0-9][0-9]) ++ cpu=hppa1.0 ++ vendor=hp ++ ;; ++ hp9k2[0-9][0-9] | hp9k31[0-9]) ++ cpu=m68000 ++ vendor=hp ++ ;; ++ hp9k3[2-9][0-9]) ++ cpu=m68k ++ vendor=hp ++ ;; ++ hp9k6[0-9][0-9] | hp6[0-9][0-9]) ++ cpu=hppa1.0 ++ vendor=hp ++ ;; ++ hp9k7[0-79][0-9] | hp7[0-79][0-9]) ++ cpu=hppa1.1 ++ vendor=hp ++ ;; ++ hp9k78[0-9] | hp78[0-9]) ++ # FIXME: really hppa2.0-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 ++ cpu=hppa1.1 ++ vendor=hp ++ ;; ++ hp9k8[0-9][13679] | hp8[0-9][13679]) ++ cpu=hppa1.1 ++ vendor=hp ++ ;; ++ hp9k8[0-9][0-9] | hp8[0-9][0-9]) ++ cpu=hppa1.0 ++ vendor=hp ++ ;; ++ i*86v32) ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ os=sysv32 ++ ;; ++ i*86v4*) ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ os=sysv4 ++ ;; ++ i*86v) ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ os=sysv ++ ;; ++ i*86sol2) ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ os=solaris2 ++ ;; ++ j90 | j90-cray) ++ cpu=j90 ++ vendor=cray ++ os=${os:-unicos} ++ ;; ++ iris | iris4d) ++ cpu=mips ++ vendor=sgi ++ case $os in ++ irix*) ++ ;; ++ *) ++ os=irix4 ++ ;; ++ esac ++ ;; ++ miniframe) ++ cpu=m68000 ++ vendor=convergent ++ ;; ++ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ cpu=m68k ++ vendor=atari ++ os=mint ++ ;; ++ news-3600 | risc-news) ++ cpu=mips ++ vendor=sony ++ os=newsos ++ ;; ++ next | m*-next) ++ cpu=m68k ++ vendor=next ++ case $os in ++ openstep*) ++ ;; ++ nextstep*) ++ ;; ++ ns2*) ++ os=nextstep2 ++ ;; ++ *) ++ os=nextstep3 ++ ;; ++ esac ++ ;; ++ np1) ++ cpu=np1 ++ vendor=gould ++ ;; ++ op50n-* | op60c-*) ++ cpu=hppa1.1 ++ vendor=oki ++ os=proelf ++ ;; ++ pa-hitachi) ++ cpu=hppa1.1 ++ vendor=hitachi ++ os=hiuxwe2 ++ ;; ++ pbd) ++ cpu=sparc ++ vendor=tti ++ ;; ++ pbb) ++ cpu=m68k ++ vendor=tti ++ ;; ++ pc532) ++ cpu=ns32k ++ vendor=pc532 ++ ;; ++ pn) ++ cpu=pn ++ vendor=gould ++ ;; ++ power) ++ cpu=power ++ vendor=ibm ++ ;; ++ ps2) ++ cpu=i386 ++ vendor=ibm ++ ;; ++ rm[46]00) ++ cpu=mips ++ vendor=siemens ++ ;; ++ rtpc | rtpc-*) ++ cpu=romp ++ vendor=ibm ++ ;; ++ sde) ++ cpu=mipsisa32 ++ vendor=sde ++ os=${os:-elf} ++ ;; ++ simso-wrs) ++ cpu=sparclite ++ vendor=wrs ++ os=vxworks ++ ;; ++ tower | tower-32) ++ cpu=m68k ++ vendor=ncr ++ ;; ++ vpp*|vx|vx-*) ++ cpu=f301 ++ vendor=fujitsu ++ ;; ++ w65) ++ cpu=w65 ++ vendor=wdc ++ ;; ++ w89k-*) ++ cpu=hppa1.1 ++ vendor=winbond ++ os=proelf ++ ;; ++ none) ++ cpu=none ++ vendor=none ++ ;; ++ leon|leon[3-9]) ++ cpu=sparc ++ vendor=$basic_machine ++ ;; ++ leon-*|leon[3-9]-*) ++ cpu=sparc ++ vendor=`echo "$basic_machine" | sed 's/-.*//'` ++ ;; ++ ++ *-*) ++ # shellcheck disable=SC2162 ++ IFS="-" read cpu vendor <<EOF ++$basic_machine ++EOF ++ ;; ++ # 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) ++ cpu=$basic_machine ++ vendor=pc ++ ;; ++ # These rules are duplicated from below for sake of the special case above; ++ # i.e. things that normalized to x86 arches should also default to "pc" ++ pc98) ++ cpu=i386 ++ vendor=pc ++ ;; ++ x64 | amd64) ++ cpu=x86_64 ++ vendor=pc ++ ;; ++ # Recognize the basic CPU types without company name. ++ *) ++ cpu=$basic_machine ++ vendor=unknown ++ ;; ++esac ++ ++unset -v basic_machine ++ ++# Decode basic machines in the full and proper CPU-Company form. ++case $cpu-$vendor in ++ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in ++ # some cases the only manufacturer, in others, it is the most popular. ++ craynv-unknown) ++ vendor=cray ++ os=${os:-unicosmp} ++ ;; ++ c90-unknown | c90-cray) ++ vendor=cray ++ os=${os:-unicos} ++ ;; ++ fx80-unknown) ++ vendor=alliant ++ ;; ++ romp-unknown) ++ vendor=ibm ++ ;; ++ mmix-unknown) ++ vendor=knuth ++ ;; ++ microblaze-unknown | microblazeel-unknown) ++ vendor=xilinx + ;; +- *-unknown) +- # Make sure to match an already-canonicalized machine name. ++ rs6000-unknown) ++ vendor=ibm ++ ;; ++ vax-unknown) ++ vendor=dec ++ ;; ++ pdp11-unknown) ++ vendor=dec ++ ;; ++ we32k-unknown) ++ vendor=att ++ ;; ++ cydra-unknown) ++ vendor=cydrome ++ ;; ++ i370-ibm*) ++ vendor=ibm ++ ;; ++ orion-unknown) ++ vendor=highlevel ++ ;; ++ xps-unknown | xps100-unknown) ++ cpu=xps100 ++ vendor=honeywell ++ ;; ++ ++ # Here we normalize CPU types with a missing or matching vendor ++ dpx20-unknown | dpx20-bull) ++ cpu=rs6000 ++ vendor=bull ++ os=${os:-bosx} ++ ;; ++ ++ # Here we normalize CPU types irrespective of the vendor ++ amd64-*) ++ cpu=x86_64 ++ ;; ++ blackfin-*) ++ cpu=bfin ++ os=linux ++ ;; ++ c54x-*) ++ cpu=tic54x ++ ;; ++ c55x-*) ++ cpu=tic55x ++ ;; ++ c6x-*) ++ cpu=tic6x ++ ;; ++ e500v[12]-*) ++ cpu=powerpc ++ os=$os"spe" ++ ;; ++ mips3*-*) ++ cpu=mips64 ++ ;; ++ ms1-*) ++ cpu=mt ++ ;; ++ m68knommu-*) ++ cpu=m68k ++ os=linux ++ ;; ++ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) ++ cpu=s12z ++ ;; ++ openrisc-*) ++ cpu=or32 ++ ;; ++ parisc-*) ++ cpu=hppa ++ os=linux ++ ;; ++ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) ++ cpu=i586 ++ ;; ++ pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) ++ cpu=i686 ++ ;; ++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) ++ cpu=i686 ++ ;; ++ pentium4-*) ++ cpu=i786 ++ ;; ++ pc98-*) ++ cpu=i386 + ;; ++ ppc-* | ppcbe-*) ++ cpu=powerpc ++ ;; ++ ppcle-* | powerpclittle-*) ++ cpu=powerpcle ++ ;; ++ ppc64-*) ++ cpu=powerpc64 ++ ;; ++ ppc64le-* | powerpc64little-*) ++ cpu=powerpc64le ++ ;; ++ sb1-*) ++ cpu=mipsisa64sb1 ++ ;; ++ sb1el-*) ++ cpu=mipsisa64sb1el ++ ;; ++ sh5e[lb]-*) ++ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` ++ ;; ++ spur-*) ++ cpu=spur ++ ;; ++ strongarm-* | thumb-*) ++ cpu=arm ++ ;; ++ tx39-*) ++ cpu=mipstx39 ++ ;; ++ tx39el-*) ++ cpu=mipstx39el ++ ;; ++ x64-*) ++ cpu=x86_64 ++ ;; ++ xscale-* | xscalee[bl]-*) ++ cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ++ ;; ++ ++ # Recognize the canonical CPU Types that limit and/or modify the ++ # company names they are paired with. ++ cr16-*) ++ os=${os:-elf} ++ ;; ++ crisv32-* | etraxfs*-*) ++ cpu=crisv32 ++ vendor=axis ++ ;; ++ cris-* | etrax*-*) ++ cpu=cris ++ vendor=axis ++ ;; ++ crx-*) ++ os=${os:-elf} ++ ;; ++ neo-tandem) ++ cpu=neo ++ vendor=tandem ++ ;; ++ nse-tandem) ++ cpu=nse ++ vendor=tandem ++ ;; ++ nsr-tandem) ++ cpu=nsr ++ vendor=tandem ++ ;; ++ nsv-tandem) ++ cpu=nsv ++ vendor=tandem ++ ;; ++ nsx-tandem) ++ cpu=nsx ++ vendor=tandem ++ ;; ++ s390-*) ++ cpu=s390 ++ vendor=ibm ++ ;; ++ s390x-*) ++ cpu=s390x ++ vendor=ibm ++ ;; ++ tile*-*) ++ os=${os:-linux-gnu} ++ ;; ++ + *) +- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 ++ # Recognize the canonical CPU types that are allowed with any ++ # 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* \ ++ | avr | avr32 \ ++ | asmjs \ ++ | ba \ ++ | be32 | be64 \ ++ | bfin | bpf | bs2000 \ ++ | 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 | mips64eb | 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 \ ++ | mn10200 | mn10300 \ ++ | moxie \ ++ | mt \ ++ | msp430 \ ++ | nds32 | nds32le | nds32be \ ++ | nfp \ ++ | nios | nios2 | nios2eb | nios2el \ ++ | none | np1 | ns16k | ns32k | nvptx \ ++ | 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 \ ++ | 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 \ ++ | 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 \ ++ | w65 \ ++ | wasm32 | wasm64 \ ++ | 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 + ;; + *) + ;; +@@ -1321,197 +1275,244 @@ + + # Decode manufacturer-specific aliases for certain operating systems. + +-if [ x"$os" != x"" ] ++if [ x$os != x ] + then + case $os in +- # First match some system type aliases +- # that might get confused with valid system types. +- # -solaris* is a basic system type, with this one exception. +- -auroraux) +- os=-auroraux ++ # First match some system type aliases that might get confused ++ # with valid system types. ++ # 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|'` + ;; +- -svr4*) +- os=-sysv4 ++ solaris) ++ os=solaris2 + ;; +- -unixware*) +- os=-sysv4.2uw ++ unixware*) ++ os=sysv4.2uw + ;; +- -gnu/linux*) ++ gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; +- # First accept the basic system types. ++ # es1800 is here to avoid being matched by es* (a different OS) ++ es1800*) ++ os=ose ++ ;; ++ # Some version numbers need modification ++ chorusos*) ++ os=chorusos ++ ;; ++ isc) ++ os=isc2.2 ++ ;; ++ sco6) ++ os=sco5v6 ++ ;; ++ sco5) ++ os=sco3.2v5 ++ ;; ++ sco4) ++ 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. ++ ;; ++ scout) ++ # Don't match below ++ ;; ++ sco*) ++ os=sco3.2v2 ++ ;; ++ psos*) ++ os=psos ++ ;; ++ # 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* | -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* \ +- | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ +- | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ +- | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ +- | -bitrig* | -openbsd* | -solidbsd* \ +- | -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* \ +- | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ +- | -linux-newlib* | -linux-musl* | -linux-uclibc* \ +- | -uxpv* | -beos* | -mpeix* | -udk* \ +- | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ +- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ +- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ +- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ +- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ +- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ +- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) ++ # 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* | twizzler* \ ++ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ ++ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ ++ | knetbsd* | mirbsd* | netbsd* \ ++ | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \ ++ | 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* | amdhsa* | unleashed* | emscripten* | wasi* \ ++ | nsk* | powerunix* | genode*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; +- -qnx*) +- case $basic_machine in +- x86-* | i*86-*) ++ qnx*) ++ case $cpu in ++ x86 | i*86) + ;; + *) +- os=-nto$os ++ os=nto-$os + ;; + esac + ;; +- -nto-qnx*) ++ hiux*) ++ os=hiuxwe2 + ;; +- -nto*) +- os=`echo $os | sed -e 's|nto|nto-qnx|'` ++ nto-qnx*) + ;; +- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ +- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ +- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ++ nto*) ++ os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; +- -mac*) +- os=`echo $os | sed -e 's|mac|macos|'` ++ sim | xray | os68k* | v88r* \ ++ | windows* | osx | abug | netware* | os9* \ ++ | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) + ;; +- -linux-dietlibc) +- os=-linux-dietlibc ++ linux-dietlibc) ++ os=linux-dietlibc + ;; +- -linux*) ++ linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; +- -sunos5*) +- os=`echo $os | sed -e 's|sunos5|solaris2|'` ++ lynx*178) ++ os=lynxos178 ++ ;; ++ lynx*5) ++ os=lynxos5 + ;; +- -sunos6*) +- os=`echo $os | sed -e 's|sunos6|solaris3|'` ++ lynx*) ++ os=lynxos + ;; +- -opened*) +- os=-openedition ++ mac*) ++ os=`echo "$os" | sed -e 's|mac|macos|'` + ;; +- -os400*) +- os=-os400 ++ opened*) ++ os=openedition + ;; +- -wince*) +- os=-wince ++ os400*) ++ os=os400 + ;; +- -osfrose*) +- os=-osfrose ++ sunos5*) ++ os=`echo "$os" | sed -e 's|sunos5|solaris2|'` + ;; +- -osf*) +- os=-osf ++ sunos6*) ++ os=`echo "$os" | sed -e 's|sunos6|solaris3|'` + ;; +- -utek*) +- os=-bsd ++ wince*) ++ os=wince + ;; +- -dynix*) +- os=-bsd ++ utek*) ++ os=bsd + ;; +- -acis*) +- os=-aos ++ dynix*) ++ os=bsd + ;; +- -atheos*) +- os=-atheos ++ acis*) ++ os=aos + ;; +- -syllable*) +- os=-syllable ++ atheos*) ++ os=atheos + ;; +- -386bsd) +- os=-bsd ++ syllable*) ++ os=syllable + ;; +- -ctix* | -uts*) +- os=-sysv ++ 386bsd) ++ os=bsd + ;; +- -nova*) +- os=-rtmk-nova ++ ctix* | uts*) ++ os=sysv + ;; +- -ns2 ) +- os=-nextstep2 ++ nova*) ++ os=rtmk-nova + ;; +- -nsk*) +- os=-nsk ++ ns2) ++ os=nextstep2 + ;; + # Preserve the version number of sinix5. +- -sinix5.*) ++ sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; +- -sinix*) +- os=-sysv4 ++ sinix*) ++ os=sysv4 ++ ;; ++ tpf*) ++ os=tpf ++ ;; ++ triton*) ++ os=sysv3 + ;; +- -tpf*) +- os=-tpf ++ oss*) ++ os=sysv3 + ;; +- -triton*) +- os=-sysv3 ++ svr4*) ++ os=sysv4 + ;; +- -oss*) +- os=-sysv3 ++ svr3) ++ os=sysv3 + ;; +- -svr4) +- os=-sysv4 ++ sysvr4) ++ os=sysv4 + ;; +- -svr3) +- os=-sysv3 ++ # This must come after sysvr4. ++ sysv*) + ;; +- -sysvr4) +- os=-sysv4 ++ ose*) ++ os=ose + ;; +- # This must come after -sysvr4. +- -sysv*) ++ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) ++ os=mint + ;; +- -ose*) +- os=-ose ++ zvmoe) ++ os=zvmoe + ;; +- -es1800*) +- os=-ose ++ dicos*) ++ os=dicos + ;; +- -xenix) +- os=-xenix ++ pikeos*) ++ # Until real need of OS specific support for ++ # particular features comes up, bare metal ++ # configurations are quite functional. ++ case $cpu in ++ arm*) ++ os=eabi + ;; +- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) +- os=-mint ++ *) ++ os=elf + ;; +- -aros*) +- os=-aros ++ esac + ;; +- -zvmoe) +- os=-zvmoe ++ nacl*) + ;; +- -dicos*) +- os=-dicos ++ ios) + ;; +- -nacl*) ++ none) + ;; +- -none) ++ *-eabi) + ;; + *) +- # Get rid of the `-' at the beginning of $os. +- os=`echo $os | sed 's/[^-]*-//'` +- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 ++ echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 + exit 1 + ;; + esac +@@ -1527,261 +1528,265 @@ + # will signal an error saying that MANUFACTURER isn't an operating + # system, and we'll never get to this point. + +-case $basic_machine in ++case $cpu-$vendor in + score-*) +- os=-elf ++ os=elf + ;; + spu-*) +- os=-elf ++ os=elf + ;; + *-acorn) +- os=-riscix1.2 ++ os=riscix1.2 + ;; + arm*-rebel) +- os=-linux ++ os=linux + ;; + arm*-semi) +- os=-aout ++ os=aout + ;; + c4x-* | tic4x-*) +- os=-coff ++ os=coff ++ ;; ++ c8051-*) ++ 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 +- ;; +- or1k-*) +- 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 + ;; +- *-be) +- os=-beos ++ pru-*) ++ os=elf + ;; +- *-haiku) +- os=-haiku ++ *-be) ++ 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 +- ;; +- *-next) +- os=-nextstep3 ++ 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 + fi + + # Here we handle the case where we know the os, and the CPU type, but not the + # manufacturer. We pick the logical manufacturer. +-vendor=unknown +-case $basic_machine in +- *-unknown) ++case $vendor in ++ unknown) + case $os in +- -riscix*) ++ riscix*) + vendor=acorn + ;; +- -sunos*) ++ sunos*) + vendor=sun + ;; +- -cnk*|-aix*) ++ cnk*|-aix*) + vendor=ibm + ;; +- -beos*) ++ beos*) + vendor=be + ;; +- -hpux*) ++ hpux*) + vendor=hp + ;; +- -mpeix*) ++ mpeix*) + vendor=hp + ;; +- -hiux*) ++ hiux*) + vendor=hitachi + ;; +- -unos*) ++ unos*) + vendor=crds + ;; +- -dgux*) ++ dgux*) + vendor=dg + ;; +- -luna*) ++ luna*) + vendor=omron + ;; +- -genix*) ++ genix*) + vendor=ns + ;; +- -mvs* | -opened*) ++ clix*) ++ vendor=intergraph ++ ;; ++ mvs* | opened*) + vendor=ibm + ;; +- -os400*) ++ os400*) + vendor=ibm + ;; +- -ptx*) ++ ptx*) + vendor=sequent + ;; +- -tpf*) ++ tpf*) + vendor=ibm + ;; +- -vxsim* | -vxworks* | -windiss*) ++ vxsim* | vxworks* | windiss*) + vendor=wrs + ;; +- -aux*) ++ aux*) + vendor=apple + ;; +- -hms*) ++ hms*) + vendor=hitachi + ;; +- -mpw* | -macos*) ++ mpw* | macos*) + vendor=apple + ;; +- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) + vendor=atari + ;; +- -vos*) ++ vos*) + vendor=stratus + ;; + esac +- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; + esac + +-echo $basic_machine$os ++echo "$cpu-$vendor-$os" + exit + + # Local variables: +-# eval: (add-hook 'write-file-hooks '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/recipes/libogg/recipe.toml b/recipes/libogg/recipe.toml new file mode 100644 index 0000000000000000000000000000000000000000..593947f58285e376c576676cad20ebfddb53ba41 --- /dev/null +++ b/recipes/libogg/recipe.toml @@ -0,0 +1,9 @@ +[source] +tar = "http://downloads.xiph.org/releases/ogg/libogg-1.3.3.tar.xz" +blake3 = "8220c0e4082fa26c07b10bfe31f641d2e33ebe1d1bb0b20221b7016bc8b78a3a" +patches = [ + "redox.patch" +] + +[build] +template = "configure" diff --git a/recipes/libogg/redox.patch b/recipes/libogg/redox.patch new file mode 100644 index 0000000000000000000000000000000000000000..c07ab514deef0e5006556fde983cb348cab9ca05 --- /dev/null +++ b/recipes/libogg/redox.patch @@ -0,0 +1,2833 @@ +--- source/config.sub 2017-11-07 13:38:55.000000000 -0700 ++++ source-new/config.sub 2020-05-20 15:34:35.000000000 -0600 +@@ -1,8 +1,8 @@ + #! /bin/sh + # Configuration validation subroutine script. +-# Copyright 1992-2016 Free Software Foundation, Inc. ++# Copyright 1992-2020 Free Software Foundation, Inc. + +-timestamp='2016-09-05' ++timestamp='2020-05-04' + + # 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 +@@ -15,7 +15,7 @@ + # General Public License for more details. + # + # You should have received a copy of the GNU General Public License +-# along with this program; if not, see <http://www.gnu.org/licenses/>. ++# along with this program; if not, see <https://www.gnu.org/licenses/>. + # + # As a special exception to the GNU General Public License, if you + # distribute this file as part of a program that contains a +@@ -33,7 +33,7 @@ + # Otherwise, we print the canonical config type on stdout and succeed. + + # You can get the latest version of this script from: +-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub ++# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + + # This file is supposed to be the same for all GNU packages + # and recognize all the CPU types, system types and aliases +@@ -57,7 +57,7 @@ + + Canonicalize a configuration name. + +-Operation modes: ++Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit +@@ -67,7 +67,7 @@ + version="\ + GNU config.sub ($timestamp) + +-Copyright 1992-2016 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." +@@ -89,12 +89,12 @@ + - ) # Use stdin as input. + break ;; + -* ) +- echo "$me: invalid option $1$help" ++ echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. +- echo $1 ++ echo "$1" + exit ;; + + * ) +@@ -110,1242 +110,1164 @@ + exit 1;; + esac + +-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +-# Here we must recognize all the valid KERNEL-OS combinations. +-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` ++# Split fields of configuration type ++# shellcheck disable=SC2162 ++IFS="-" read field1 field2 field3 field4 <<EOF ++$1 ++EOF ++ ++# Separate into logical components for further validation ++case $1 in ++ *-*-*-*-*) ++ echo Invalid configuration \`"$1"\': more than four components >&2 ++ exit 1 ++ ;; ++ *-*-*-*) ++ basic_machine=$field1-$field2 ++ 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* | uclinux-gnu* | kfreebsd*-gnu* | \ +- knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ +- kopensolaris*-gnu* | cloudabi*-eabi* | \ +- storm-chaos* | os2-emx* | rtmk-nova*) +- os=-$maybe_os +- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ++ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ ++ | linux-newlib* | linux-musl* | linux-uclibc* | 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 + ;; + android-linux) +- os=-linux-android +- basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ++ basic_machine=$field1-unknown ++ os=linux-android + ;; + *) +- basic_machine=`echo $1 | sed 's/-[^-]*$//'` +- if [ $basic_machine != $1 ] +- then os=`echo $1 | sed 's/.*-/-/'` +- else os=; fi ++ basic_machine=$field1-$field2 ++ os=$field3 + ;; + esac +- +-### Let's recognize common machines as not being operating systems so +-### that things like config.sub decstation-3100 work. We also +-### recognize some manufacturers as not being operating systems, so we +-### can provide default operating systems below. +-case $os in +- -sun*os*) +- # Prevent following clause from handling this invalid input. + ;; +- -dec* | -mips* | -sequent* | -encore* | -pc532* | -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*) ++ *-*) ++ # A lone config we happen to match not fitting any pattern ++ case $field1-$field2 in ++ decstation-3100) ++ basic_machine=mips-dec + os= +- basic_machine=$1 +- ;; +- -bluegene*) +- os=-cnk + ;; +- -sim | -cisco | -oki | -wec | -winbond) ++ *-*) ++ # 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 ++ os=$field2 ++ ;; ++ # 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 + os= +- basic_machine=$1 +- ;; +- -scout) +- ;; +- -wrs) +- os=-vxworks +- basic_machine=$1 +- ;; +- -chorusos*) +- os=-chorusos +- basic_machine=$1 + ;; +- -chorusrdb) +- os=-chorusrdb +- basic_machine=$1 +- ;; +- -hiux*) +- os=-hiuxwe2 +- ;; +- -sco6) +- os=-sco5v6 +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -sco5) +- os=-sco3.2v5 +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -sco4) +- os=-sco3.2v4 +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -sco3.2.[4-9]*) +- os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -sco3.2v[4-9]*) +- # Don't forget version if it is 3.2v4 or newer. +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -sco5v6*) +- # Don't forget version if it is 3.2v4 or newer. +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -sco*) +- os=-sco3.2v2 +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -udk*) +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -isc) +- os=-isc2.2 +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -clix*) +- basic_machine=clipper-intergraph +- ;; +- -isc*) +- basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` +- ;; +- -lynx*178) +- os=-lynxos178 +- ;; +- -lynx*5) +- os=-lynxos5 +- ;; +- -lynx*) +- os=-lynxos +- ;; +- -ptx*) +- basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` +- ;; +- -windowsnt*) +- os=`echo $os | sed -e 's/windowsnt/winnt/'` +- ;; +- -psos*) +- os=-psos +- ;; +- -mint | -mint[0-9]*) +- basic_machine=m68k-atari +- os=-mint ++ *) ++ basic_machine=$field1 ++ os=$field2 + ;; + esac +- +-# Decode aliases for certain CPU-COMPANY combinations. +-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 | 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 | pdp11 | pj | pjl \ +- | powerpc | powerpc64 | powerpc64le | powerpcle \ +- | 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 \ +- | we32k \ +- | 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 +- ;; +- m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; +- ms1) +- basic_machine=mt-unknown +- ;; +- +- strongarm | thumb | xscale) +- basic_machine=arm-unknown +- ;; +- xgate) +- basic_machine=$basic_machine-unknown +- os=-none +- ;; +- xscaleeb) +- basic_machine=armeb-unknown +- ;; +- +- xscaleel) +- basic_machine=armel-unknown +- ;; +- +- # 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-* | 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-* \ +- | 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-* \ +- | 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 ++ esac + ;; +- # Recognize the various machine names and aliases which stand +- # for a CPU type and a company and sometimes even an OS. ++ *) ++ # Convert single-component short-hands not valid as part of ++ # multi-component configurations. ++ case $field1 in + 386bsd) +- basic_machine=i386-unknown +- os=-bsd +- ;; +- 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) +- basic_machine=m68000-att +- ;; +- 3b*) +- basic_machine=we32k-att ++ basic_machine=i386-pc ++ os=bsd + ;; + a29khif) + basic_machine=a29k-amd +- os=-udi +- ;; +- abacus) +- basic_machine=abacus-unknown ++ os=udi + ;; + adobe68k) + basic_machine=m68010-adobe +- os=-scout ++ os=scout + ;; +- alliant | fx80) ++ alliant) + basic_machine=fx80-alliant ++ os= + ;; + altos | altos3068) + basic_machine=m68k-altos ++ os= + ;; + am29k) + basic_machine=a29k-none +- os=-bsd +- ;; +- amd64) +- basic_machine=x86_64-pc +- ;; +- amd64-*) +- basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=bsd + ;; + amdahl) + basic_machine=580-amdahl +- os=-sysv ++ os=sysv + ;; +- amiga | amiga-*) ++ amiga) + basic_machine=m68k-unknown ++ os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown +- os=-amigaos ++ os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown +- os=-sysv4 ++ os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo +- os=-sysv ++ os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo +- os=-bsd ++ os=bsd + ;; + aros) + basic_machine=i386-pc +- os=-aros +- ;; +- asmjs) +- basic_machine=asmjs-unknown ++ os=aros + ;; + aux) + basic_machine=m68k-apple +- os=-aux ++ os=aux + ;; + balance) + basic_machine=ns32k-sequent +- os=-dynix ++ os=dynix + ;; + blackfin) + basic_machine=bfin-unknown +- os=-linux +- ;; +- blackfin-*) +- basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- bluegene*) +- 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 ++ os=linux + ;; + cegcc) + basic_machine=arm-unknown +- os=-cegcc ++ os=cegcc + ;; + convex-c1) + basic_machine=c1-convex +- os=-bsd ++ os=bsd + ;; + convex-c2) + basic_machine=c2-convex +- os=-bsd ++ os=bsd + ;; + convex-c32) + basic_machine=c32-convex +- os=-bsd ++ os=bsd + ;; + convex-c34) + basic_machine=c34-convex +- os=-bsd ++ os=bsd + ;; + convex-c38) + basic_machine=c38-convex +- os=-bsd ++ os=bsd + ;; +- cray | j90) ++ cray) + basic_machine=j90-cray +- os=-unicos +- ;; +- craynv) +- basic_machine=craynv-cray +- os=-unicosmp +- ;; +- cr16 | cr16-*) +- basic_machine=cr16-unknown +- os=-elf ++ os=unicos + ;; + crds | unos) + basic_machine=m68k-crds ++ os= + ;; +- crisv32 | crisv32-* | etraxfs*) +- basic_machine=crisv32-axis +- ;; +- cris | cris-* | etrax*) +- basic_machine=cris-axis +- ;; +- crx) +- basic_machine=crx-unknown +- os=-elf +- ;; +- da30 | da30-*) ++ da30) + basic_machine=m68k-da30 ++ os= + ;; +- decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) ++ decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec +- ;; +- decsystem10* | dec10*) +- basic_machine=pdp10-dec +- os=-tops10 +- ;; +- decsystem20* | dec20*) +- basic_machine=pdp10-dec +- os=-tops20 +- ;; +- delta | 3300 | motorola-3300 | motorola-delta \ +- | 3300-motorola | delta-motorola) +- basic_machine=m68k-motorola ++ os= + ;; + delta88) + basic_machine=m88k-motorola +- os=-sysv3 ++ os=sysv3 + ;; + dicos) + basic_machine=i686-pc +- os=-dicos ++ os=dicos + ;; + djgpp) + basic_machine=i586-pc +- os=-msdosdjgpp +- ;; +- dpx20 | dpx20-*) +- basic_machine=rs6000-bull +- os=-bosx +- ;; +- dpx2* | dpx2*-bull) +- 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" ++ os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd +- os=-ebmon +- ;; +- elxsi) +- basic_machine=elxsi-elxsi +- os=-bsd +- ;; +- encore | umax | mmax) +- basic_machine=ns32k-encore ++ os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson +- os=-ose +- ;; +- fx2800) +- basic_machine=i860-alliant +- ;; +- genix) +- basic_machine=ns32k-ns ++ os=ose + ;; + gmicro) + basic_machine=tron-gmicro +- os=-sysv ++ os=sysv + ;; + go32) + basic_machine=i386-pc +- os=-go32 +- ;; +- h3050r* | hiux*) +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 ++ os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi +- os=-hms ++ os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi +- os=-xray ++ os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi +- os=-hms ++ os=hms + ;; + harris) + basic_machine=m88k-harris +- os=-sysv3 ++ os=sysv3 + ;; +- hp300-*) ++ hp300 | hp300hpux) + basic_machine=m68k-hp ++ os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp +- os=-bsd +- ;; +- hp300hpux) +- basic_machine=m68k-hp +- os=-hpux +- ;; +- hp3k9[0-9][0-9] | hp9[0-9][0-9]) +- basic_machine=hppa1.0-hp +- ;; +- hp9k2[0-9][0-9] | hp9k31[0-9]) +- basic_machine=m68000-hp +- ;; +- hp9k3[2-9][0-9]) +- basic_machine=m68k-hp +- ;; +- hp9k6[0-9][0-9] | hp6[0-9][0-9]) +- basic_machine=hppa1.0-hp +- ;; +- hp9k7[0-79][0-9] | hp7[0-79][0-9]) +- basic_machine=hppa1.1-hp +- ;; +- hp9k78[0-9] | hp78[0-9]) +- # FIXME: really hppa2.0-hp +- basic_machine=hppa1.1-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 +- ;; +- hp9k8[0-9][13679] | hp8[0-9][13679]) +- basic_machine=hppa1.1-hp +- ;; +- hp9k8[0-9][0-9] | hp8[0-9][0-9]) +- basic_machine=hppa1.0-hp +- ;; +- hppa-next) +- os=-nextstep3 ++ os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp +- os=-osf ++ os=osf + ;; + hppro) + basic_machine=hppa1.1-hp +- os=-proelf +- ;; +- i370-ibm* | ibm*) +- basic_machine=i370-ibm +- ;; +- i*86v32) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv32 +- ;; +- i*86v4*) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv4 +- ;; +- i*86v) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-sysv +- ;; +- i*86sol2) +- basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` +- os=-solaris2 ++ os=proelf + ;; + i386mach) + basic_machine=i386-mach +- os=-mach +- ;; +- i386-vsta | vsta) +- basic_machine=i386-unknown +- os=-vsta +- ;; +- iris | iris4d) +- basic_machine=mips-sgi +- case $os in +- -irix*) +- ;; +- *) +- os=-irix4 +- ;; +- esac ++ os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi +- os=-sysv +- ;; +- leon-*|leon[3-9]-*) +- basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` ++ os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown +- os=-linux +- ;; +- m68knommu-*) +- basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- m88k-omron*) +- basic_machine=m88k-omron ++ os=linux + ;; + magnum | m3230) + basic_machine=mips-mips +- os=-sysv ++ os=sysv + ;; + merlin) + basic_machine=ns32k-utek +- os=-sysv +- ;; +- microblaze*) +- basic_machine=microblaze-xilinx ++ os=sysv + ;; + mingw64) + basic_machine=x86_64-pc +- os=-mingw64 ++ os=mingw64 + ;; + mingw32) + basic_machine=i686-pc +- os=-mingw32 ++ 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/'` +- ;; +- mips3*) +- basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ++ os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k +- os=-coff ++ os=coff + ;; + morphos) + basic_machine=powerpc-unknown +- os=-morphos ++ os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown +- os=-moxiebox ++ os=moxiebox + ;; + msdos) + basic_machine=i386-pc +- os=-msdos +- ;; +- ms1-*) +- basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ++ os=msdos + ;; + msys) + basic_machine=i686-pc +- os=-msys ++ os=msys + ;; + mvs) + basic_machine=i370-ibm +- os=-mvs ++ os=mvs + ;; + nacl) + basic_machine=le32-unknown +- os=-nacl ++ os=nacl + ;; + ncr3000) + basic_machine=i486-ncr +- os=-sysv4 ++ os=sysv4 + ;; + netbsd386) +- basic_machine=i386-unknown +- os=-netbsd ++ basic_machine=i386-pc ++ os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel +- os=-linux ++ os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony +- os=-newsos ++ os=newsos + ;; + news1000) + basic_machine=m68030-sony +- os=-newsos +- ;; +- news-3600 | risc-news) +- basic_machine=mips-sony +- os=-newsos ++ os=newsos + ;; + necv70) + basic_machine=v70-nec +- os=-sysv +- ;; +- next | m*-next ) +- basic_machine=m68k-next +- case $os in +- -nextstep* ) +- ;; +- -ns2*) +- os=-nextstep2 +- ;; +- *) +- os=-nextstep3 +- ;; +- esac ++ os=sysv + ;; + nh3000) + basic_machine=m68k-harris +- os=-cxux ++ os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris +- os=-cxux ++ os=cxux + ;; + nindy960) + basic_machine=i960-intel +- os=-nindy ++ os=nindy + ;; + mon960) + basic_machine=i960-intel +- os=-mon960 ++ 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 +- ;; +- op50n-* | op60c-*) +- basic_machine=hppa1.1-oki +- os=-proelf +- ;; +- openrisc | openrisc-*) +- basic_machine=or32-unknown ++ os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm +- os=-os400 ++ os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson +- os=-ose ++ os=ose + ;; + os68k) + basic_machine=m68k-none +- os=-os68k +- ;; +- pa-hitachi) +- basic_machine=hppa1.1-hitachi +- os=-hiuxwe2 ++ os=os68k + ;; + paragon) + basic_machine=i860-intel +- os=-osf ++ os=osf + ;; + parisc) + basic_machine=hppa-unknown +- os=-linux +- ;; +- parisc-*) +- basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` +- os=-linux +- ;; +- pbd) +- basic_machine=sparc-tti +- ;; +- pbb) +- basic_machine=m68k-tti +- ;; +- pc532 | pc532-*) +- basic_machine=ns32k-pc532 +- ;; +- pc98) +- basic_machine=i386-pc +- ;; +- pc98-*) +- basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentium | p5 | k5 | k6 | nexgen | viac3) +- basic_machine=i586-pc +- ;; +- pentiumpro | p6 | 6x86 | athlon | athlon_*) +- basic_machine=i686-pc +- ;; +- pentiumii | pentium2 | pentiumiii | pentium3) +- basic_machine=i686-pc +- ;; +- pentium4) +- basic_machine=i786-pc +- ;; +- pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) +- basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentiumpro-* | p6-* | 6x86-* | athlon-*) +- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) +- basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pentium4-*) +- basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- pn) +- basic_machine=pn-gould +- ;; +- power) basic_machine=power-ibm +- ;; +- ppc | ppcbe) basic_machine=powerpc-unknown +- ;; +- ppc-* | ppcbe-*) +- basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppcle | powerpclittle) +- basic_machine=powerpcle-unknown +- ;; +- ppcle-* | powerpclittle-*) +- basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppc64) basic_machine=powerpc64-unknown +- ;; +- ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ppc64le | powerpc64little) +- basic_machine=powerpc64le-unknown +- ;; +- ppc64le-* | powerpc64little-*) +- basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` +- ;; +- ps2) +- basic_machine=i386-ibm ++ os=linux + ;; + pw32) + basic_machine=i586-unknown +- os=-pw32 ++ os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc +- os=-rdos ++ os=rdos + ;; + rdos32) + basic_machine=i386-pc +- os=-rdos ++ os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k +- os=-coff +- ;; +- rm[46]00) +- basic_machine=mips-siemens +- ;; +- rtpc | rtpc-*) +- basic_machine=romp-ibm +- ;; +- s390 | s390-*) +- basic_machine=s390-ibm +- ;; +- s390x | s390x-*) +- basic_machine=s390x-ibm ++ os=coff + ;; + sa29200) + basic_machine=a29k-amd +- os=-udi +- ;; +- sb1) +- basic_machine=mipsisa64sb1-unknown +- ;; +- sb1el) +- basic_machine=mipsisa64sb1el-unknown +- ;; +- sde) +- basic_machine=mipsisa32-sde +- os=-elf ++ os=udi + ;; + sei) + basic_machine=mips-sei +- os=-seiux ++ os=seiux + ;; + sequent) + basic_machine=i386-sequent +- ;; +- sh) +- basic_machine=sh-hitachi +- os=-hms +- ;; +- sh5el) +- basic_machine=sh5le-unknown +- ;; +- sh64) +- basic_machine=sh64-unknown +- ;; +- sparclite-wrs | simso-wrs) +- basic_machine=sparclite-wrs +- os=-vxworks ++ os= + ;; + sps7) + basic_machine=m68k-bull +- os=-sysv2 +- ;; +- spur) +- basic_machine=spur-unknown ++ os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem ++ os= + ;; + stratus) + basic_machine=i860-stratus +- os=-sysv4 +- ;; +- strongarm-* | thumb-*) +- basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ++ os=sysv4 + ;; + sun2) + basic_machine=m68000-sun ++ os= + ;; + sun2os3) + basic_machine=m68000-sun +- os=-sunos3 ++ os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun +- os=-sunos4 ++ os=sunos4 ++ ;; ++ sun3) ++ basic_machine=m68k-sun ++ os= + ;; + sun3os3) + basic_machine=m68k-sun +- os=-sunos3 ++ os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun +- os=-sunos4 ++ os=sunos4 ++ ;; ++ sun4) ++ basic_machine=sparc-sun ++ os= + ;; + sun4os3) + basic_machine=sparc-sun +- os=-sunos3 ++ os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun +- os=-sunos4 ++ os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun +- os=-solaris2 +- ;; +- sun3 | sun3-*) +- basic_machine=m68k-sun +- ;; +- sun4) +- basic_machine=sparc-sun ++ os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun ++ os= + ;; + sv1) + basic_machine=sv1-cray +- os=-unicos ++ os=unicos + ;; + symmetry) + basic_machine=i386-sequent +- os=-dynix ++ os=dynix + ;; + t3e) + basic_machine=alphaev5-cray +- os=-unicos ++ os=unicos + ;; + t90) + basic_machine=t90-cray +- os=-unicos +- ;; +- tile*) +- basic_machine=$basic_machine-unknown +- os=-linux-gnu +- ;; +- tx39) +- basic_machine=mipstx39-unknown +- ;; +- tx39el) +- basic_machine=mipstx39el-unknown ++ os=unicos + ;; + toad1) + basic_machine=pdp10-xkl +- os=-tops20 +- ;; +- tower | tower-32) +- basic_machine=m68k-ncr ++ os=tops20 + ;; + tpf) + basic_machine=s390x-ibm +- os=-tpf ++ os=tpf + ;; + udi29k) + basic_machine=a29k-amd +- os=-udi ++ os=udi + ;; + ultra3) + basic_machine=a29k-nyu +- os=-sym1 ++ os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec +- os=-none ++ os=none + ;; + vaxv) + basic_machine=vax-dec +- os=-sysv ++ os=sysv + ;; + vms) + basic_machine=vax-dec +- os=-vms ++ os=vms + ;; +- vpp*|vx|vx-*) +- basic_machine=f301-fujitsu ++ vsta) ++ basic_machine=i386-pc ++ os=vsta + ;; + vxworks960) + basic_machine=i960-wrs +- os=-vxworks ++ os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs +- os=-vxworks ++ os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs +- os=-vxworks +- ;; +- w65*) +- basic_machine=w65-wdc +- os=-none +- ;; +- w89k-*) +- basic_machine=hppa1.1-winbond +- os=-proelf ++ os=vxworks + ;; + xbox) + basic_machine=i686-pc +- os=-mingw32 +- ;; +- xps | xps100) +- basic_machine=xps100-honeywell +- ;; +- xscale-* | xscalee[bl]-*) +- basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ++ os=mingw32 + ;; + ymp) + basic_machine=ymp-cray +- os=-unicos ++ os=unicos + ;; +- z8k-*-coff) +- basic_machine=z8k-unknown +- os=-sim +- ;; +- z80-*-coff) +- basic_machine=z80-unknown +- os=-sim ++ *) ++ basic_machine=$1 ++ os= + ;; +- none) +- basic_machine=none-none +- os=-none ++ esac + ;; ++esac + ++# Decode 1-component or ad-hoc basic machines ++case $basic_machine in + # 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) +- basic_machine=hppa1.1-winbond ++ cpu=hppa1.1 ++ vendor=winbond + ;; + op50n) +- basic_machine=hppa1.1-oki ++ cpu=hppa1.1 ++ vendor=oki + ;; + op60c) +- basic_machine=hppa1.1-oki ++ cpu=hppa1.1 ++ vendor=oki + ;; +- romp) +- basic_machine=romp-ibm ++ ibm*) ++ cpu=i370 ++ vendor=ibm + ;; +- mmix) +- basic_machine=mmix-knuth ++ orion105) ++ cpu=clipper ++ vendor=highlevel + ;; +- rs6000) +- basic_machine=rs6000-ibm ++ mac | mpw | mac-mpw) ++ cpu=m68k ++ vendor=apple + ;; +- vax) +- basic_machine=vax-dec ++ pmac | pmac-mpw) ++ cpu=powerpc ++ vendor=apple + ;; +- pdp10) +- # there are many clones, so DEC is not a safe bet +- basic_machine=pdp10-unknown ++ ++ # Recognize the various machine names and aliases which stand ++ # for a CPU type and a company and sometimes even an OS. ++ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) ++ cpu=m68000 ++ vendor=att + ;; +- pdp11) +- basic_machine=pdp11-dec ++ 3b*) ++ cpu=we32k ++ vendor=att + ;; +- we32k) +- basic_machine=we32k-att ++ bluegene*) ++ cpu=powerpc ++ vendor=ibm ++ os=cnk + ;; +- sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) +- basic_machine=sh-unknown ++ decsystem10* | dec10*) ++ cpu=pdp10 ++ vendor=dec ++ os=tops10 + ;; +- sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) +- basic_machine=sparc-sun ++ decsystem20* | dec20*) ++ cpu=pdp10 ++ vendor=dec ++ os=tops20 + ;; +- cydra) +- basic_machine=cydra-cydrome ++ delta | 3300 | motorola-3300 | motorola-delta \ ++ | 3300-motorola | delta-motorola) ++ cpu=m68k ++ vendor=motorola + ;; +- orion) +- basic_machine=orion-highlevel ++ dpx2*) ++ cpu=m68k ++ vendor=bull ++ os=sysv3 + ;; +- orion105) +- basic_machine=clipper-highlevel ++ encore | umax | mmax) ++ cpu=ns32k ++ vendor=encore + ;; +- mac | mpw | mac-mpw) +- basic_machine=m68k-apple ++ elxsi) ++ cpu=elxsi ++ vendor=elxsi ++ os=${os:-bsd} + ;; +- pmac | pmac-mpw) +- basic_machine=powerpc-apple ++ fx2800) ++ cpu=i860 ++ vendor=alliant ++ ;; ++ genix) ++ cpu=ns32k ++ vendor=ns ++ ;; ++ h3050r* | hiux*) ++ cpu=hppa1.1 ++ vendor=hitachi ++ os=hiuxwe2 ++ ;; ++ hp3k9[0-9][0-9] | hp9[0-9][0-9]) ++ cpu=hppa1.0 ++ vendor=hp ++ ;; ++ hp9k2[0-9][0-9] | hp9k31[0-9]) ++ cpu=m68000 ++ vendor=hp ++ ;; ++ hp9k3[2-9][0-9]) ++ cpu=m68k ++ vendor=hp ++ ;; ++ hp9k6[0-9][0-9] | hp6[0-9][0-9]) ++ cpu=hppa1.0 ++ vendor=hp ++ ;; ++ hp9k7[0-79][0-9] | hp7[0-79][0-9]) ++ cpu=hppa1.1 ++ vendor=hp ++ ;; ++ hp9k78[0-9] | hp78[0-9]) ++ # FIXME: really hppa2.0-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 ++ cpu=hppa1.1 ++ vendor=hp ++ ;; ++ hp9k8[0-9][13679] | hp8[0-9][13679]) ++ cpu=hppa1.1 ++ vendor=hp ++ ;; ++ hp9k8[0-9][0-9] | hp8[0-9][0-9]) ++ cpu=hppa1.0 ++ vendor=hp ++ ;; ++ i*86v32) ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ os=sysv32 ++ ;; ++ i*86v4*) ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ os=sysv4 ++ ;; ++ i*86v) ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ os=sysv ++ ;; ++ i*86sol2) ++ cpu=`echo "$1" | sed -e 's/86.*/86/'` ++ vendor=pc ++ os=solaris2 ++ ;; ++ j90 | j90-cray) ++ cpu=j90 ++ vendor=cray ++ os=${os:-unicos} ++ ;; ++ iris | iris4d) ++ cpu=mips ++ vendor=sgi ++ case $os in ++ irix*) ++ ;; ++ *) ++ os=irix4 ++ ;; ++ esac ++ ;; ++ miniframe) ++ cpu=m68000 ++ vendor=convergent ++ ;; ++ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) ++ cpu=m68k ++ vendor=atari ++ os=mint ++ ;; ++ news-3600 | risc-news) ++ cpu=mips ++ vendor=sony ++ os=newsos ++ ;; ++ next | m*-next) ++ cpu=m68k ++ vendor=next ++ case $os in ++ openstep*) ++ ;; ++ nextstep*) + ;; +- *-unknown) +- # Make sure to match an already-canonicalized machine name. ++ ns2*) ++ os=nextstep2 + ;; + *) +- echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 ++ os=nextstep3 ++ ;; ++ esac ++ ;; ++ np1) ++ cpu=np1 ++ vendor=gould ++ ;; ++ op50n-* | op60c-*) ++ cpu=hppa1.1 ++ vendor=oki ++ os=proelf ++ ;; ++ pa-hitachi) ++ cpu=hppa1.1 ++ vendor=hitachi ++ os=hiuxwe2 ++ ;; ++ pbd) ++ cpu=sparc ++ vendor=tti ++ ;; ++ pbb) ++ cpu=m68k ++ vendor=tti ++ ;; ++ pc532) ++ cpu=ns32k ++ vendor=pc532 ++ ;; ++ pn) ++ cpu=pn ++ vendor=gould ++ ;; ++ power) ++ cpu=power ++ vendor=ibm ++ ;; ++ ps2) ++ cpu=i386 ++ vendor=ibm ++ ;; ++ rm[46]00) ++ cpu=mips ++ vendor=siemens ++ ;; ++ rtpc | rtpc-*) ++ cpu=romp ++ vendor=ibm ++ ;; ++ sde) ++ cpu=mipsisa32 ++ vendor=sde ++ os=${os:-elf} ++ ;; ++ simso-wrs) ++ cpu=sparclite ++ vendor=wrs ++ os=vxworks ++ ;; ++ tower | tower-32) ++ cpu=m68k ++ vendor=ncr ++ ;; ++ vpp*|vx|vx-*) ++ cpu=f301 ++ vendor=fujitsu ++ ;; ++ w65) ++ cpu=w65 ++ vendor=wdc ++ ;; ++ w89k-*) ++ cpu=hppa1.1 ++ vendor=winbond ++ os=proelf ++ ;; ++ none) ++ cpu=none ++ vendor=none ++ ;; ++ leon|leon[3-9]) ++ cpu=sparc ++ vendor=$basic_machine ++ ;; ++ leon-*|leon[3-9]-*) ++ cpu=sparc ++ vendor=`echo "$basic_machine" | sed 's/-.*//'` ++ ;; ++ ++ *-*) ++ # shellcheck disable=SC2162 ++ IFS="-" read cpu vendor <<EOF ++$basic_machine ++EOF ++ ;; ++ # 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) ++ cpu=$basic_machine ++ vendor=pc ++ ;; ++ # These rules are duplicated from below for sake of the special case above; ++ # i.e. things that normalized to x86 arches should also default to "pc" ++ pc98) ++ cpu=i386 ++ vendor=pc ++ ;; ++ x64 | amd64) ++ cpu=x86_64 ++ vendor=pc ++ ;; ++ # Recognize the basic CPU types without company name. ++ *) ++ cpu=$basic_machine ++ vendor=unknown ++ ;; ++esac ++ ++unset -v basic_machine ++ ++# Decode basic machines in the full and proper CPU-Company form. ++case $cpu-$vendor in ++ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in ++ # some cases the only manufacturer, in others, it is the most popular. ++ craynv-unknown) ++ vendor=cray ++ os=${os:-unicosmp} ++ ;; ++ c90-unknown | c90-cray) ++ vendor=cray ++ os=${os:-unicos} ++ ;; ++ fx80-unknown) ++ vendor=alliant ++ ;; ++ romp-unknown) ++ vendor=ibm ++ ;; ++ mmix-unknown) ++ vendor=knuth ++ ;; ++ microblaze-unknown | microblazeel-unknown) ++ vendor=xilinx ++ ;; ++ rs6000-unknown) ++ vendor=ibm ++ ;; ++ vax-unknown) ++ vendor=dec ++ ;; ++ pdp11-unknown) ++ vendor=dec ++ ;; ++ we32k-unknown) ++ vendor=att ++ ;; ++ cydra-unknown) ++ vendor=cydrome ++ ;; ++ i370-ibm*) ++ vendor=ibm ++ ;; ++ orion-unknown) ++ vendor=highlevel ++ ;; ++ xps-unknown | xps100-unknown) ++ cpu=xps100 ++ vendor=honeywell ++ ;; ++ ++ # Here we normalize CPU types with a missing or matching vendor ++ dpx20-unknown | dpx20-bull) ++ cpu=rs6000 ++ vendor=bull ++ os=${os:-bosx} ++ ;; ++ ++ # Here we normalize CPU types irrespective of the vendor ++ amd64-*) ++ cpu=x86_64 ++ ;; ++ blackfin-*) ++ cpu=bfin ++ os=linux ++ ;; ++ c54x-*) ++ cpu=tic54x ++ ;; ++ c55x-*) ++ cpu=tic55x ++ ;; ++ c6x-*) ++ cpu=tic6x ++ ;; ++ e500v[12]-*) ++ cpu=powerpc ++ os=$os"spe" ++ ;; ++ mips3*-*) ++ cpu=mips64 ++ ;; ++ ms1-*) ++ cpu=mt ++ ;; ++ m68knommu-*) ++ cpu=m68k ++ os=linux ++ ;; ++ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) ++ cpu=s12z ++ ;; ++ openrisc-*) ++ cpu=or32 ++ ;; ++ parisc-*) ++ cpu=hppa ++ os=linux ++ ;; ++ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) ++ cpu=i586 ++ ;; ++ pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) ++ cpu=i686 ++ ;; ++ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) ++ cpu=i686 ++ ;; ++ pentium4-*) ++ cpu=i786 ++ ;; ++ pc98-*) ++ cpu=i386 ++ ;; ++ ppc-* | ppcbe-*) ++ cpu=powerpc ++ ;; ++ ppcle-* | powerpclittle-*) ++ cpu=powerpcle ++ ;; ++ ppc64-*) ++ cpu=powerpc64 ++ ;; ++ ppc64le-* | powerpc64little-*) ++ cpu=powerpc64le ++ ;; ++ sb1-*) ++ cpu=mipsisa64sb1 ++ ;; ++ sb1el-*) ++ cpu=mipsisa64sb1el ++ ;; ++ sh5e[lb]-*) ++ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` ++ ;; ++ spur-*) ++ cpu=spur ++ ;; ++ strongarm-* | thumb-*) ++ cpu=arm ++ ;; ++ tx39-*) ++ cpu=mipstx39 ++ ;; ++ tx39el-*) ++ cpu=mipstx39el ++ ;; ++ x64-*) ++ cpu=x86_64 ++ ;; ++ xscale-* | xscalee[bl]-*) ++ cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ++ ;; ++ ++ # Recognize the canonical CPU Types that limit and/or modify the ++ # company names they are paired with. ++ cr16-*) ++ os=${os:-elf} ++ ;; ++ crisv32-* | etraxfs*-*) ++ cpu=crisv32 ++ vendor=axis ++ ;; ++ cris-* | etrax*-*) ++ cpu=cris ++ vendor=axis ++ ;; ++ crx-*) ++ os=${os:-elf} ++ ;; ++ neo-tandem) ++ cpu=neo ++ vendor=tandem ++ ;; ++ nse-tandem) ++ cpu=nse ++ vendor=tandem ++ ;; ++ nsr-tandem) ++ cpu=nsr ++ vendor=tandem ++ ;; ++ nsv-tandem) ++ cpu=nsv ++ vendor=tandem ++ ;; ++ nsx-tandem) ++ cpu=nsx ++ vendor=tandem ++ ;; ++ s390-*) ++ cpu=s390 ++ vendor=ibm ++ ;; ++ s390x-*) ++ cpu=s390x ++ vendor=ibm ++ ;; ++ tile*-*) ++ os=${os:-linux-gnu} ++ ;; ++ ++ *) ++ # Recognize the canonical CPU types that are allowed with any ++ # 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* \ ++ | avr | avr32 \ ++ | asmjs \ ++ | ba \ ++ | be32 | be64 \ ++ | bfin | bpf | bs2000 \ ++ | 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 | mips64eb | 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 \ ++ | mn10200 | mn10300 \ ++ | moxie \ ++ | mt \ ++ | msp430 \ ++ | nds32 | nds32le | nds32be \ ++ | nfp \ ++ | nios | nios2 | nios2eb | nios2el \ ++ | none | np1 | ns16k | ns32k | nvptx \ ++ | 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 \ ++ | 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 \ ++ | 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 \ ++ | w65 \ ++ | wasm32 | wasm64 \ ++ | 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 + ;; + *) + ;; +@@ -1353,200 +1275,244 @@ + + # Decode manufacturer-specific aliases for certain operating systems. + +-if [ x"$os" != x"" ] ++if [ x$os != x ] + then + case $os in +- # First match some system type aliases +- # that might get confused with valid system types. +- # -solaris* is a basic system type, with this one exception. +- -auroraux) +- os=-auroraux ++ # First match some system type aliases that might get confused ++ # with valid system types. ++ # 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|'` + ;; +- -svr4*) +- os=-sysv4 ++ solaris) ++ os=solaris2 + ;; +- -unixware*) +- os=-sysv4.2uw ++ unixware*) ++ os=sysv4.2uw + ;; +- -gnu/linux*) ++ gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; +- # First accept the basic system types. ++ # es1800 is here to avoid being matched by es* (a different OS) ++ es1800*) ++ os=ose ++ ;; ++ # Some version numbers need modification ++ chorusos*) ++ os=chorusos ++ ;; ++ isc) ++ os=isc2.2 ++ ;; ++ sco6) ++ os=sco5v6 ++ ;; ++ sco5) ++ os=sco3.2v5 ++ ;; ++ sco4) ++ 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. ++ ;; ++ scout) ++ # Don't match below ++ ;; ++ sco*) ++ os=sco3.2v2 ++ ;; ++ psos*) ++ os=psos ++ ;; ++ # 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* | -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* | -386bsd* | -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* \ +- | -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* | -opened* \ +- | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ +- | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ +- | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ +- | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ +- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ +- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ +- | -onefs* | -tirtos* | -phoenix*) ++ # 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* | twizzler* \ ++ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ ++ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ ++ | knetbsd* | mirbsd* | netbsd* \ ++ | bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \ ++ | 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* | amdhsa* | unleashed* | emscripten* | wasi* \ ++ | nsk* | powerunix* | genode*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; +- -qnx*) +- case $basic_machine in +- x86-* | i*86-*) ++ qnx*) ++ case $cpu in ++ x86 | i*86) + ;; + *) +- os=-nto$os ++ os=nto-$os + ;; + esac + ;; +- -nto-qnx*) ++ hiux*) ++ os=hiuxwe2 + ;; +- -nto*) +- os=`echo $os | sed -e 's|nto|nto-qnx|'` ++ nto-qnx*) + ;; +- -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ +- | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ +- | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ++ nto*) ++ os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; +- -mac*) +- os=`echo $os | sed -e 's|mac|macos|'` ++ sim | xray | os68k* | v88r* \ ++ | windows* | osx | abug | netware* | os9* \ ++ | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) + ;; +- -linux-dietlibc) +- os=-linux-dietlibc ++ linux-dietlibc) ++ os=linux-dietlibc + ;; +- -linux*) ++ linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; +- -sunos5*) +- os=`echo $os | sed -e 's|sunos5|solaris2|'` ++ lynx*178) ++ os=lynxos178 + ;; +- -sunos6*) +- os=`echo $os | sed -e 's|sunos6|solaris3|'` ++ lynx*5) ++ os=lynxos5 + ;; +- -opened*) +- os=-openedition ++ lynx*) ++ os=lynxos + ;; +- -os400*) +- os=-os400 ++ mac*) ++ os=`echo "$os" | sed -e 's|mac|macos|'` + ;; +- -wince*) +- os=-wince ++ opened*) ++ os=openedition + ;; +- -osfrose*) +- os=-osfrose ++ os400*) ++ os=os400 + ;; +- -osf*) +- os=-osf ++ sunos5*) ++ os=`echo "$os" | sed -e 's|sunos5|solaris2|'` + ;; +- -utek*) +- os=-bsd ++ sunos6*) ++ os=`echo "$os" | sed -e 's|sunos6|solaris3|'` + ;; +- -dynix*) +- os=-bsd ++ wince*) ++ os=wince + ;; +- -acis*) +- os=-aos ++ utek*) ++ os=bsd + ;; +- -atheos*) +- os=-atheos ++ dynix*) ++ os=bsd + ;; +- -syllable*) +- os=-syllable ++ acis*) ++ os=aos + ;; +- -386bsd) +- os=-bsd ++ atheos*) ++ os=atheos + ;; +- -ctix* | -uts*) +- os=-sysv ++ syllable*) ++ os=syllable + ;; +- -nova*) +- os=-rtmk-nova ++ 386bsd) ++ os=bsd + ;; +- -ns2 ) +- os=-nextstep2 ++ ctix* | uts*) ++ os=sysv + ;; +- -nsk*) +- os=-nsk ++ nova*) ++ os=rtmk-nova ++ ;; ++ ns2) ++ os=nextstep2 + ;; + # Preserve the version number of sinix5. +- -sinix5.*) ++ sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; +- -sinix*) +- os=-sysv4 ++ sinix*) ++ os=sysv4 + ;; +- -tpf*) +- os=-tpf ++ tpf*) ++ os=tpf + ;; +- -triton*) +- os=-sysv3 ++ triton*) ++ os=sysv3 + ;; +- -oss*) +- os=-sysv3 ++ oss*) ++ os=sysv3 + ;; +- -svr4) +- os=-sysv4 ++ svr4*) ++ os=sysv4 + ;; +- -svr3) +- os=-sysv3 ++ svr3) ++ os=sysv3 + ;; +- -sysvr4) +- os=-sysv4 ++ sysvr4) ++ os=sysv4 + ;; +- # This must come after -sysvr4. +- -sysv*) ++ # This must come after sysvr4. ++ sysv*) + ;; +- -ose*) +- os=-ose ++ ose*) ++ os=ose + ;; +- -es1800*) +- os=-ose ++ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) ++ os=mint + ;; +- -xenix) +- os=-xenix ++ zvmoe) ++ os=zvmoe + ;; +- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) +- os=-mint ++ dicos*) ++ os=dicos + ;; +- -aros*) +- os=-aros ++ pikeos*) ++ # Until real need of OS specific support for ++ # particular features comes up, bare metal ++ # configurations are quite functional. ++ case $cpu in ++ arm*) ++ os=eabi + ;; +- -zvmoe) +- os=-zvmoe ++ *) ++ os=elf + ;; +- -dicos*) +- os=-dicos ++ esac + ;; +- -nacl*) ++ nacl*) + ;; +- -ios) ++ ios) ++ ;; ++ none) + ;; +- -none) ++ *-eabi) + ;; + *) +- # Get rid of the `-' at the beginning of $os. +- os=`echo $os | sed 's/[^-]*-//'` +- echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 ++ echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 + exit 1 + ;; + esac +@@ -1562,261 +1528,265 @@ + # will signal an error saying that MANUFACTURER isn't an operating + # system, and we'll never get to this point. + +-case $basic_machine in ++case $cpu-$vendor in + score-*) +- os=-elf ++ os=elf + ;; + spu-*) +- os=-elf ++ os=elf + ;; + *-acorn) +- os=-riscix1.2 ++ os=riscix1.2 + ;; + arm*-rebel) +- os=-linux ++ os=linux + ;; + arm*-semi) +- 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 + ;; +- *-be) +- os=-beos ++ pru-*) ++ os=elf + ;; +- *-haiku) +- os=-haiku ++ *-be) ++ 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 +- ;; +- *-next) +- os=-nextstep3 ++ 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 + fi + + # Here we handle the case where we know the os, and the CPU type, but not the + # manufacturer. We pick the logical manufacturer. +-vendor=unknown +-case $basic_machine in +- *-unknown) ++case $vendor in ++ unknown) + case $os in +- -riscix*) ++ riscix*) + vendor=acorn + ;; +- -sunos*) ++ sunos*) + vendor=sun + ;; +- -cnk*|-aix*) ++ cnk*|-aix*) + vendor=ibm + ;; +- -beos*) ++ beos*) + vendor=be + ;; +- -hpux*) ++ hpux*) + vendor=hp + ;; +- -mpeix*) ++ mpeix*) + vendor=hp + ;; +- -hiux*) ++ hiux*) + vendor=hitachi + ;; +- -unos*) ++ unos*) + vendor=crds + ;; +- -dgux*) ++ dgux*) + vendor=dg + ;; +- -luna*) ++ luna*) + vendor=omron + ;; +- -genix*) ++ genix*) + vendor=ns + ;; +- -mvs* | -opened*) ++ clix*) ++ vendor=intergraph ++ ;; ++ mvs* | opened*) + vendor=ibm + ;; +- -os400*) ++ os400*) + vendor=ibm + ;; +- -ptx*) ++ ptx*) + vendor=sequent + ;; +- -tpf*) ++ tpf*) + vendor=ibm + ;; +- -vxsim* | -vxworks* | -windiss*) ++ vxsim* | vxworks* | windiss*) + vendor=wrs + ;; +- -aux*) ++ aux*) + vendor=apple + ;; +- -hms*) ++ hms*) + vendor=hitachi + ;; +- -mpw* | -macos*) ++ mpw* | macos*) + vendor=apple + ;; +- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) ++ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) + vendor=atari + ;; +- -vos*) ++ vos*) + vendor=stratus + ;; + esac +- basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; + esac + +-echo $basic_machine$os ++echo "$cpu-$vendor-$os" + exit + + # Local variables: +-# eval: (add-hook 'write-file-hooks '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/recipes/pcre/recipe.toml b/recipes/pcre/recipe.toml new file mode 100644 index 0000000000000000000000000000000000000000..ebde0bd04a70d0452d08f50ec5b57d6f054b5bbd --- /dev/null +++ b/recipes/pcre/recipe.toml @@ -0,0 +1,8 @@ +[source] +tar = "https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.bz2" +patches = [ + "redox.patch" +] + +[build] +template = "configure" diff --git a/src/bin/cook.rs b/src/bin/cook.rs index 06edae0c479bd2bab313a7aa90d2262ef68db09b..e0ab5a4f408be398276b8ab9a842c487c84bb98d 100644 --- a/src/bin/cook.rs +++ b/src/bin/cook.rs @@ -58,6 +58,48 @@ fn run_command(mut command: process::Command) -> Result<(), String> { Ok(()) } +fn run_command_stdin(mut command: process::Command, stdin_data: &[u8]) -> Result<(), String> { + command.stdin(Stdio::piped()); + + let mut child = command.spawn().map_err(|err| format!( + "failed to spawn {:?}: {}\n{:#?}", + command, + err, + err + ))?; + + if let Some(ref mut stdin) = child.stdin { + stdin.write_all(stdin_data).map_err(|err| format!( + "failed to write stdin of {:?}: {}\n{:#?}", + command, + err, + err + ))?; + } else { + return Err(format!( + "failed to find stdin of {:?}", + command + )); + } + + let status = child.wait().map_err(|err| format!( + "failed to run {:?}: {}\n{:#?}", + command, + err, + err + ))?; + + if ! status.success() { + return Err(format!( + "failed to run {:?}: exited with status {}", + command, + status + )); + } + + Ok(()) +} + fn fetch(recipe_dir: &Path, source: &SourceRecipe) -> Result<PathBuf, String> { let source_dir = recipe_dir.join("source"); match source { @@ -73,7 +115,7 @@ fn fetch(recipe_dir: &Path, source: &SourceRecipe) -> Result<PathBuf, String> { if let Some(branch) = branch { command.arg("--branch").arg(&branch); } - command.arg(&source_dir); + command.arg(&source_dir_tmp); run_command(command)?; // Move source.tmp to source atomically @@ -221,43 +263,7 @@ fn fetch(recipe_dir: &Path, source: &SourceRecipe) -> Result<PathBuf, String> { let mut command = Command::new("patch"); command.arg("--directory").arg(&source_dir_tmp); command.arg("--strip=1"); - command.stdin(Stdio::piped()); - - let mut child = command.spawn().map_err(|err| format!( - "failed to spawn {:?}: {}\n{:#?}", - command, - err, - err - ))?; - - if let Some(ref mut stdin) = child.stdin { - stdin.write_all(patch.as_bytes()).map_err(|err| format!( - "failed to write stdin of {:?}: {}\n{:#?}", - command, - err, - err - ))?; - } else { - return Err(format!( - "failed to find stdin of {:?}", - command - )); - } - - let status = child.wait().map_err(|err| format!( - "failed to run {:?}: {}\n{:#?}", - command, - err, - err - ))?; - - if ! status.success() { - return Err(format!( - "failed to run {:?}: exited with status {}", - command, - status - )); - } + run_command_stdin(command, patch.as_bytes())?; } // Move source.tmp to source atomically @@ -269,6 +275,83 @@ fn fetch(recipe_dir: &Path, source: &SourceRecipe) -> Result<PathBuf, String> { Ok(source_dir) } +fn build(recipe_dir: &Path, source_dir: &Path, build: &BuildRecipe) -> Result<PathBuf, String> { + let stage_dir = recipe_dir.join("stage"); + if ! stage_dir.is_dir() { + // Create stage.tmp + let stage_dir_tmp = recipe_dir.join("stage.tmp"); + create_dir_clean(&stage_dir_tmp)?; + + // Create build, if it does not exist + //TODO: flag for clean builds where build is wiped out + let build_dir = recipe_dir.join("build"); + if ! build_dir.is_dir() { + create_dir_clean(&build_dir)?; + } + + //TODO: better integration with redoxer (library instead of binary) + //TODO: configurable target + match build { + BuildRecipe::Cargo => { + let mut command = Command::new("redoxer"); + command.arg("install"); + //TODO: --debug if desired + command.arg("--path").arg(&source_dir); + command.arg("--root").arg(&stage_dir_tmp); + command.env("CARGO_TARGET_DIR", &build_dir); + run_command(command)?; + }, + BuildRecipe::Configure => { + //TODO: Add more configurability, convert script to Rust + let mut command = Command::new("redoxer"); + command.arg("env"); + command.arg("bash").arg("-ex"); + //TODO: remove unwraps + command.env("COOKBOOK_STAGE", &stage_dir_tmp.canonicalize().unwrap()); + command.env("COOKBOOK_SOURCE", &source_dir.canonicalize().unwrap()); + command.current_dir(&build_dir); + run_command_stdin(command, r#" + export LDFLAGS="--static" + "${COOKBOOK_SOURCE}/configure" \ + --host="${TARGET}" \ + --prefix="" \ + --disable-shared \ + --enable-static + make -j "$(nproc)" + make install DESTDIR="${COOKBOOK_STAGE}" + + # Strip binaries + if [ -d "${COOKBOOK_STAGE}/bin" ] + then + find "${COOKBOOK_STAGE}/bin" -type f -exec "${TARGET}-strip" -v {} ';' + fi + + # Remove libtool files + if [ -d "${COOKBOOK_STAGE}/lib" ] + then + find "${COOKBOOK_STAGE}/lib" -type f -name '*.la' -exec rm -fv {} ';' + fi + "#.as_bytes())?; + }, + BuildRecipe::Custom { script } => { + let mut command = Command::new("redoxer"); + command.arg("env"); + command.arg("bash").arg("-ex"); + //TODO: remove unwraps + command.env("COOKBOOK_STAGE", &stage_dir_tmp.canonicalize().unwrap()); + command.env("COOKBOOK_SOURCE", &source_dir.canonicalize().unwrap()); + command.current_dir(&build_dir); + run_command_stdin(command, script.as_bytes())?; + }, + } + + // Move stage.tmp to stage atomically + rename(&stage_dir_tmp, &stage_dir)?; + } + + Ok(stage_dir) +} + fn cook(recipe_name: &str) -> Result<(), String> { //TODO: sanitize recipe name? let recipe_dir = Path::new("recipes").join(recipe_name); @@ -306,6 +389,11 @@ fn cook(recipe_name: &str) -> Result<(), String> { err ))?; + let stage_dir = build(&recipe_dir, &source_dir, &recipe.build).map_err(|err| format!( + "failed to build: {}", + err + ))?; + Ok(()) } diff --git a/src/recipe.rs b/src/recipe.rs index da6db88aa0db0094635b7d8a21b38f408ba3c8f1..0fee27d36aa7ec1fca82b7a9de876f05c4c40eef 100644 --- a/src/recipe.rs +++ b/src/recipe.rs @@ -39,6 +39,9 @@ pub enum BuildRecipe { /// Will build and install using cargo #[serde(rename = "cargo")] Cargo, + /// Will build and install using configure and make + #[serde(rename = "configure")] + Configure, /// Will build and install using custom commands #[serde(rename = "custom")] Custom {