ar="${AR-${cross_prefix}ar}"
as="${AS-${cross_prefix}as}"
ccas="${CCAS-$cc}"
+dlltool="${DLLTOOL-${cross_prefix}dlltool}"
objcopy="${OBJCOPY-${cross_prefix}objcopy}"
ld="${LD-${cross_prefix}ld}"
ranlib="${RANLIB-${cross_prefix}ranlib}"
fi
# test for any invalid configuration combinations
-if test "$targetos" = "windows"; then
+if test "$targetos" = "windows" && ! has "$dlltool"; then
if test "$plugins" = "yes"; then
- error_exit "TCG plugins not currently supported on Windows platforms"
+ error_exit "TCG plugins requires dlltool to build on Windows platforms"
fi
plugins="no"
fi
container_cross_cc=${container_cross_prefix}gcc
;;
i386)
- container_image=fedora-i386-cross
- container_cross_prefix=
+ container_image=debian-i686-cross
+ container_cross_prefix=i686-linux-gnu-
;;
loongarch64)
container_image=debian-loongarch-cross
container_image=debian-legacy-test-cross
container_cross_prefix=sh4-linux-gnu-
;;
+ sparc64)
+ container_image=debian-all-test-cross
+ container_cross_prefix=sparc64-linux-gnu-
+ ;;
tricore)
container_image=debian-tricore-cross
container_cross_prefix=tricore-
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
echo "PKG_CONFIG=${pkg_config}" >> contrib/plugins/$config_host_mak
echo "CC=$cc $CPU_CFLAGS" >> contrib/plugins/$config_host_mak
echo "CFLAGS=${CFLAGS-$default_cflags} $EXTRA_CFLAGS" >> contrib/plugins/$config_host_mak
+if test "$targetos" = windows; then
+ echo "DLLTOOL=$dlltool" >> contrib/plugins/$config_host_mak
+fi
if test "$targetos" = darwin; then
echo "CONFIG_DARWIN=y" >> contrib/plugins/$config_host_mak
fi
+if test "$targetos" = windows; then
+ echo "CONFIG_WIN32=y" >> contrib/plugins/$config_host_mak
+fi
# tests/tcg configuration
(config_host_mak=tests/tcg/config-host.mak
test -n "$cxx" && echo "cpp = [$(meson_quote $cxx $CPU_CFLAGS)]" >> $cross
test -n "$objcc" && echo "objc = [$(meson_quote $objcc $CPU_CFLAGS)]" >> $cross
echo "ar = [$(meson_quote $ar)]" >> $cross
+ echo "dlltool = [$(meson_quote $dlltool)]" >> $cross
echo "nm = [$(meson_quote $nm)]" >> $cross
echo "pkgconfig = [$(meson_quote $pkg_config)]" >> $cross
echo "pkg-config = [$(meson_quote $pkg_config)]" >> $cross
preserve_env CFLAGS
preserve_env CXX
preserve_env CXXFLAGS
+preserve_env DLLTOOL
preserve_env LD
preserve_env LDFLAGS
preserve_env LD_LIBRARY_PATH