[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] configure: Fail when specified cross compiler cannot be foun
From: |
Alex Bennée |
Subject: |
Re: [PATCH] configure: Fail when specified cross compiler cannot be found |
Date: |
Thu, 17 Dec 2020 17:56:19 +0000 |
User-agent: |
mu4e 1.5.7; emacs 28.0.50 |
Gustavo Romero <gromero@linux.ibm.com> writes:
> Hi Alex,
>
> On 12/16/20 7:51 AM, Alex Bennée wrote:
>>
>> Gustavo Romero <gromero@linux.ibm.com> writes:
>>
>>> Currently if the cross compiler passed to 'configure' (--cross-cc-<arch>)
>>> does
>>> not exist no error happens and only later when the TCG tests are run they
>>> fail
>>> because the cross compiler is not set correctly.
>>
>> Do they? They should just skip because of a non-existing compiler and a
>> failed fallback to using docker:
>>
>> ../../configure --disable-docs --target-list=aarch64-softmmu
>> --cross-cc-aarch64=nonexisting_gcc
>>
>> and then cat ./tests/tcg/config-aarch64-softmmu.mak
>>
>> # Automatically generated by configure - do not modify
>> TARGET_NAME=aarch64
>> CONFIG_SOFTMMU=y
>> QEMU=/home/alex/lsrc/qemu.git/builds/bisect/qemu-system-aarch64
>> CROSS_CC_GUEST_CFLAGS=
>> DOCKER_IMAGE=debian-arm64-test-cross
>> DOCKER_CROSS_CC_GUEST=aarch64-linux-gnu-gcc-10
>>
>> So what do you see in your failing case?
>
> I get the following (I don't have docker installed):
>
> $ ../configure --disable-docs --target-list=aarch64-softmmu
> --cross-cc-aarch64=nonexisting_gcc
> gromero@pub:~/git/qemu/build$ cat ./tests/tcg/config-aarch64-softmmu.mak
> # Automatically generated by configure - do not modify
> TARGET_NAME=aarch64
> CONFIG_SOFTMMU=y
> QEMU=/home/gromero/git/qemu/build/qemu-system-aarch64
> CROSS_CC_GUEST_CFLAGS=
>
> $ ../configure --disable-docs --target-list=ppc64-softmmu
> --cross-cc-ppc64=nonexisting_gcc
> gromero@pub:~/git/qemu/build$ cat ./tests/tcg/config-ppc64-softmmu.mak
> # Automatically generated by configure - do not modify
> TARGET_NAME=ppc64
> CONFIG_SOFTMMU=y
> QEMU=/home/gromero/git/qemu/build/qemu-system-ppc64
> CROSS_CC_GUEST_CFLAGS=
> CROSS_CC_GUEST_STATIC=y
> CROSS_CC_GUEST=powerpc-linux-gnu-gcc
Hmm that is impressively wrong to somehow get the 32 bit compiler. But
I'm still failing to replicate the problem. Could you try the following
configure for a like-for-like comparison:
../../configure --disable-containers --target-list=ppc64-softmmu
--cross-cc-ppc64=nonexisting_gcc
which gives me:
$ cat tests/tcg/config-ppc64-softmmu.mak
# Automatically generated by configure - do not modify
TARGET_NAME=ppc64
CONFIG_SOFTMMU=y
QEMU=/home/alex/lsrc/qemu.git/builds/ppc-linux.all/qemu-system-ppc64
CROSS_CC_GUEST_CFLAGS=
>
> hrm It seems PPC64 is even assuming some default gcc...
>
> I'm at commit af3f37319c from Dec 15.
Yep I'm based on that as well.
> I'm wondering if tha happens because I don't have docker package installed.
>
> Anyway, should we at least say we're using Docker as fallback?
Something like:
modified tests/tcg/configure.sh
@@ -255,6 +255,7 @@ for target in $target_list; do
if test $got_cross_cc = no && test "$container" != no && test -n
"$container_image"; then
echo "DOCKER_IMAGE=$container_image" >> $config_target_mak
echo "DOCKER_CROSS_CC_GUEST=$container_cross_cc" >> $config_target_mak
+ enabled_container_compilers="$enabled_container_compilers
$container_cross_cc"
fi
done
@@ -265,3 +266,6 @@ if test -n "$enabled_cross_compilers"; then
echo
echo "NOTE: guest cross-compilers enabled:$enabled_cross_compilers"
fi
+if test -n "$enabled_container_compilers"; then
+ echo "NOTE: container cross-compilers enabled:$enabled_container_compilers"
+fi
To be honest at the moment the information is a little hidden at the top
of the output. It would be nice if we could teach meson to echo it in
it's nice coloured output.
Paolo,
Any ideas for the cleanest way to do that?
--
Alex Bennée