As 32 bit x86 become rarer we are starting to run into problems with
search paths. Although we switched to a Debian container we still
favour the native CC on a Bookworm host. As a result we have a broken
cross compile setup which then fails to build with:
BUILD i386-linux-user guest-tests
In file included from /usr/include/linux/stat.h:5,
from /usr/include/bits/statx.h:31,
from /usr/include/sys/stat.h:465,
from
/home/alex/lsrc/qemu.git/tests/tcg/multiarch/linux/linux-test.c:28:
/usr/include/linux/types.h:5:10: fatal error: asm/types.h: No such file or directory
5 | #include <asm/types.h>
| ^~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:119: linux-test] Error 1
make: *** [/home/alex/lsrc/qemu.git/tests/Makefile.include:50:
build-tcg-tests-i386-linux-user] Error 2
This is likely to affect more and more linux-user builds so wrap the
whole check in a test for softmmu targets (aka bare metal) which don't
worry about such header niceties. This allows us to keep using the
host compiler for softmmu tests and the roms.
Signed-off-by: Alex Bennée <alex.bennee(a)linaro.org>
---
v2
- split fix for tests/docker: replace fedora-i386 with debian-i686
as still in my tree ;-)
- didn't apply dpb rb due to change requested by bonzini
---
configure | 23 +++++++++++++----------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/configure b/configure
index 9ea0bf5698..42fe4d0510 100755
--- a/configure
+++ b/configure
@@ -1391,16 +1391,19 @@ probe_target_compiler() {
done
try=cross
- case "$target_arch:$cpu" in
- aarch64_be:aarch64 | \
- armeb:arm | \
- i386:x86_64 | \
- mips*:mips64 | \
- ppc*:ppc64 | \
- sparc:sparc64 | \
- "$cpu:$cpu")
- try='native cross' ;;
- esac
+ # For softmmu/roms we might be able to use the host compiler
+ if [ "${1%softmmu}" != "$1" ]; then
+ case "$target_arch:$cpu" in
+ aarch64_be:aarch64 | \
+ armeb:arm | \
+ i386:x86_64 | \
+ mips*:mips64 | \
+ ppc*:ppc64 | \
+ sparc:sparc64 | \
+ "$cpu:$cpu")
+ try='native cross' ;;
+ esac
+ fi
eval "target_cflags=\${cross_cc_cflags_$target_arch}"
for thistry in $try; do
case $thistry in
--
2.39.2