Il sab 11 nov 2023, 21:09 Volker RĂ¼melin <vr_q...@t-online.de> ha scritto:
> No, this doesn't look good. This patch again breaks the native Windows > build with MSYS2 and mingw64 cross compile probably too. > Doh, you're right of course ( https://lists.nongnu.org/archive/html/qemu-devel/2023-05/msg05486.html). We need to add qemu_ldflags by hand to all executable. I will look into adding no-pie support to Meson natively. Paolo > See > > https://gitlab.com/qemu-project/qemu/-/issues/1664 > > > https://lore.kernel.org/qemu-devel/20230522080816.66320-1-pbonz...@redhat.com/ > > https://lore.kernel.org/qemu-devel/20230523073029.19549-1-pbonz...@redhat.com/ > > and the big comment above the changed lines in meson.build. > > With best regards, > Volker > > >> /usr/bin/ld: libcommon.fa.p/hw_core_cpu-common.c.o: relocation > R_X86_64_32 against `.rodata' can not be used when making a PIE object; > recompile with > >> -fPIE > >> /usr/bin/ld: failed to set dynamic section sizes: bad value > >> > >> This is failing for *all* executables, including tests, qemu-img, etc. > >> > >> The following change fixes it: > >> > >> diff --git a/meson.build b/meson.build > >> index a9c4f28247..0b7ca45d48 100644 > >> --- a/meson.build > >> +++ b/meson.build > >> @@ -278,7 +278,8 @@ endif > >> # tries to build an executable instead of a shared library and > fails. So > >> # don't add -no-pie anywhere and cross fingers. :( > >> if not get_option('b_pie') > >> - qemu_common_flags += cc.get_supported_arguments('-fno-pie', > '-no-pie') > >> + qemu_common_flags += cc.get_supported_arguments('-fno-pie') > >> + qemu_ldflags += cc.get_supported_arguments('-no-pie') > >> endif > >> > >> if not get_option('stack_protector').disabled() > >