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).