qemu-stable
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2] Partially revert "build: -no-pie is no functional linker


From: Richard Henderson
Subject: Re: [PATCH v2] Partially revert "build: -no-pie is no functional linker flag"
Date: Thu, 14 Oct 2021 17:39:04 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0

On 10/14/21 5:22 PM, Jessica Clarke wrote:
On 15 Oct 2021, at 01:12, Richard Henderson <richard.henderson@linaro.org> 
wrote:

On 10/14/21 4:30 PM, Michael Roth wrote:
Quoting Jessica Clarke (2021-08-05 14:25:45)
This partially reverts commit bbd2d5a8120771ec59b86a80a1f51884e0a26e53.

This commit was misguided and broke using --disable-pie on any distro
that enables PIE by default in their compiler driver, including Debian
and its derivatives. Whilst -no-pie is not a linker flag, it is a
compiler driver flag that ensures -pie is not automatically passed by it
to the linker. Without it, all compile_prog checks will fail as any code
built with the explicit -fno-pie will fail to link with the implicit
default -pie due to trying to use position-dependent relocations. The
only bug that needed fixing was LDFLAGS_NOPIE being used as a flag for
the linker itself in pc-bios/optionrom/Makefile.

Note this does not reinstate exporting LDFLAGS_NOPIE, as it is unused,
since the only previous use was the one that should not have existed. I
have also updated the comment for the -fno-pie and -no-pie checks to
reflect what they're actually needed for.

Fixes: bbd2d5a8120771ec59b86a80a1f51884e0a26e53
Cc: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Jessica Clarke <jrtc27@jrtc27.com>
Ping. --disable-pie builds are broken on Ubuntu 20.04 without this regression
fix. Looking to include it for v6.0.1/v6.1.1.

Sorry, missed this the first time around.

I think a better fix is to remove the direct invocation of ld in 
pc-bios/optionrom/Makefile, and instead rely on the compiler driver.  All of 
the local ldflags can be passed through via -Wl, but we'd get no-pie via 
CFLAGS_NOPIE.

I am not changing anything about pc-bios/optionrom/Makefile. Whether
you want to remove direct ld invocation or not, these changes are
needed to reinstate --disable-pie support for everything else, which is
currently broken. The only reason to mention pc-bios/optionrom/Makefile
in the commit message is to explain why the original commit did what it
did and what part of it is legitimate (even if there are better ways to
have done it) and thus not reverted in this patch.

Ah, quite right -- currently configure fails.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]