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