On Fri, Aug 21, 2020 at 02:33:12PM +0200, Paolo Bonzini wrote:
> On 21/08/20 12:58, Howard Spoelstra wrote:
> > I investigated a bit further and saw:
> > ldd in Fedora tells me the executable is "not a dynamic executable".
>
> How are you executing ldd? I cross built a mingw executable from Fedora
> and it was definitely using system DLLs.
>
> PIE builds and doesn't start (doesn't even reach main) but --disable-pie
> works just fine. I don't know if the same issue is present under
> Windows or it's Wine-specific.
I've just hit this problem too, and can demo it without QEMU involved
$ cat e.c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv) { fprintf(stderr, "Hello\n");
exit(EXIT_SUCCESS); }
$ x86_64-w64-mingw32-gcc -pie -o e.exe e.c
the resulting e.exe fails to run under *both* Wine and Windows 2008r2.
Either there's some extra magic compiler flags we need to pass to make
this work, or we need to just disable PIE on Windows. The original
pre-meson build used -no-pie AFAICT.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|