[llvm-dev] Level of support for ARM LLD

Ed Maste via llvm-dev llvm-dev at lists.llvm.org
Tue Feb 27 06:06:14 PST 2018

On 27 February 2018 at 05:29, Peter Smith via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> I've got some downstream patches
> for v5 and v6 support (limit branch range, and use different
> instructions in stubs), however I don't think anyone has actually
> needed support yet.

For FreeBSD we're on a path to having Clang + lld as our toolchain for
all Tier-1 architectures. Tier 2 and 3 architectures may rely on an
external toolchain (Clang- or GCC-based) installed from a package or
from the ports collection. I'd like to have v6 as Tier 1, in part to
support the (original) Raspberry Pi.

A number of companies are shipping products based on FreeBSD/arm, on
v5 and up. As far as I know those using older processors are also
using older versions of FreeBSD (with a toolchain based on GCC and
Binutils). I suspect that they'll use more recent processors and a
contemporary FreeBSD version for new designs.

> Big endian support is a little trickier than for
> other architectures as the linker needs to endian reverse all the
> instructions. There isn't much use of Big Endian on Arm outside of
> networking though so getting access to hardware to test on is
> difficult.

We do have BE Arm support in FreeBSD, but as with your comment I do
not think it is widely used, and I would not be bothered if it remains
a Tier 2 architecture in FreeBSD.

In short, for FreeBSD I hope to see v6 be well-supported by lld. If v5
and BE support arrives in lld we'll use it, but from my perspective
it's a rather low priority.

More information about the llvm-dev mailing list