[llvm-dev] Thoughts on the LLVM linker

Mikael Egevig via llvm-dev llvm-dev at lists.llvm.org
Mon Nov 25 21:48:44 PST 2019


I am using LLVM as the backend in a small hobby compiler project I'm
working on.  I plan to support all platforms that LLVM supports (limited by
my available hardware only).

As far as I can tell, there are different linkers for the various host
systems out there (the output of 'lld' if you invoke it on Arch Linux):

    lld is a generic driver.
    Invoke ld.lld (Unix), ld64.lld (macOS), lld-link (Windows), wasm-ld
(WebAssembly) instead

I am wondering if there are any plans to make a single, standard,
cross-platform link tool so that people who are not locked into the
Microsoft ecosystem (Visual Studio and command-line tools) can use the LLVM
linker without having to maintain three driver interfaces.  If I am not
mistaken, you today have to use three or four different interfaces,
depending on the host platform, just to link a few files.

The way I see it, a single LLVM-linker with the same options and syntax on
all platforms would be highly beneficial to those who use LLVM as their
backend through generating .ll files as input to the LLVM tool chain.

P.S. I am aware that I can use Clang as a gigantic driver for the linking
process, but I am trying to get rid of all Clang dependencies because it is
not needed by my project in any way.

Thank you,
Mikael Egevig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191126/c673614d/attachment.html>

More information about the llvm-dev mailing list