qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [qemu-web PATCH] Fix link to Windows page in Wiki


From: Mark Cave-Ayland
Subject: Re: [qemu-web PATCH] Fix link to Windows page in Wiki
Date: Sat, 11 Sep 2021 10:03:00 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0

On 11/09/2021 09:43, Howard Spoelstra wrote:

On Sat, Sep 11, 2021 at 8:29 AM Helge Konetzka <hk@zapateado.de <mailto:hk@zapateado.de>> wrote:

    Am 10.09.21 um 17:44 schrieb Paolo Bonzini:
     > On 25/08/21 18:43, Helge Konetzka wrote:
     >> Furthermore I would like to propose to change the instructions for
     >> Native builds with MSYS2 on Wiki Windows page.
     >>
     >> Please remove the section which copies system binaries to match the
     >> expected file names!
     >>
     >> Instead define variables for configure (gcc-ar and gcc-ranlib are
     >> existing copies of x86_64-w64-mingw32-gcc-ar and
     >> x86_64-w64-mingw32-gcc-ranlib) and add strip to enable make install:
     >>
     >> AR=gcc-ar NM=nm OBJCOPY=objcopy RANLIB=gcc-ranlib WINDRES=windres
     >> STRIP=strip \
     >> ./configure --cross-prefix=x86_64-w64-mingw32- --enable-gtk --enable-sdl
     >
     > Do you even need anything but "./configure"? (possibly AR=gcc-ar NM=nm
     > at the beginning)?

    Sorry for being indistinct!

    My intention was to put "AR=gcc-ar NM=nm OBJCOPY=objcopy
    RANLIB=gcc-ranlib WINDRES=windres STRIP=strip" in front of "./configure"
    (see the '\' after STRIP=strip) instead of copying binaries:

    diff -Naur qemu.org.orig/Hosts/W32 qemu.org/Hosts/W32 
<http://qemu.org/Hosts/W32>
    --- qemu.org.orig/Hosts/W32     2021-09-11 08:27:01.198715675 +0200
    +++ qemu.org/Hosts/W32 <http://qemu.org/Hosts/W32>  2021-09-11 
08:28:15.853605118
    +0200
    @@ -232,14 +232,6 @@
           Close the MSYS2 console.
           Start mingw64.exe.

    -cd /mingw64/bin
    -cp x86_64-w64-mingw32-gcc-ar.exe x86_64-w64-mingw32-ar.exe
    -cp x86_64-w64-mingw32-gcc-ranlib.exe x86_64-w64-mingw32-ranlib.exe
    -cp windres.exe x86_64-w64-mingw32-windres.exe
    -cp nm.exe x86_64-w64-mingw32-nm.exe
    -cp objcopy.exe x86_64-w64-mingw32-objcopy.exe
    -cd ~
    -
           Download the QEMU source code:

       git clone https://www.github.com/qemu/qemu 
<https://www.github.com/qemu/qemu>
    @@ -247,6 +239,7 @@
           Finally build QEMU with:

       cd qemu
    +AR=gcc-ar NM=nm OBJCOPY=objcopy RANLIB=gcc-ranlib WINDRES=windres
    STRIP=strip \
       ./configure --cross-prefix=x86_64-w64-mingw32- --enable-gtk --enable-sdl
       make

Hi,

I wrote those instructions as I obviously could not find a better way to get Qemu to cross-compile using MSYS2 in Windows. When you look at configure, you see that only adding the cross-prefix will not find the MSYS equivalents of some tools:

ar="${AR-${cross_prefix}ar}"
looks for x86_64-w64-mingw32-ar.exe and not (as it is named in MSYS2) x86_64-w64-mingw32-gcc-ar.exe

Perhaps it would be better to fix configure for the MSYS2 case so the flags or the renaming are not required?

FWIW it was me that added the MSYS2 section to the wiki since I had a requirement to do some bespoke Windows builds (see https://wiki.qemu.org/index.php?title=Hosts/W32&diff=6803&oldid=5723).

As you can see at that point in time there was no need to copy binaries with different names, or pass --cross-prefix into configure.

So the question is: what has changed? I find it hard to believe that MSYS2/MingW64 is configured out-of-the-box to break a standard "./configure && make" build incantation.


ATB,

Mark.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]