From: Tom Saeger <tom.saeger@oracle.com>
To: Naresh Kamboju <naresh.kamboju@linaro.org>
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
Rich Felker <dalias@libc.org>,
Masahiro Yamada <masahiroy@kernel.org>,
Ard Biesheuvel <ardb@kernel.org>,
Nathan Chancellor <nathan@kernel.org>,
Dennis Gilmore <dennis@ausil.us>,
Palmer Dabbelt <palmer@rivosinc.com>,
Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Tom Saeger <tom.saeger@oracle.com>,
stable@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-sh@vger.kernel.org
Subject: [PATCH 5.4 fix build id for arm64 4/6] powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds
Date: Tue, 24 Jan 2023 14:14:21 -0700 [thread overview]
Message-ID: <53a8183997789febfbe4e86920b470bc4e59c1f7.1674588616.git.tom.saeger@oracle.com> (raw)
In-Reply-To: <cover.1674588616.git.tom.saeger@oracle.com>
From: Michael Ellerman <mpe@ellerman.id.au>
commit 07b050f9290ee012a407a0f64151db902a1520f5 upstream.
Relocatable kernels must not discard relocations, they need to be
processed at runtime. As such they are included for CONFIG_RELOCATABLE
builds in the powerpc linker script (line 340).
However they are also unconditionally discarded later in the
script (line 414). Previously that worked because the earlier inclusion
superseded the discard.
However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and
riscv") introduced an earlier use of DISCARD as part of the RO_DATA
macro (line 137). With binutils < 2.36 that causes the DISCARD
directives later in the script to be applied earlier, causing .rela* to
actually be discarded at link time, leading to build warnings and a
kernel that doesn't boot:
ld: warning: discarding dynamic section .rela.init.rodata
Fix it by conditionally discarding .rela* only when CONFIG_RELOCATABLE
is disabled.
Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20230105132349.384666-2-mpe@ellerman.id.au
Signed-off-by: Tom Saeger <tom.saeger@oracle.com>
---
arch/powerpc/kernel/vmlinux.lds.S | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 4d5e1662a0ba..46dfb3701c6e 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -395,9 +395,12 @@ SECTIONS
DISCARDS
/DISCARD/ : {
*(*.EMB.apuinfo)
- *(.glink .iplt .plt .rela* .comment)
+ *(.glink .iplt .plt .comment)
*(.gnu.version*)
*(.gnu.attributes)
*(.eh_frame)
+#ifndef CONFIG_RELOCATABLE
+ *(.rela*)
+#endif
}
}
--
2.39.1
next prev parent reply other threads:[~2023-01-24 21:15 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-24 21:14 [PATCH 5.4 fix build id for arm64 with CONFIG_MODVERSIONS 0/6] Tom Saeger
2023-01-24 21:14 ` [PATCH 5.4 fix build id for arm64 1/6] x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS Tom Saeger
2023-01-24 21:14 ` [PATCH 5.4 fix build id for arm64 2/6] arch: fix broken BuildID for arm64 and riscv Tom Saeger
2023-01-24 21:14 ` [PATCH 5.4 fix build id for arm64 3/6] powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT Tom Saeger
2023-01-24 21:14 ` Tom Saeger [this message]
2023-01-24 21:14 ` [PATCH 5.4 fix build id for arm64 5/6] s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36 Tom Saeger
2023-01-24 21:14 ` [PATCH 5.4 fix build id for arm64 6/6] sh: define RUNTIME_DISCARD_EXIT Tom Saeger
2023-01-24 21:17 ` kernel test robot
2023-01-27 7:29 ` Greg Kroah-Hartman
2023-01-27 13:25 ` Tom Saeger
2023-01-27 13:29 ` John Paul Adrian Glaubitz
2023-01-27 13:32 ` Greg Kroah-Hartman
2023-01-27 2:08 ` [PATCH 5.4 fix build id for arm64 with CONFIG_MODVERSIONS 0/6] Sasha Levin
2023-01-27 7:28 ` Greg Kroah-Hartman
2023-01-27 13:40 ` Tom Saeger
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=53a8183997789febfbe4e86920b470bc4e59c1f7.1674588616.git.tom.saeger@oracle.com \
--to=tom.saeger@oracle.com \
--cc=ardb@kernel.org \
--cc=arnd@arndb.de \
--cc=dalias@libc.org \
--cc=dennis@ausil.us \
--cc=glaubitz@physik.fu-berlin.de \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=naresh.kamboju@linaro.org \
--cc=nathan@kernel.org \
--cc=palmer@rivosinc.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;
as well as URLs for NNTP newsgroup(s).