public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: "Nick Desaulniers" <ndesaulniers@google.com>,
	"kernelci . org bot" <bot@kernelci.org>,
	"Quentin Perret" <qperret@google.com>,
	"Nathan Chancellor" <natechancellor@gmail.com>,
	"Ard Biesheuvel" <ardb@kernel.org>,
	"Alan Modra" <amodra@gmail.com>,
	"Fāng-ruì Sòng" <maskray@google.com>,
	"Catalin Marinas" <catalin.marinas@arm.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
Subject: [PATCH 5.4 09/71] arm64: link with -z norelro for LLD or aarch64-elf
Date: Mon, 28 Jun 2021 10:29:02 -0400	[thread overview]
Message-ID: <20210628143004.32596-10-sashal@kernel.org> (raw)
In-Reply-To: <20210628143004.32596-1-sashal@kernel.org>

From: Nick Desaulniers <ndesaulniers@google.com>

commit 311bea3cb9ee20ef150ca76fc60a592bf6b159f5 upstream.

With GNU binutils 2.35+, linking with BFD produces warnings for vmlinux:
aarch64-linux-gnu-ld: warning: -z norelro ignored

BFD can produce this warning when the target emulation mode does not
support RELRO program headers, and -z relro or -z norelro is passed.

Alan Modra clarifies:
  The default linker emulation for an aarch64-linux ld.bfd is
  -maarch64linux, the default for an aarch64-elf linker is
  -maarch64elf.  They are not equivalent.  If you choose -maarch64elf
  you get an emulation that doesn't support -z relro.

The ARCH=arm64 kernel prefers -maarch64elf, but may fall back to
-maarch64linux based on the toolchain configuration.

LLD will always create RELRO program header regardless of target
emulation.

To avoid the above warning when linking with BFD, pass -z norelro only
when linking with LLD or with -maarch64linux.

Fixes: 3b92fa7485eb ("arm64: link with -z norelro regardless of CONFIG_RELOCATABLE")
Fixes: 3bbd3db86470 ("arm64: relocatable: fix inconsistencies in linker script and options")
Cc: <stable@vger.kernel.org> # 5.0.x-
Reported-by: kernelci.org bot <bot@kernelci.org>
Reported-by: Quentin Perret <qperret@google.com>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Cc: Alan Modra <amodra@gmail.com>
Cc: Fāng-ruì Sòng <maskray@google.com>
Link: https://lore.kernel.org/r/20201218002432.788499-1-ndesaulniers@google.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/arm64/Makefile | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index cd8f3cdabfd0..d227cf87c48f 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -10,7 +10,7 @@
 #
 # Copyright (C) 1995-2001 by Russell King
 
-LDFLAGS_vmlinux	:=--no-undefined -X -z norelro
+LDFLAGS_vmlinux	:=--no-undefined -X
 CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET)
 GZFLAGS		:=-9
 
@@ -82,17 +82,21 @@ CHECKFLAGS	+= -D__AARCH64EB__
 AS		+= -EB
 # Prefer the baremetal ELF build target, but not all toolchains include
 # it so fall back to the standard linux version if needed.
-KBUILD_LDFLAGS	+= -EB $(call ld-option, -maarch64elfb, -maarch64linuxb)
+KBUILD_LDFLAGS	+= -EB $(call ld-option, -maarch64elfb, -maarch64linuxb -z norelro)
 UTS_MACHINE	:= aarch64_be
 else
 KBUILD_CPPFLAGS	+= -mlittle-endian
 CHECKFLAGS	+= -D__AARCH64EL__
 AS		+= -EL
 # Same as above, prefer ELF but fall back to linux target if needed.
-KBUILD_LDFLAGS	+= -EL $(call ld-option, -maarch64elf, -maarch64linux)
+KBUILD_LDFLAGS	+= -EL $(call ld-option, -maarch64elf, -maarch64linux -z norelro)
 UTS_MACHINE	:= aarch64
 endif
 
+ifeq ($(CONFIG_LD_IS_LLD), y)
+KBUILD_LDFLAGS	+= -z norelro
+endif
+
 CHECKFLAGS	+= -D__aarch64__
 
 ifeq ($(CONFIG_ARM64_MODULE_PLTS),y)
-- 
2.30.2


  parent reply	other threads:[~2021-06-28 14:33 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-28 14:28 [PATCH 5.4 00/71] 5.4.129-rc1 review Sasha Levin
2021-06-28 14:28 ` [PATCH 5.4 01/71] module: limit enabling module.sig_enforce Sasha Levin
2021-06-28 14:28 ` [PATCH 5.4 02/71] Revert "drm/amdgpu/gfx9: fix the doorbell missing when in CGPG issue." Sasha Levin
2021-06-28 14:28 ` [PATCH 5.4 03/71] Revert "drm/amdgpu/gfx10: enlarge CP_MEC_DOORBELL_RANGE_UPPER to cover full doorbell." Sasha Levin
2021-06-28 14:28 ` [PATCH 5.4 04/71] drm/nouveau: wait for moving fence after pinning v2 Sasha Levin
2021-06-28 14:28 ` [PATCH 5.4 05/71] drm/radeon: wait for moving fence after pinning Sasha Levin
2021-06-28 14:28 ` [PATCH 5.4 06/71] ARM: 9081/1: fix gcc-10 thumb2-kernel regression Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 07/71] mmc: meson-gx: use memcpy_to/fromio for dram-access-quirk Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 08/71] kbuild: add CONFIG_LD_IS_LLD Sasha Levin
2021-06-28 14:29 ` Sasha Levin [this message]
2021-06-28 14:29 ` [PATCH 5.4 10/71] MIPS: generic: Update node names to avoid unit addresses Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 11/71] spi: spi-nxp-fspi: move the register operation after the clock enable Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 12/71] Revert "PCI: PM: Do not read power state in pci_enable_device_flags()" Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 13/71] dmaengine: zynqmp_dma: Fix PM reference leak in zynqmp_dma_alloc_chan_resourc() Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 14/71] mac80211: remove warning in ieee80211_get_sband() Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 15/71] mac80211_hwsim: drop pending frames on stop Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 16/71] cfg80211: call cfg80211_leave_ocb when switching away from OCB Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 17/71] dmaengine: rcar-dmac: Fix PM reference leak in rcar_dmac_probe() Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 18/71] dmaengine: mediatek: free the proper desc in desc_free handler Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 19/71] dmaengine: mediatek: do not issue a new desc if one is still current Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 20/71] dmaengine: mediatek: use GFP_NOWAIT instead of GFP_ATOMIC in prep_dma Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 21/71] net: ipv4: Remove unneed BUG() function Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 22/71] mac80211: drop multicast fragments Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 23/71] net: ethtool: clear heap allocations for ethtool function Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 24/71] ping: Check return value of function 'ping_queue_rcv_skb' Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 25/71] inet: annotate date races around sk->sk_txhash Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 26/71] net: phy: dp83867: perform soft reset and retain established link Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 27/71] net: caif: fix memory leak in ldisc_open Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 28/71] net/packet: annotate accesses to po->bind Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 29/71] net/packet: annotate accesses to po->ifindex Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 30/71] r8152: Avoid memcpy() over-reading of ETH_SS_STATS Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 31/71] sh_eth: " Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 32/71] r8169: " Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 33/71] KVM: selftests: Fix kvm_check_cap() assertion Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 34/71] net: qed: Fix memcpy() overflow of qed_dcbx_params() Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 35/71] recordmcount: Correct st_shndx handling Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 36/71] PCI: Add AMD RS690 quirk to enable 64-bit DMA Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 37/71] net: ll_temac: Add memory-barriers for TX BD access Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 38/71] net: ll_temac: Avoid ndo_start_xmit returning NETDEV_TX_BUSY Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 39/71] pinctrl: stm32: fix the reported number of GPIO lines per bank Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 40/71] nilfs2: fix memory leak in nilfs_sysfs_delete_device_group Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 41/71] KVM: do not allow mapping valid but non-reference-counted pages Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 42/71] i2c: robotfuzz-osif: fix control-request directions Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 43/71] kthread_worker: split code for canceling the delayed work timer Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 44/71] kthread: prevent deadlock when kthread_mod_delayed_work() races with kthread_cancel_delayed_work_sync() Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 45/71] mm: add VM_WARN_ON_ONCE_PAGE() macro Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 46/71] mm/rmap: remove unneeded semicolon in page_not_mapped() Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 47/71] mm/rmap: use page_not_mapped in try_to_unmap() Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 48/71] mm, thp: use head page in __migration_entry_wait() Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 49/71] mm/thp: fix __split_huge_pmd_locked() on shmem migration entry Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 50/71] mm/thp: make is_huge_zero_pmd() safe and quicker Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 51/71] mm/thp: try_to_unmap() use TTU_SYNC for safe splitting Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 52/71] mm/thp: fix vma_address() if virtual address below file offset Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 53/71] mm/thp: fix page_address_in_vma() on file THP tails Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 54/71] mm/thp: unmap_mapping_page() to fix THP truncate_cleanup_page() Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 55/71] mm: thp: replace DEBUG_VM BUG with VM_WARN when unmap fails for split Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 56/71] mm: page_vma_mapped_walk(): use page for pvmw->page Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 57/71] mm: page_vma_mapped_walk(): settle PageHuge on entry Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 58/71] mm: page_vma_mapped_walk(): use pmde for *pvmw->pmd Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 59/71] mm: page_vma_mapped_walk(): prettify PVMW_MIGRATION block Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 60/71] mm: page_vma_mapped_walk(): crossing page table boundary Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 61/71] mm: page_vma_mapped_walk(): add a level of indentation Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 62/71] mm: page_vma_mapped_walk(): use goto instead of while (1) Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 63/71] mm: page_vma_mapped_walk(): get vma_address_end() earlier Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 64/71] mm/thp: fix page_vma_mapped_walk() if THP mapped by ptes Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 65/71] mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk() Sasha Levin
2021-06-28 14:29 ` [PATCH 5.4 66/71] mm, futex: fix shared futex pgoff on shmem huge page Sasha Levin
2021-06-28 14:30 ` [PATCH 5.4 67/71] certs: Add wrapper function to check blacklisted binary hash Sasha Levin
2021-06-28 14:30 ` [PATCH 5.4 68/71] x86/efi: move common keyring handler functions to new file Sasha Levin
2021-06-28 14:30 ` [PATCH 5.4 69/71] certs: Add EFI_CERT_X509_GUID support for dbx entries Sasha Levin
2021-06-28 14:30 ` [PATCH 5.4 70/71] certs: Move load_system_certificate_list to a common function Sasha Levin
2021-06-28 14:30 ` [PATCH 5.4 71/71] Linux 5.4.129-rc1 Sasha Levin
2021-06-28 20:57 ` [PATCH 5.4 00/71] 5.4.129-rc1 review Shuah Khan
2021-06-28 21:20   ` Sasha Levin
2021-06-29  6:11     ` Greg Kroah-Hartman
2021-06-29  6:11   ` Greg Kroah-Hartman
2021-06-29 14:00     ` Shuah Khan
2021-06-29  6:24 ` Samuel Zou
2021-06-29  8:39 ` Naresh Kamboju
2021-06-29 12:05 ` Sudip Mukherjee
2021-06-29 18:20 ` Guenter Roeck

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=20210628143004.32596-10-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=amodra@gmail.com \
    --cc=ardb@kernel.org \
    --cc=bot@kernelci.org \
    --cc=catalin.marinas@arm.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maskray@google.com \
    --cc=natechancellor@gmail.com \
    --cc=ndesaulniers@google.com \
    --cc=qperret@google.com \
    --cc=stable@vger.kernel.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