Enable LLVM_BINUTILS by default
Starting in 2014 FreeBSD migrated from GNU binutils to ELF Tool Chain
tools. At that time there were no usable LLVM versions of those tools,
but they have been developing rapidly since then. Migrate to LLVML's
tools for both functionality and maintainability reasons.
This will eventually support the use of link-time optimization (LTO) in
the FreeBSD base system. LTO runs optimization passes over the entire
executable (or library) at link time and thus allows for more effective
optimization than when performed on individual compilation units.
When using LTO object files (.o) including those contained in static
library archives (.a) contain LLVM IR bitcode rather than target
object code. This means that utilities that operate on object files
need to support LLVM IR.
As with ELF Tool Chain the LLVM tools aim for command line and output
format compatibility with GNU binutils, although there are a few minor
differences. Where these cause a material issue (breaking a port or
eliminating required functionality) we can submit LLVM bugs and work
on patches.
PR: 258872 (exp-run)
Reviewed by: bapt
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D49361