On Fri, Aug 21, 2020 at 8:15 AM Howard Spoelstra <[email protected]> wrote:

>
>
> On Wed, Aug 19, 2020 at 11:32 PM Paolo Bonzini <[email protected]>
> wrote:
>
>> The following changes since commit
>> d0ed6a69d399ae193959225cdeaa9382746c91cc:
>>
>>   Update version for v5.1.0 release (2020-08-11 17:07:03 +0100)
>>
>> are available in the Git repository at:
>>
>>   https://gitlab.com/bonzini/qemu.git tags/for-upstream
>>
>> for you to fetch changes up to 2eddb3c65821dce76433d5da6f3e6419349d1b77:
>>
>>
>> Hi,
>
> I attempted to cross compile Qemu for Windows from the meson branch today
> using a Fedora 32 VM and using MSYS2 .
>
> In both cases I compiled using:
>  ./configure --cross-prefix=x86_64-w64-mingw32- --target-list=ppc-softmmu
> --enable-gtk --enable-sdl
>
> For the builds to run on Windows I normally copy the pc-bios folder and
> the required dlls (from \msys64\mingw64\bin for the MSYS2 build and from
> /usr/x86_64-w64-mingw32/sys-root/mingw/bin for the Fedora based build).
> This has always worked in the past.
>
> As noticed earlier in discussion with Paolo, with MSYS2 there appears to
> be a difference in how grep works on Linux and Windows. Using grep 3.1 as
> provided by MSYS2, the file config-all-devices.mak file stays empty.
>
> On Fedora the compilation process completed successfully. However, the
> binary crashes. This is the backtrace I could get:
>
> (gdb) attach 11528
> Attaching to process 11528
> [New Thread 11528.0x218]
> [New Thread 11528.0x3380]
> [New Thread 11528.0xf80]
> Reading symbols from C:\qemu-debugging\gdb.exe...(no debugging symbols
> found)...
> done.
> 0x00007ffb9ef0f8b1 in ntdll!DbgBreakPoint ()
>    from C:\WINDOWS\SYSTEM32\ntdll.dll
> (gdb) thread apply all bt full
>
> Thread 3 (Thread 11528.0xf80):
> #0  0x00007ffb9ef0f8b1 in ntdll!DbgBreakPoint ()
>    from C:\WINDOWS\SYSTEM32\ntdll.dll
> No symbol table info available.
> #1  0x00007ffb9ef3c90e in ntdll!DbgUiRemoteBreakin ()
>    from C:\WINDOWS\SYSTEM32\ntdll.dll
> No symbol table info available.
> #2  0x00007ffb9dbe6fd4 in KERNEL32!BaseThreadInitThunk ()
>    from C:\WINDOWS\System32\kernel32.dll
> No symbol table info available.
> #3  0x00007ffb9eebcec1 in ntdll!RtlUserThreadStart ()
>    from C:\WINDOWS\SYSTEM32\ntdll.dll
> No symbol table info available.
> #4  0x0000000000000000 in ?? ()
> No symbol table info available.
> Backtrace stopped: previous frame inner to this frame (corrupt stack?)
>
> Thread 2 (Thread 11528.0x3380):
> #0  0x00007ffb9ef0c914 in ntdll!ZwWaitForMultipleObjects ()
>    from C:\WINDOWS\SYSTEM32\ntdll.dll
> No symbol table info available.
> #1  0x00007ffb9c658910 in WaitForMultipleObjectsEx ()
>    from C:\WINDOWS\System32\KernelBase.dll
> ---Type <return> to continue, or q <return> to quit---
> No symbol table info available.
> #2  0x00007ffb9c65880e in WaitForMultipleObjects ()
>    from C:\WINDOWS\System32\KernelBase.dll
> No symbol table info available.
> #3  0x00000000004291a5 in ?? ()
> No symbol table info available.
> #4  0x00007ffb9dbe6fd4 in KERNEL32!BaseThreadInitThunk ()
>    from C:\WINDOWS\System32\kernel32.dll
> No symbol table info available.
> #5  0x00007ffb9eebcec1 in ntdll!RtlUserThreadStart ()
>    from C:\WINDOWS\SYSTEM32\ntdll.dll
> No symbol table info available.
> #6  0x0000000000000000 in ?? ()
> No symbol table info available.
> Backtrace stopped: previous frame inner to this frame (corrupt stack?)
>
> Thread 1 (Thread 11528.0x218):
> #0  0x00007ffb9ef0c914 in ntdll!ZwWaitForMultipleObjects ()
>    from C:\WINDOWS\SYSTEM32\ntdll.dll
> No symbol table info available.
> #1  0x00007ffb9c658910 in WaitForMultipleObjectsEx ()
>    from C:\WINDOWS\System32\KernelBase.dll
> No symbol table info available.
> #2  0x00007ffb9c65880e in WaitForMultipleObjects ()
> ---Type <return> to continue, or q <return> to quit---
>    from C:\WINDOWS\System32\KernelBase.dll
> No symbol table info available.
> #3  0x0000000000483e9c in ?? ()
> No symbol table info available.
> #4  0x0000000000551049 in ?? ()
> No symbol table info available.
> #5  0x0000000000550498 in ?? ()
> No symbol table info available.
> #6  0x00000000005504fd in ?? ()
> No symbol table info available.
> #7  0x0000000000551b63 in ?? ()
> No symbol table info available.
> #8  0x00000000005489d7 in ?? ()
> No symbol table info available.
> #9  0x0000000000549421 in ?? ()
> No symbol table info available.
> #10 0x0000000000545e0b in ?? ()
> No symbol table info available.
> #11 0x000000000054a922 in ?? ()
> No symbol table info available.
> #12 0x0000000000545e0b in ?? ()
> No symbol table info available.
> #13 0x000000000054a94d in ?? ()
> No symbol table info available.
> ---Type <return> to continue, or q <return> to quit---
> #14 0x00000000004017e5 in ?? ()
> No symbol table info available.
> #15 0x0000000000401472 in ?? ()
> No symbol table info available.
> #16 0x000000000040117c in ?? ()
> No symbol table info available.
> #17 0x00007ffb9dbe6fd4 in KERNEL32!BaseThreadInitThunk ()
>    from C:\WINDOWS\System32\kernel32.dll
> No symbol table info available.
> #18 0x00007ffb9eebcec1 in ntdll!RtlUserThreadStart ()
>    from C:\WINDOWS\SYSTEM32\ntdll.dll
> No symbol table info available.
> #19 0x0000000000000000 in ?? ()
> No symbol table info available.
> Backtrace stopped: previous frame inner to this frame (corrupt stack?)
> (gdb)
>
>
I investigated a bit further and saw:
ldd in Fedora tells me the executable is "not a dynamic executable".

Meson seems to default to try a static build and enable pie, whereas a
normal build would require --static to enable that and have pie=no

Best,
Howard

Reply via email to