[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PULL 20/33] configure: handle host compiler in probe_target_compile
From: |
Paolo Bonzini |
Subject: |
Re: [PULL 20/33] configure: handle host compiler in probe_target_compiler |
Date: |
Fri, 17 Jun 2022 12:12:12 +0200 |
Hi Matheus,
could you please test the tests-tcg-next branch at
https://gitlab.com/bonzini/qemu?
Thanks,
Paolo
On Thu, Jun 16, 2022 at 3:23 AM Alex Bennée <alex.bennee@linaro.org> wrote:
>
>
> Matheus Kowalczuk Ferst <matheus.ferst@eldorado.org.br> writes:
>
> > On 01/06/2022 15:05, Alex Bennée wrote:
> >> From: Paolo Bonzini <pbonzini@redhat.com>
> >>
> >> In preparation for handling more binaries than just cc, handle
> >> the case of "probe_target_compiler $cpu" directly in the function,
> >> setting the target_* variables based on the ones that are used to
> >> build QEMU. The clang check also needs to be moved after this
> >> fallback.
> >>
> >> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> >> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> >> Message-Id: <20220517092616.1272238-10-pbonzini@redhat.com>
> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> >> Message-Id: <20220527153603.887929-21-alex.bennee@linaro.org>
> >
> > Hi,
> >
> > After this patch, a clean build in ppc64le hosts will not build
> > ppc64{,le}-linux-user tests with "make check-tcg"
> >
> >>
> >> diff --git a/configure b/configure
> >> index fbf6d39f96..217c8b3cac 100755
> >> --- a/configure
> >> +++ b/configure
> >> @@ -954,10 +954,6 @@ case $git_submodules_action in
> >> ;;
> >> esac
> >>
> >> -if eval test -z "\${cross_cc_$cpu}"; then
> >> - eval "cross_cc_${cpu}=\$cc"
> >> -fi
> >> -
> >> default_target_list=""
> >> mak_wilds=""
> >>
> >> @@ -2008,13 +2004,6 @@ probe_target_compiler() {
> >> if eval test -n "\"\${cross_cc_$1}\""; then
> >> if eval has "\"\${cross_cc_$1}\""; then
> >> eval "target_cc=\"\${cross_cc_$1}\""
> >> - case $1 in
> >> - i386|x86_64)
> >> - if $target_cc --version | grep -qi "clang"; then
> >> - unset target_cc
> >> - fi
> >> - ;;
> >> - esac
> >> fi
> >> fi
> >> if eval test -n "\"\${cross_as_$1}\""; then
> >> @@ -2027,6 +2016,20 @@ probe_target_compiler() {
> >> eval "target_ld=\"\${cross_ld_$1}\""
> >> fi
> >> fi
> >> + if test "$1" = $cpu; then > + : ${target_cc:=$cc}
> >> + : ${target_as:=$as}
> >> + : ${target_ld:=$ld}
> >> + fi
> >
> > $cpu is normalized[1] to ppc64 on little-endian hosts, so
> > ppc64le-linux-user will not have $target_{cc,as,ld} set, and
> > ppc64-linux-user will have them set to a toolchain that may not support
> > -mbig-endian. I suppose we have a similar problem with MIPS targets on
> > MIPS hosts.
>
> For now you can always explicitly tell configure about the host compiler
> with:
>
> --cross-cc-ppc64le=gcc
>
> but we should fix the broken detection. It seems the var cpu has an
> overloaded meaning so I wonder if we just need an explicit host_cpu
> setting when we normalize cpu?
>
> >
> > [1]
> > https://gitlab.com/qemu-project/qemu/-/blob/2ad60f6f8c12ca0acd8834fdd70e088361b8791f/configure#L611
>
>
> --
> Alex Bennée
>
On Wed, Jun 15, 2022 at 1:57 PM Matheus Kowalczuk Ferst
<matheus.ferst@eldorado.org.br> wrote:
>
> On 01/06/2022 15:05, Alex Bennée wrote:
> > From: Paolo Bonzini <pbonzini@redhat.com>
> >
> > In preparation for handling more binaries than just cc, handle
> > the case of "probe_target_compiler $cpu" directly in the function,
> > setting the target_* variables based on the ones that are used to
> > build QEMU. The clang check also needs to be moved after this
> > fallback.
> >
> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> > Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> > Message-Id: <20220517092616.1272238-10-pbonzini@redhat.com>
> > Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> > Message-Id: <20220527153603.887929-21-alex.bennee@linaro.org>
>
> Hi,
>
> After this patch, a clean build in ppc64le hosts will not build
> ppc64{,le}-linux-user tests with "make check-tcg"
>
> >
> > diff --git a/configure b/configure
> > index fbf6d39f96..217c8b3cac 100755
> > --- a/configure
> > +++ b/configure
> > @@ -954,10 +954,6 @@ case $git_submodules_action in
> > ;;
> > esac
> >
> > -if eval test -z "\${cross_cc_$cpu}"; then
> > - eval "cross_cc_${cpu}=\$cc"
> > -fi
> > -
> > default_target_list=""
> > mak_wilds=""
> >
> > @@ -2008,13 +2004,6 @@ probe_target_compiler() {
> > if eval test -n "\"\${cross_cc_$1}\""; then
> > if eval has "\"\${cross_cc_$1}\""; then
> > eval "target_cc=\"\${cross_cc_$1}\""
> > - case $1 in
> > - i386|x86_64)
> > - if $target_cc --version | grep -qi "clang"; then
> > - unset target_cc
> > - fi
> > - ;;
> > - esac
> > fi
> > fi
> > if eval test -n "\"\${cross_as_$1}\""; then
> > @@ -2027,6 +2016,20 @@ probe_target_compiler() {
> > eval "target_ld=\"\${cross_ld_$1}\""
> > fi
> > fi
> > + if test "$1" = $cpu; then > + : ${target_cc:=$cc}
> > + : ${target_as:=$as}
> > + : ${target_ld:=$ld}
> > + fi
>
> $cpu is normalized[1] to ppc64 on little-endian hosts, so
> ppc64le-linux-user will not have $target_{cc,as,ld} set, and
> ppc64-linux-user will have them set to a toolchain that may not support
> -mbig-endian. I suppose we have a similar problem with MIPS targets on
> MIPS hosts.
>
> [1]
> https://gitlab.com/qemu-project/qemu/-/blob/2ad60f6f8c12ca0acd8834fdd70e088361b8791f/configure#L611
>
> --
> Matheus K. Ferst
> Instituto de Pesquisas ELDORADO <http://www.eldorado.org.br/>
> Analista de Software
> Aviso Legal - Disclaimer <https://www.eldorado.org.br/disclaimer.html>
- [PULL 22/33] configure: include more binutils in tests/tcg makefile, (continued)
- [PULL 22/33] configure: include more binutils in tests/tcg makefile, Alex Bennée, 2022/06/01
- [PULL 27/33] configure: remove unused variables from config-host.mak, Alex Bennée, 2022/06/01
- [PULL 30/33] gitlab: convert static checks to .base_job_template, Alex Bennée, 2022/06/01
- [PULL 26/33] configure: enable cross compilation of vof, Alex Bennée, 2022/06/01
- [PULL 15/33] build: do a full build before running TCG tests, Alex Bennée, 2022/06/01
- [PULL 23/33] configure: move symlink configuration earlier, Alex Bennée, 2022/06/01
- [PULL 19/33] configure: add missing cross compiler fallbacks, Alex Bennée, 2022/06/01
- [PULL 20/33] configure: handle host compiler in probe_target_compiler, Alex Bennée, 2022/06/01
- Re: [PULL 20/33] configure: handle host compiler in probe_target_compiler, Matheus Kowalczuk Ferst, 2022/06/15
- Re: [PULL 20/33] configure: handle host compiler in probe_target_compiler, Alex Bennée, 2022/06/15
- Re: [PULL 20/33] configure: handle host compiler in probe_target_compiler,
Paolo Bonzini <=
- Re: [PULL 20/33] configure: handle host compiler in probe_target_compiler, Matheus Kowalczuk Ferst, 2022/06/20
- Re: [PULL 20/33] configure: handle host compiler in probe_target_compiler, Richard Henderson, 2022/06/20
- Re: [PULL 20/33] configure: handle host compiler in probe_target_compiler, Paolo Bonzini, 2022/06/21
- Re: [PULL 20/33] configure: handle host compiler in probe_target_compiler, Richard Henderson, 2022/06/21
- Re: [PULL 20/33] configure: handle host compiler in probe_target_compiler, Paolo Bonzini, 2022/06/22
Re: [PULL 00/33] testing updates (gitlab, junit, lcitool, x-compile), Richard Henderson, 2022/06/01