diff options
Diffstat (limited to 'vendor/gmp-6.3.0/config.sub')
-rwxr-xr-x | vendor/gmp-6.3.0/config.sub | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/vendor/gmp-6.3.0/config.sub b/vendor/gmp-6.3.0/config.sub new file mode 100755 index 0000000..7da560e --- /dev/null +++ b/vendor/gmp-6.3.0/config.sub @@ -0,0 +1,165 @@ +#! /bin/sh +# +# GMP config.sub wrapper. + + +# Copyright 2000-2003, 2006, 2009-2016 Free Software Foundation, Inc. +# +# This file is part of the GNU MP Library. +# +# The GNU MP Library is free software; you can redistribute it and/or modify +# it under the terms of either: +# +# * the GNU Lesser General Public License as published by the Free +# Software Foundation; either version 3 of the License, or (at your +# option) any later version. +# +# or +# +# * the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any +# later version. +# +# or both in parallel, as here. +# +# The GNU MP Library is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received copies of the GNU General Public License and the +# GNU Lesser General Public License along with the GNU MP Library. If not, +# see https://www.gnu.org/licenses/. + + +# Usage: config.sub CPU-VENDOR-OS +# config.sub ALIAS +# +# Validate and canonicalize the given configuration name, with special +# handling for GMP extra CPU names. +# +# When the CPU isn't special the whole name is simply passed straight +# through to configfsf.sub. +# +# When the CPU is a GMP extra, configfsf.sub is run on a similar CPU that it +# will recognise. For example "athlon-pc-freebsd3.5" is validated using +# "i386-pc-freebsd3.5". +# +# Any canonicalizations made by configfsf.sub are preserved. For example +# given "athlon-linux", configfsf.sub is called with "i386-linux" and will +# give back "i386-pc-linux-gnu". "athlon" is then reinstated, so we print +# "athlon-pc-linux-gnu". + + +# Expect to find configfsf.sub in the same directory as this config.sub +configfsf_sub="`echo \"$0\" | sed 's/config.sub$/configfsf.sub/'`" +if test "$configfsf_sub" = "$0"; then + echo "Cannot derive configfsf.sub from $0" 1>&2 + exit 1 +fi +if test -f "$configfsf_sub"; then + : +else + echo "$configfsf_sub not found" 1>&2 + exit 1 +fi + +# Always run configfsf.sub with $SHELL, like autoconf does for config.sub +SHELL=${CONFIG_SHELL-/bin/sh} + +# Identify ourselves on --version, --help, etc +case "$1" in +"" | -*) + echo "(GNU MP wrapped config.sub)" 1>&2 + $SHELL $configfsf_sub "$@" + exit + ;; +esac + +given_full="$1" +given_cpu=`echo "$given_full" | sed 's/-.*$//'` +given_rest=`echo "$given_full" | sed 's/^[^-]*//'` + + +# Aliases for GMP extras +case "$given_cpu" in + # configfsf.sub turns p5 into i586, instead use our exact cpu type + p5 | p54) given_cpu=pentium ;; + p55) given_cpu=pentiummmx ;; + + # configfsf.sub turns p6, pentiumii and pentiumiii into i686, instead use + # our exact cpu types + p6) given_cpu=pentiumpro ;; + pentiumii) given_cpu=pentium2 ;; + pentiumiii) given_cpu=pentium3 ;; +esac +given_full="$given_cpu$given_rest" + + +# GMP extras and what to use for the config.sub test +case "$given_cpu" in +itanium | itanium2) + test_cpu=ia64 ;; +pentium | pentiummmx | pentiumpro | pentium[234m] | k[567] | k6[23] | geode | athlon | viac3*) + test_cpu=i386 ;; +athlon64 | atom | silvermont | goldmont | tremont | core2 | corei* | opteron | k[89] | k10 | bobcat | jaguar* | bulldozer* | piledriver* | steamroller* | excavator* | zen* | nano | nehalem | westmere | sandybridge* | ivybridge* | haswell* | broadwell* | skylake* | kabylake* | icelake* | rocketlake* | tigerlake* | alderlake* | raptorlake* | knightslanding) + test_cpu=x86_64 ;; +power[2-9] | power1[0-9] | power2sc) + test_cpu=power ;; +powerpc401 | powerpc403 | powerpc405 | \ +powerpc505 | \ +powerpc601 | powerpc602 | \ +powerpc603 | powerpc603e | \ +powerpc604 | powerpc604e | \ +powerpc620 | powerpc630 | powerpc970 | \ +powerpc740 | powerpc74[0-9][0-9] | powerpc750 | \ +powerpc801 | powerpc821 | powerpc823 | powerpc860 | \ +powerpc64) + test_cpu=powerpc ;; +sparcv8 | supersparc | microsparc | \ +ultrasparc | ultrasparc2 | ultrasparc2i | ultrasparc3 | ultrasparct[12345]) + test_cpu=sparc ;; +sh2) + test_cpu=sh ;; + +z900 | z990 | z9 | z1[0-6] | z196) + test_cpu=s390x;; +z900esa | z990esa | z9esa | z1[0-6]esa | z196esa) + test_cpu=s390;; + +armsa1 | armxscale | arm9tdmi | arm9te | \ +arm10* | arm11mpcore | armsa1 | arm1136 | arm1156 | arm1176 | \ +armcortex[arm][0-9] | armcortex[arm][0-9][0-9] | \ +arm*neon | armxgene1 | armexynosm1 | armthunderx | applem[1-9]) + test_cpu="arm";; + +*) + # Don't need or want to change the given name, just run configfsf.sub + $SHELL $configfsf_sub "$given_full" + if test $? = 0; then + exit 0 + else + echo "(GNU MP wrapped config.sub, testing \"$given_full\")" + exit 1 + fi +esac + + +test_full="$test_cpu$given_rest" +canonical_full=`$SHELL $configfsf_sub "$test_full"` +if test $? = 0; then + : +else + echo "(GNU MP wrapped config.sub, testing \"$given_full\" as \"$test_full\")" + exit 1 +fi + +canonical_rest=`echo "$canonical_full" | sed 's/^[^-]*//'` +echo "$given_cpu$canonical_rest" +exit 0 + + + +# Local variables: +# fill-column: 76 +# End: |