mirror of https://gitee.com/openkylin/qemu.git
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`
|
||||
fi
|
||||
|
||||
ARCH=
|
||||
# Normalise host CPU name and set ARCH.
|
||||
# Note that this case should only have supported host CPUs, not guests.
|
||||
case "$cpu" in
|
||||
alpha|cris|ia64|lm32|m68k|microblaze|ppc|ppc64|sparc64|unicore32)
|
||||
ia64|ppc|ppc64|s390|s390x|sparc64)
|
||||
cpu="$cpu"
|
||||
;;
|
||||
i386|i486|i586|i686|i86pc|BePC)
|
||||
|
@ -319,20 +322,17 @@ case "$cpu" in
|
|||
mips*)
|
||||
cpu="mips"
|
||||
;;
|
||||
s390)
|
||||
cpu="s390"
|
||||
;;
|
||||
s390x)
|
||||
cpu="s390x"
|
||||
;;
|
||||
sparc|sun4[cdmuv])
|
||||
cpu="sparc"
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported CPU = $cpu"
|
||||
exit 1
|
||||
# This will result in either an error or falling back to TCI later
|
||||
ARCH=unknown
|
||||
;;
|
||||
esac
|
||||
if test -z "$ARCH"; then
|
||||
ARCH="$cpu"
|
||||
fi
|
||||
|
||||
# OS specific
|
||||
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
|
||||
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.
|
||||
cat > $TMPC <<EOF
|
||||
int main(void) { return 0; }
|
||||
|
@ -2903,20 +2915,6 @@ echo "sysconfdir=$sysconfdir" >> $config_host_mak
|
|||
echo "docdir=$docdir" >> $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
|
||||
if test "$debug_tcg" = "yes" ; then
|
||||
echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
|
||||
|
|
Loading…
Reference in New Issue