[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] meson: remove -no-pie linker flag
|
From: |
Paolo Bonzini |
|
Subject: |
Re: [PATCH] meson: remove -no-pie linker flag |
|
Date: |
Tue, 23 May 2023 09:23:15 +0200 |
On Mon, May 22, 2023 at 4:39 PM Richard Henderson
<richard.henderson@linaro.org> wrote:
> > + # What about linker flags? For a static build, no PIE is implied by
> > -static
> > + # which we added above.
>
> Is it though? That was the major problem at the time: it wasn't.
It's what configure was doing:
if test "$static" = "yes"; then
if test "$pie" != "no" && compile_prog "-Werror -fPIE -DPIE"
"-static-pie"; then
CONFIGURE_CFLAGS="-fPIE -DPIE $CONFIGURE_CFLAGS"
pie="yes"
elif test "$pie" = "yes"; then
error_exit "-static-pie not available due to missing toolchain support"
else
pie="no"
QEMU_CFLAGS="-fno-pie $QEMU_CFLAGS"
fi
elif test "$pie" = "no"; then
if compile_prog "-Werror -fno-pie" "-no-pie"; then
CONFIGURE_CFLAGS="-fno-pie $CONFIGURE_CFLAGS"
CONFIGURE_LDFLAGS="-no-pie $CONFIGURE_LDFLAGS"
QEMU_CFLAGS="-fno-pie -no-pie $QEMU_CFLAGS"
fi
fi
Note that the code to use -no-pie is only used if test "$static" = no.
> Trying both now, e.g. '--static --disable-system --disable-tools
> --disable-docs',
> a link line contains
>
> ... -Wl,--as-needed -Wl,--no-undefined -pie -Wl,--whole-archive libhwcore.fa
> ...
> ^^^^
>
> Where does that come from, and why isn't -no-pie the antidote?
That comes from Meson's -Db_pie=true, but it is followed by
-static-pie later in the command line so all is good.
In other words, whatever we add second in the command line wins and
that is good for executables; but it is a problem when -no-pie
overrides -shared, thus messing up compilation of any shared library.
Paolo
- [PATCH] meson: remove -no-pie linker flag, Paolo Bonzini, 2023/05/22
- Re: [PATCH] meson: remove -no-pie linker flag, Philippe Mathieu-Daudé, 2023/05/22
- Re: [PATCH] meson: remove -no-pie linker flag, Richard Henderson, 2023/05/22
- Re: [PATCH] meson: remove -no-pie linker flag,
Paolo Bonzini <=
- Re: [PATCH] meson: remove -no-pie linker flag, Richard Henderson, 2023/05/22
- Re: [PATCH] meson: remove -no-pie linker flag, Volker Rümelin, 2023/05/23
- Re: [PATCH] meson: remove -no-pie linker flag, Daniel P . Berrangé, 2023/05/23