Patch "riscv: Link with '-z norelro'" has been added to the 6.3-stable tree

gregkh at linuxfoundation.org gregkh at linuxfoundation.org
Thu Jun 22 01:08:21 PDT 2023


This is a note to let you know that I've just added the patch titled

    riscv: Link with '-z norelro'

to the 6.3-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     riscv-link-with-z-norelro.patch
and it can be found in the queue-6.3 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable at vger.kernel.org> know about it.


>From nathan at kernel.org  Thu Jun 22 09:37:45 2023
From: Nathan Chancellor <nathan at kernel.org>
Date: Tue, 20 Jun 2023 17:44:50 +0000
Subject: riscv: Link with '-z norelro'
To: gregkh at linuxfoundation.org, sashal at kernel.org
Cc: palmer at dabbelt.com, conor at kernel.org, ndesaulniers at google.com, nathan at kernel.org, linux-riscv at lists.infradead.org, stable at vger.kernel.org, llvm at lists.linux.dev, kernel test robot <lkp at intel.com>
Message-ID: <20230620-6-3-fix-got-relro-error-lld-v1-1-f3e71ec912d1 at kernel.org>

From: Nathan Chancellor <nathan at kernel.org>

This patch fixes a stable only patch, so it has no direct upstream
equivalent.

After a stable only patch to explicitly handle the '.got' section to
handle an orphan section warning from the linker, certain configurations
error when linking with ld.lld, which enables relro by default:

  ld.lld: error: section: .got is not contiguous with other relro sections

This has come up with other architectures before, such as arm and arm64
in commit 0cda9bc15dfc ("ARM: 9038/1: Link with '-z norelro'") and
commit 3b92fa7485eb ("arm64: link with -z norelro regardless of
CONFIG_RELOCATABLE"). Additionally, '-z norelro' is used unconditionally
for RISC-V upstream after commit 26e7aacb83df ("riscv: Allow to
downgrade paging mode from the command line"), which alluded to this
issue for the same reason. Bring 6.3 in line with mainline and link with
'-z norelro', which resolves the above link failure.

Fixes: e6d1562dd4e9 ("riscv: vmlinux.lds.S: Explicitly handle '.got' section")
Reported-by: kernel test robot <lkp at intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202306192231.DJmWr6BX-lkp@intel.com/
Signed-off-by: Nathan Chancellor <nathan at kernel.org>
Acked-by: Palmer Dabbelt <palmer at rivosinc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
---
 arch/riscv/Makefile |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/riscv/Makefile
+++ b/arch/riscv/Makefile
@@ -7,7 +7,7 @@
 #
 
 OBJCOPYFLAGS    := -O binary
-LDFLAGS_vmlinux :=
+LDFLAGS_vmlinux := -z norelro
 ifeq ($(CONFIG_DYNAMIC_FTRACE),y)
 	LDFLAGS_vmlinux := --no-relax
 	KBUILD_CPPFLAGS += -DCC_USING_PATCHABLE_FUNCTION_ENTRY


Patches currently in stable-queue which might be from nathan at kernel.org are

queue-6.3/riscv-link-with-z-norelro.patch



More information about the linux-riscv mailing list