Page MenuHomeFreeBSD

MFC LLD changes and enable LLD as /usr/bin/ld on arm64 by default
ClosedPublic

Authored by emaste on May 18 2017, 2:13 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Apr 30, 5:02 AM
Unknown Object (File)
Mar 2 2024, 4:36 PM
Unknown Object (File)
Feb 19 2024, 10:05 PM
Unknown Object (File)
Dec 20 2023, 5:39 AM
Unknown Object (File)
Nov 12 2023, 12:38 AM
Unknown Object (File)
Nov 8 2023, 6:28 PM
Unknown Object (File)
Nov 7 2023, 6:14 PM
Unknown Object (File)
Oct 10 2023, 11:33 PM
Subscribers

Details

Summary
MFC r316629: do not require binutils port when using lld as ld

r279908 added logic to Makefile.inc1 to automatically set
CROSS_BINUTILS_PREFIX for architectures not supported by the in-tree
binutils: arm64 when first introduced, and later riscv64 as well.

LLVM's LLD linker is now included in the base system, and is enabled by
default for arm64 and capable of linking world and kernel. Thus, avoid
automatically setting CROSS_BINUTILS_PREFIX and requiring the binutils
port if WITH_LLD_IS_LD is true.

MFC r317608: revert r313473 (Disable LLD_IS_LD option combinations that fail)

r316647 corrected the build of tblgen and libllvm as dependencies for
LLD so undo the temporary seat-belt.

We still want to extend the build infrastructure to automatically detect
the case where the host LLD can be used instead of building a bootstrap
LLD, and likely extend libllvmminimal to meet LLD's needs for cases
where the build includes LLD but not Clang.

MFC r316684: Make WITHOUT_TOOLCHAIN imply WITHOUT_LLD.

LLD is a toolchain component.

MFC r316647: Introduce LLD_BOOTSTRAP to control lld as bootstrap linker

Add WITH_LLD_BOOTSTRAP and WITHOUT_LLD_BOOTSTRAP knobs, similar to the
Clang bootstrap knobs.

Sponsored by:   The FreeBSD Foundation

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable