[llvm-dev] Contributing LLD for Mach-O (original) (raw)

Fangrui Song via llvm-dev llvm-dev at lists.llvm.org
Fri Feb 28 22:40:01 PST 2020


On 2020-02-28, James Y Knight via llvm-dev wrote:

Nice!

Your plan sounds great, and it'll be awesome to finally have a good MachO LLD available. On Fri, Feb 28, 2020 at 4:32 PM Shoaib Meenai via llvm-dev <_ _llvm-dev at lists.llvm.org> wrote:

Hi all,

We’re planning to contribute a new implementation of LLD for Mach-O, using the same design as the COFF and ELF ports. This design has proven to work very well for those ports, and we’re keen to explore it for Mach-O as well. Our work is based on an initial prototype created by Peter Collingbourne and Rui Ueyama. Our initial commit is up for review at https://reviews.llvm.org/D75382. We’ve intentionally stripped down this initial commit as much as possible to ease reviewing; we’ve kept it to the absolute minimum needed to produce and test a working macOS x86-64 executable for that prints “Hello World” via a syscall. We have several short-term follow-ups planned to add important functionality, such as linking against archives, universal binaries, dylibs, and tbd files, performing subsection splitting (atomization), and producing dylibs. The follow-ups should give a good sense of the overall design while still keeping each piece easily reviewable and testable individually. Our end goal is to create a full-featured Mach-O linker, and we’ll be working toward that goal over the next several months (and years, in all likelihood). We’d appreciate feedback and reviews.

The existing Mach-O port https://reviews.llvm.org/D38290#882910 had been unmaintained when the ld64.lld alias was added.

If Jez and the team are committed to maintain the new Mach-O port and we think the existing port is a dead end, we may assign the flavor darwin to it (lld -flavor darwin) and rename the existing flavor to darwin-old or darwin-legacy.



More information about the llvm-dev mailing list