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.ben...@linaro.org> wrote: > > > Matheus Kowalczuk Ferst <matheus.fe...@eldorado.org.br> writes: > > > On 01/06/2022 15:05, Alex Bennée wrote: > >> From: Paolo Bonzini <pbonz...@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 <pbonz...@redhat.com> > >> Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > >> Message-Id: <20220517092616.1272238-10-pbonz...@redhat.com> > >> Signed-off-by: Alex Bennée <alex.ben...@linaro.org> > >> Message-Id: <20220527153603.887929-21-alex.ben...@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.fe...@eldorado.org.br> wrote: > > On 01/06/2022 15:05, Alex Bennée wrote: > > From: Paolo Bonzini <pbonz...@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 <pbonz...@redhat.com> > > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > > Message-Id: <20220517092616.1272238-10-pbonz...@redhat.com> > > Signed-off-by: Alex Bennée <alex.ben...@linaro.org> > > Message-Id: <20220527153603.887929-21-alex.ben...@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>