Am 20.02.21 um 00:07 schrieb Philippe Mathieu-Daudé:

Cc'ing Stefan / Yonggang / Paolo.

On 2/20/21 12:03 AM, Peter Maydell wrote:
On Fri, 19 Feb 2021 at 22:54, nerus <fhuv...@gmail.com> wrote:
Good evening, I turn to you because I have a problem that does not appear in 
the official documentation, nor in the different blogs or irc channels.

I need to do a cross compilation but it is impossible from version 5.2, when I 
use msys2 an error occurs indicating that symbolic links cannot be created even 
though the windows user has permissions to create symbolic links, I configured 
this through gpedit.msc.

when I use cygwin with the mingw64-w64 tool chain an error occurs whereby meson 
says that it cannot find any compiler even though the compiler path is 
specified in the configuration script, mingw cannot be used from linux either 
due to There are many missing components that cannot be compiled by hand 
because the proper versions are no longer available, how could you solve these 
problems without using already compiled binaries? Thank you


The only tested build settings for producing 5.2 and newer Windows binaries use Mingw-w64 cross tools on Linux. Up to now I did not try building 5.2 on Windows.

Depending on the Linux distribution there are more or less missing components.

As far as I know Fedora provides a rather complete list of cross packages which not only covers the cross tools but also the required other components (libraries).

Debian based distributions only provide the cross tools (compiler, linker, nsis). It should be possible to compile all required libraries by hand, but of course that is a lot of work. I recently did that for the braille library, and it took me about a day to get 32 and 64 bit binaries. Therefore I use Debian with the Mingw-w64 library cross packages from Cygwin. My GitHub repository includes a GitHub action which runs the cross builds: https://github.com/stweil/qemu/blob/master/.github/workflows/build.sh. That should also work on Windows with the Windows Subsystem for Linux (WSL).

Recently (with bullseye and later) Debian changed the exception handling for the 64 bit C++ cross compiler. Therefore Debian bullseye and similar distributions can no longer be used with the Cygwin libraries. I still have no solution for that.

Stefan


Cross compilation works in general -- our CI testing setup
includes various cross-compile configurations, including
building Windows executables from a Linux host
(eg https://gitlab.com/qemu-project/qemu/-/jobs/1042844159).

You'll need to be more specific about exactly what you're
trying to do and failing (eg quoting exact commands,
setups, error messages).



Reply via email to