From: Paolo Bonzini <pbonzini@redhat.com>
To: Christian Ehrhardt <christian.ehrhardt@canonical.com>,
qemu-devel <qemu-devel@nongnu.org>
Subject: Re: [PATCH] build: -no-pie is no functional linker flag
Date: Mon, 14 Dec 2020 17:28:19 +0100 [thread overview]
Message-ID: <aaddf07e-fab6-d268-7d1d-ecdd446a6c12@redhat.com> (raw)
In-Reply-To: <20201214150938.1297512-1-christian.ehrhardt@canonical.com>
On 14/12/20 16:09, Christian Ehrhardt wrote:
> Recent binutils changes dropping unsupported options [1] caused a build
> issue in regard to the optionroms.
>
> ld -m elf_i386 -T /<<PKGBUILDDIR>>/pc-bios/optionrom//flat.lds -no-pie \
> -s -o multiboot.img multiboot.o
> ld.bfd: Error: unable to disambiguate: -no-pie (did you mean --no-pie ?)
>
> This isn't really a regression in ld.bfd, filing the bug upstream
> revealed that this never worked as a ld flag [2] - in fact it seems we
> were by accident setting --nmagic).
>
> Since it never had the wanted effect this usage of LDFLAGS_NOPIE, should be
> droppable without any effect. This also is the only use-case of LDFLAGS_NOPIE
> in .mak, therefore we can also remove it from being added there.
>
> [1]: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=983d925d
> [2]: https://sourceware.org/bugzilla/show_bug.cgi?id=27050#c5
>
> Signed-off-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
-no-pie (not -fno-pie!) _can_ be passed to gcc when it is used to drive
the linker. But indeed since the only use is in an "ld" invocation, the
patch is okay. Thanks!
Paolo
> ---
> configure | 3 ---
> pc-bios/optionrom/Makefile | 1 -
> 2 files changed, 4 deletions(-)
>
> diff --git a/configure b/configure
> index 3f823ed163..61c17c2dde 100755
> --- a/configure
> +++ b/configure
> @@ -2133,7 +2133,6 @@ EOF
> # Check we support --no-pie first; we will need this for building ROMs.
> if compile_prog "-Werror -fno-pie" "-no-pie"; then
> CFLAGS_NOPIE="-fno-pie"
> - LDFLAGS_NOPIE="-no-pie"
> fi
>
> if test "$static" = "yes"; then
> @@ -2149,7 +2148,6 @@ if test "$static" = "yes"; then
> fi
> elif test "$pie" = "no"; then
> CONFIGURE_CFLAGS="$CFLAGS_NOPIE $CONFIGURE_CFLAGS"
> - CONFIGURE_LDFLAGS="$LDFLAGS_NOPIE $CONFIGURE_LDFLAGS"
> elif compile_prog "-Werror -fPIE -DPIE" "-pie"; then
> CONFIGURE_CFLAGS="-fPIE -DPIE $CONFIGURE_CFLAGS"
> CONFIGURE_LDFLAGS="-pie $CONFIGURE_LDFLAGS"
> @@ -6768,7 +6766,6 @@ echo "QEMU_CXXFLAGS=$QEMU_CXXFLAGS" >> $config_host_mak
> echo "GLIB_CFLAGS=$glib_cflags" >> $config_host_mak
> echo "GLIB_LIBS=$glib_libs" >> $config_host_mak
> echo "QEMU_LDFLAGS=$QEMU_LDFLAGS" >> $config_host_mak
> -echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak
> echo "LD_I386_EMULATION=$ld_i386_emulation" >> $config_host_mak
> echo "EXESUF=$EXESUF" >> $config_host_mak
> echo "HOST_DSOSUF=$HOST_DSOSUF" >> $config_host_mak
> diff --git a/pc-bios/optionrom/Makefile b/pc-bios/optionrom/Makefile
> index 084fc10f05..30771f8d17 100644
> --- a/pc-bios/optionrom/Makefile
> +++ b/pc-bios/optionrom/Makefile
> @@ -41,7 +41,6 @@ override CFLAGS += $(call cc-option, $(Wa)-32)
>
> LD_I386_EMULATION ?= elf_i386
> override LDFLAGS = -m $(LD_I386_EMULATION) -T $(SRC_DIR)/flat.lds
> -override LDFLAGS += $(LDFLAGS_NOPIE)
>
> all: multiboot.bin linuxboot.bin linuxboot_dma.bin kvmvapic.bin pvh.bin
>
>
prev parent reply other threads:[~2020-12-14 16:29 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-14 15:09 [PATCH] build: -no-pie is no functional linker flag Christian Ehrhardt
2020-12-14 16:28 ` Paolo Bonzini [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aaddf07e-fab6-d268-7d1d-ecdd446a6c12@redhat.com \
--to=pbonzini@redhat.com \
--cc=christian.ehrhardt@canonical.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).