On 22/06/2022 10:47, Paolo Bonzini wrote:
> Configure is trying to fall back on cross compilers for targets that
> can have bi-arch or bi-endian toolchains, but there are many corner
> cases where just checking the name can go wrong.  For example, the RHEL
> ppc64le compiler is bi-arch and bi-endian, but multilibs are disabled.
> Therefore it cannot be used to build 32-bit hosted binaries like the
> linux-user TCG tests.
> 
> Trying the cross compiler first also does not work, and an example for
> this is also ppc64le.  The powerpc64-linux-gnu-gcc binary from the
> cross-gcc package is theoretically multilib-friendly, but it cannot
> find the CRT files on a ppc64le host, because they are not in the .../le
> multilib subdirectory.
> 
> This can be fixed by testing both the native compiler and the cross
> compiler, and proceeding with the first one that works.  To do this,
> move the compiler usability check from the tests/tcg snippet to inside
> probe_target_compiler and, while at it, restrict it to just the user-mode
> emulation tests; if a compiler is not able to build nostdlib freestanding
> binaries the installation is broken.
> ---
>   configure | 166 ++++++++++++++++++++++++++++++++----------------------
>   1 file changed, 100 insertions(+), 66 deletions(-)
> 

With this patch I can successfully build ppc64le-linux-user tests on 
ppc64le hosts (Debian and Fedora) and ppc{,64}-linux-user tests on ppc64 
hosts (Void Linux).

Tested-by: Matheus Ferst <matheus.fe...@eldorado.org.br>

Thanks,
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>

Reply via email to