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.