[llvm-dev] Mach-O support in lld: what are the known issues?

James Y Knight via llvm-dev llvm-dev at lists.llvm.org
Tue Jun 5 14:44:01 PDT 2018


I'd be interested in the existence of a high-quality, open-source, portable
linker for apple platforms, but not enough to help make that happen.

If I _was_ gonna work on something related to that, I'd probably be
inclined to instead add any required features to allow an ELF linker to
target a notional darwin-elf target, and to have clang emit darwin-elf
object files, and then write a binary converter to convert the emitted ELF
binary to a Mach-O binary, so that it can actually run on a platform that
exists rather than the platform I'd prefer to exist. But that's probably
just me being crazy, and I'm not going to work on it. :)



On Tue, Jun 5, 2018 at 11:19 AM Andrew Kelley via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Are you planning on working on LLD?
>
> Over here in the Zig frontend, we've been relying on LLD Mach-O support
> but at some point we'll have to either maintain LLD or write a Mach-O
> linker in zig. So far we've been making it work with this hacky patch:
> https://github.com/ziglang/zig/commit/1ba6e1641a4c5ea1d0d665fe500c9c66d69443a4
>
> If nobody else cares about the LLD Mach-O code, then we'll be better off
> doing the work in zig but if others are interested then it may be more
> beneficial for the community to work together on the LLD codebase.
>
> On Mon, Jun 4, 2018 at 7:06 PM, Brian Gesiak via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> Hello all,
>>
>> I'm trying to better understand the state of Mach-O support in lld.
>>
>> The lld docs state that "the linker supports ELF (Unix), PE/COFF
>> (Windows), Mach-O (macOS) and WebAssembly in descending order of
>> completeness." [1] True to that statement, I found an email on this list
>> from Jan 2018 stating that "MachO support in lld is not really ready for
>> real world usage. It was able to bootstrap itself a couple of years ago,
>> but, it has not really been maintained or further developed since." [2] And
>> on LLVM Bugzilla, a comment on one bug states "indeed the macOS version
>> seems to be experimental, and not to support LTO at all for the moment."
>> [3]
>>
>> I'm curious if anyone has more information on what else Mach-O support in
>> lld is missing. From the above links, I'm aware of a lack of support for
>> LTO. I also encountered the same Clang driver bugs as mentioned on that
>> Bugzilla report. Besides that, I can see a few memory leaks and incorrect
>> links have been reported on Bugzilla as well. [4]
>>
>> Is there anything else that lld developers might be aware of? What work
>> needs to be done before ld64.lld is considered complete?
>>
>> Thanks in advance for any information you can send my way! :)
>>
>> - Brian Gesiak
>>
>> [1] https://lld.llvm.org
>> [2] http://lists.llvm.org/pipermail/llvm-dev/2018-January/120216.html
>> [3] https://bugs.llvm.org/show_bug.cgi?id=32175
>> [4]
>> https://bugs.llvm.org/buglist.cgi?bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&component=MachO&list_id=139976&product=lld&query_format=advanced&resolution=---&resolution=LATER&resolution=REMIND
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180605/3eb279bc/attachment.html>


More information about the llvm-dev mailing list