Hi

On Mon, Feb 7, 2022 at 1:01 PM Daniel P. Berrangé <berrange@redhat.com> wrote:
On Sat, Feb 05, 2022 at 12:17:08AM +0100, Kevin Kofler via devel wrote:
> Marc-André Lureau wrote:
> > Fwiw, given that the primary use case for a cross-toolchain is for
> > developer needs, I think it is reasonable to have only UCRT target in the
> > future.
> >
> > Projects releasing for Windows should probably natively build and test
> > their releases with Msys2, and they can do so for msvcrt targets.
>
> Well, with cross-MinGW and cross-NSIS, I can package software for Windows
> without ever touching a Windows machine. I have done so more than once
> already. I do not even have a Windows installation on which I can run Msys2.

Exactly, this is the precise reason why a group of us started
the Fedora mingw packaging effort all those years ago.

I have a Windows machine for testing / debugging on, but it is so
much simpler if we can do cross builds from Linux, as it means we
don't have to switch context between machines when developing.

Nowadays, with the built-in ssh server, git, msys2, meson, docker and CI..., developing for Windows is much easier than it was 10y ago!

For me, it's barely a context switch, sync the repo and run "meson test"  (or cmake) there. I haven't tried the shared folder yet. Testing the windows build is not something you can really do on Linux... So I will prefer a native build whenever possible.

Anyway, no need to convince me about the need for cross-compilers :) However, I regret that we have undermaintained and duplicated mingw*-pkg. I am looking at whether we can use msys2 packages instead (for developpers).


I rather wish we had full cross build facilities for all Fedora
arches in fact. As well as for Mingw, upstream we cross build
libvirt / QEMU for all non-x86 arches too by simplying having
a set of containers populated with all the relevant cross compilers
and foreign libraries. While we can use Fedora for our Mingw cross
targets, we have to use Debian for all the Linux non-x86 targets.

It is very compelling to be able to just run things like

   make docker-build@debian-ppc64el-cross

   make docker-build@fedora-win32-cross

giving throwaway container buildroots, instead of having to deal with
full VM installs.



I also wish we would have more cross-compilers available. I imagine with use of container/namespaces, the target Fedora sys-root could be simply mounted in a well-known location (instead of duplicating packages, or developing a rpm multi-arch solution)
 

--
Marc-André Lureau