[PATCH] D31528: [ELF][MIPS] Multi-GOT implementation

Ed Maste via llvm-commits llvm-commits at lists.llvm.org
Thu May 4 14:03:11 PDT 2017


On 4 May 2017 at 04:33, Matthew Fortune via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
> For MIPS
> this is upstream binutils BFD linker and glibc and I would generally expect
> these to be the places to debate and discuss ABI changes as the level of
> compatibility and correctness these projects aim for is extremely high.

We're on a path in FreeBSD to use LLD as the base system linker for
32- and 64-bit ARM and x86, and would like to use it as a production
base system linker for the remaining architectures: 32- and 64-bit
MIPS and PowerPC, as well as sparc64 and RISC-V.

I think FreeBSD presents a very interesting case for exploring a
future MIPS ABI here. MIPS is important to FreeBSD, and we've
supported the architecture since FreeBSD 8.0. FreeBSD/MIPS is used in
production in a number of embedded appliances and networking devices.
Academic research is being done on FreeBSD using a MIPS-like ISA. That
said, MIPS remains a Tier-2 architecture for us, which means that we
support and maintain it, but have looser requirements about ABI
stability and backwards compatibility.

As with other BSDs, FreeBSD is an integrated system including the
kernel, C and other runtime libraries, runtime linker, toolchain, and
other components, so it's straightforward for us to incorporate a
change that simultaneously affects several of these parts. With the
multi-GOT change LLD is not too far off from being a usable linker for
FreeBSD/MIPS, and I'd be very happy if we can whittle down the
remaining issues. I think we (along with OpenBSD, given their growing
interest in LLD) can offer a compelling path for exploring changes in
the MIPS ABI.


More information about the llvm-commits mailing list