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()
>
>

Reply via email to