As we announced several months ago, we’ve been working on a new LLD Mach-O port, modeled after the design used in the COFF and ELF ports. We’ve made significant progress; we’re able to self-host and pass our test suite on x86-64, and we’re on track to do the same on arm64. We’re also able to successfully link and run various internal Facebook binaries, and others have even been able to link Chromium successfully (the resulting binary is crashy, which is being investigated).
At this point, we believe we’re mature enough that it makes sense to switch the ld64.lld symlink (which is what Clang invokes by default when told to use LLD for a Darwin platform) to use the new Mach-O port instead of the old one. We would like to make this change before the LLVM 12 branch cut, and also note it prominently in the release notes and invite people to try the new port and file bugs (and of course contribute to it as well). Our port still has a few known limitations and missing features (which we’ll also note in the release notes), but it is complete enough to be useful at this point, and we’d like it to be easily usable in the LLVM 12 release. Let us know if you have any concerns with this plan.