[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:
> 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."  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."  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."
>> 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. 
>> 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
>>  https://lld.llvm.org
>>  http://lists.llvm.org/pipermail/llvm-dev/2018-January/120216.html
>>  https://bugs.llvm.org/show_bug.cgi?id=32175
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev