Am 11.09.21 um 11:30 schrieb Mark Cave-Ayland:
On 11/09/2021 10:17, Helge Konetzka wrote:

Am 11.09.21 um 11:03 schrieb Mark Cave-Ayland:

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.


On my last attempt to build qemu without --cross-prefix=x86_64-w64-mingw32- (qemu-6.1.0.tar.xz) for building target soft-mmu-x86_64 I received

make[1]: *** No rule to make target 'multiboot.bin', needed by 'all'. Stop.
make: *** [Makefile:189: pc-bios/optionrom/all] Error 2
make: *** Waiting for unfinished jobs....
...
[1599/1599] Generating QAPI rST doc reference newline-sanitized with a custom command (wrapped by meson to capture output)
==> ERROR: A failure occurred in build().
     Aborting...

Ah the multiboot.bin failure is a known issue with symlinks - see https://www.mail-archive.com/qemu-devel@nongnu.org/msg750968.html and unfortunately the wiki didn't get updated accordingly :(

Helge, can you test and see if this fixes your build issue?

Thanks for pointing to this thread. But I wasn't able to go exactly the described way.

I've finally succeeded in building Qemu natively from tarball using symlinks configuring winsymlinks:native instead of described winsymlinks:nativestrict. I haven't been able to build Qemu from git sources with symlinks active because of configure failures.

Comparing the native build with the cross build shows that pc-bios/optionrom/Makefile is only executed for native builds.

To build Qemu natively on default Msys2, I've found an alternative way WITHOUT creating symlinks by adjusting the copied (instead of linked) Makefile in build tree:

cd qemu
./configure
SMF="../../../pc-bios/optionrom/Makefile"
BMF="build/pc-bios/optionrom/Makefile"
[ -L $BMF ] || sed -i "s%^\(CURRENT_MAKEFILE\) := .*$%\1 = $SMF%" $BMF
make

The unit tests pass. Build succeeds on git sources and on tarball.

Regards, Helge.

Reply via email to