Skip to content

Commit

Permalink
ARM: Do not use NOCROSSREFS directive with ld.lld
Browse files Browse the repository at this point in the history
ld.lld does not support the NOCROSSREFS directive at the moment, which
breaks the build after commit b9baf5c ("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: b9baf5c ("ARM: Spectre-BHB workaround")
Link: ClangBuiltLinux#1609
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
nathanchance authored and torvalds committed Mar 9, 2022
1 parent 37c333a commit 36168e3
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions arch/arm/include/asm/vmlinux.lds.h
Original file line number Diff line number Diff line change
Expand Up @@ -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); \
Expand Down

0 comments on commit 36168e3

Please sign in to comment.