configure: Fix test for supported host CPU type
The test for whether the host CPU is supported had several problems: * the attempt to fall back to TCI was done as a duplicate test, very late (so "--cpu foo" would fail early but "--cpu unicore32" would fail late, differently, and after configure had already printed a lot of output) * a number of CPUs only supported as guests were included in the list of CPUs we would accept as valid hosts, which would result in a late compile failure on those systems rather than a configure failure or fallback to TCI * bailing out for an unsupported CPU happened before the main option parsing, so "configure --help" wouldn't work Fix these by folding the setting of ARCH into the first test for supported host CPU, removing spurious guest-only CPU names from it, and moving the "fall back to TCI" code earlier. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
This commit is contained in:
parent
a2c80be948
commit
359bc95d3e
|
@ -300,8 +300,11 @@ else
|
||||||
cpu=`uname -m`
|
cpu=`uname -m`
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
ARCH=
|
||||||
|
# Normalise host CPU name and set ARCH.
|
||||||
|
# Note that this case should only have supported host CPUs, not guests.
|
||||||
case "$cpu" in
|
case "$cpu" in
|
||||||
alpha|cris|ia64|lm32|m68k|microblaze|ppc|ppc64|sparc64|unicore32)
|
ia64|ppc|ppc64|s390|s390x|sparc64)
|
||||||
cpu="$cpu"
|
cpu="$cpu"
|
||||||
;;
|
;;
|
||||||
i386|i486|i586|i686|i86pc|BePC)
|
i386|i486|i586|i686|i86pc|BePC)
|
||||||
|
@ -319,20 +322,17 @@ case "$cpu" in
|
||||||
mips*)
|
mips*)
|
||||||
cpu="mips"
|
cpu="mips"
|
||||||
;;
|
;;
|
||||||
s390)
|
|
||||||
cpu="s390"
|
|
||||||
;;
|
|
||||||
s390x)
|
|
||||||
cpu="s390x"
|
|
||||||
;;
|
|
||||||
sparc|sun4[cdmuv])
|
sparc|sun4[cdmuv])
|
||||||
cpu="sparc"
|
cpu="sparc"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Unsupported CPU = $cpu"
|
# This will result in either an error or falling back to TCI later
|
||||||
exit 1
|
ARCH=unknown
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
if test -z "$ARCH"; then
|
||||||
|
ARCH="$cpu"
|
||||||
|
fi
|
||||||
|
|
||||||
# OS specific
|
# OS specific
|
||||||
if check_define __linux__ ; then
|
if check_define __linux__ ; then
|
||||||
|
@ -1080,6 +1080,18 @@ echo "NOTE: The object files are built at the place where configure is launched"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Now we have handled --enable-tcg-interpreter and know we're not just
|
||||||
|
# printing the help message, bail out if the host CPU isn't supported.
|
||||||
|
if test "$ARCH" = "unknown"; then
|
||||||
|
if test "$tcg_interpreter" = "yes" ; then
|
||||||
|
echo "Unsupported CPU = $cpu, will use TCG with TCI (experimental)"
|
||||||
|
ARCH=tci
|
||||||
|
else
|
||||||
|
echo "Unsupported CPU = $cpu, try --enable-tcg-interpreter"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# check that the C compiler works.
|
# check that the C compiler works.
|
||||||
cat > $TMPC <<EOF
|
cat > $TMPC <<EOF
|
||||||
int main(void) { return 0; }
|
int main(void) { return 0; }
|
||||||
|
@ -2903,20 +2915,6 @@ echo "sysconfdir=$sysconfdir" >> $config_host_mak
|
||||||
echo "docdir=$docdir" >> $config_host_mak
|
echo "docdir=$docdir" >> $config_host_mak
|
||||||
echo "confdir=$confdir" >> $config_host_mak
|
echo "confdir=$confdir" >> $config_host_mak
|
||||||
|
|
||||||
case "$cpu" in
|
|
||||||
i386|x86_64|alpha|arm|cris|hppa|ia64|lm32|m68k|microblaze|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64|unicore32)
|
|
||||||
ARCH=$cpu
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if test "$tcg_interpreter" = "yes" ; then
|
|
||||||
echo "Unsupported CPU = $cpu, will use TCG with TCI (experimental)"
|
|
||||||
ARCH=tci
|
|
||||||
else
|
|
||||||
echo "Unsupported CPU = $cpu, try --enable-tcg-interpreter"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
echo "ARCH=$ARCH" >> $config_host_mak
|
echo "ARCH=$ARCH" >> $config_host_mak
|
||||||
if test "$debug_tcg" = "yes" ; then
|
if test "$debug_tcg" = "yes" ; then
|
||||||
echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
|
echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
|
||||||
|
|
Loading…
Reference in New Issue