configure: cleanup $cpu tests

$cpu is derived from preprocessor defines rather than uname these days,
so do not bother using isainfo on Solaris.  Likewise do not recognize
BeOS's uname -m output.

Keep the other, less OS-specific canonicalizations for the benefit
of people using --cpu.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2022-10-12 15:27:03 +02:00
parent 91cd485a6d
commit f9c77801f4

19
configure vendored
View File

@ -338,9 +338,6 @@ for opt do
;; ;;
esac esac
done done
# OS specific
# Using uname is really, really broken. Once we have the right set of checks
# we can eliminate its usage altogether.
# Preferred compiler: # Preferred compiler:
# ${CC} (if set) # ${CC} (if set)
@ -491,13 +488,6 @@ sunos)
QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS" QEMU_CFLAGS="-D_XOPEN_SOURCE=600 $QEMU_CFLAGS"
# needed for TIOCWIN* defines in termios.h # needed for TIOCWIN* defines in termios.h
QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS" QEMU_CFLAGS="-D__EXTENSIONS__ $QEMU_CFLAGS"
# $(uname -m) returns i86pc even on an x86_64 box, so default based on isainfo
# Note that this check is broken for cross-compilation: if you're
# cross-compiling to one of these OSes then you'll need to specify
# the correct CPU with the --cpu option.
if test -z "$cpu" && test "$(isainfo -k)" = "amd64"; then
cpu="x86_64"
fi
;; ;;
haiku) haiku)
pie="no" pie="no"
@ -552,16 +542,21 @@ elif check_define __aarch64__ ; then
elif check_define __loongarch64 ; then elif check_define __loongarch64 ; then
cpu="loongarch64" cpu="loongarch64"
else else
# Using uname is really broken, but it is just a fallback for architectures
# that are going to use TCI anyway
cpu=$(uname -m) cpu=$(uname -m)
echo "WARNING: unrecognized host CPU, proceeding with 'uname -m' output '$cpu'"
fi fi
# Normalise host CPU name, set multilib cflags # Normalise host CPU name and set multilib cflags. The canonicalization
# isn't really necessary, because the architectures that we check for
# should not hit the 'uname -m' case, but better safe than sorry.
# Note that this case should only have supported host CPUs, not guests. # Note that this case should only have supported host CPUs, not guests.
case "$cpu" in case "$cpu" in
armv*b|armv*l|arm) armv*b|armv*l|arm)
cpu="arm" ;; cpu="arm" ;;
i386|i486|i586|i686|i86pc|BePC) i386|i486|i586|i686)
cpu="i386" cpu="i386"
CPU_CFLAGS="-m32" ;; CPU_CFLAGS="-m32" ;;
x32) x32)