diff mbox series

ARM: Do not use NOCROSSREFS directive with ld.lld

Message ID 20220309220726.1525113-1-nathan@kernel.org
State New
Headers show
Series ARM: Do not use NOCROSSREFS directive with ld.lld | expand

Commit Message

Nathan Chancellor March 9, 2022, 10:07 p.m. UTC
ld.lld does not support the NOCROSSREFS directive at the moment, which
breaks the build after commit b9baf5c8c5c3 ("ARM: Spectre-BHB
workaround"):

  ld.lld: error: ./arch/arm/kernel/vmlinux.lds:34: AT expected, but got NOCROSSREFS

Support for this directive will eventually be implemented, at which
point a version check can be added. To avoid breaking the build in the
meantime, just define NOCROSSREFS to nothing when using ld.lld, with a
link to the issue for tracking.

Cc: stable@vger.kernel.org
Fixes: b9baf5c8c5c3 ("ARM: Spectre-BHB workaround")
Link: https://github.com/ClangBuiltLinux/linux/issues/1609
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
---

Since b9baf5c8c5c3 has been backported to stable, I have marked this for
stable as well, using a Fixes tag to notate that this should go back to
all releases that have b9baf5c8c5c3, not to indicate any blame of
b9baf5c8c5c3, as this is clearly an ld.lld deficiency.

It would be nice if this could be applied directly to unblock our CI if
there are no objections.

 arch/arm/include/asm/vmlinux.lds.h | 8 ++++++++
 1 file changed, 8 insertions(+)


base-commit: e7e19defa57580d679bf0d03f8a34933008a7930

Comments

Linus Torvalds March 9, 2022, 10:15 p.m. UTC | #1
On Wed, Mar 9, 2022 at 2:11 PM Nathan Chancellor <nathan@kernel.org> wrote:
>
> It would be nice if this could be applied directly to unblock our CI if
> there are no objections.

Applied.

Greg - yet another small fixup. It's commit 36168e387fa7 in my tree.

                Linus
Linus Torvalds March 9, 2022, 10:31 p.m. UTC | #2
On Wed, Mar 9, 2022 at 2:28 PM Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> What about this one too:
>         https://lore.kernel.org/r/20220309191633.2307110-1-nathan@kernel.org
>
> it should fix a arm64 build with clang.

Heh. That one just came as a pull from Catalin. It's now commit 52c9f93a9c48..

            Linus
Greg KH March 9, 2022, 10:40 p.m. UTC | #3
On Wed, Mar 09, 2022 at 02:31:24PM -0800, Linus Torvalds wrote:
> On Wed, Mar 9, 2022 at 2:28 PM Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> >
> > What about this one too:
> >         https://lore.kernel.org/r/20220309191633.2307110-1-nathan@kernel.org
> >
> > it should fix a arm64 build with clang.
> 
> Heh. That one just came as a pull from Catalin. It's now commit 52c9f93a9c48..

Great!
diff mbox series

Patch

diff --git a/arch/arm/include/asm/vmlinux.lds.h b/arch/arm/include/asm/vmlinux.lds.h
index 0ef21bfae9f6..fad45c884e98 100644
--- a/arch/arm/include/asm/vmlinux.lds.h
+++ b/arch/arm/include/asm/vmlinux.lds.h
@@ -26,6 +26,14 @@ 
 #define ARM_MMU_DISCARD(x)	x
 #endif
 
+/*
+ * ld.lld does not support NOCROSSREFS:
+ * https://github.com/ClangBuiltLinux/linux/issues/1609
+ */
+#ifdef CONFIG_LD_IS_LLD
+#define NOCROSSREFS
+#endif
+
 /* Set start/end symbol names to the LMA for the section */
 #define ARM_LMA(sym, section)						\
 	sym##_start = LOADADDR(section);				\