[LLVMdev] Is lld the linker we need for our project ?
Michael Spencer
bigcheesegs at gmail.com
Tue Mar 11 12:39:16 PDT 2014
On Tue, Mar 11, 2014 at 9:52 AM, Rodolphe Suescun <rsu.medal at dolphin.fr> wrote:
> Hi,
>
> We are currently developing an LLVM-based compilation toolchain
> for a micro-controller, but would need some advice about whether
> we should use lld as linker.
>
> So far we managed to write a basic target handler to read ELF
> files generated by llc and link them (and relocations seem to
> be applied correctly).
> But we have target-specific requirements:
> - the program will be loaded into memory as-is, there is no
> runtime linker
> - data and code must be located in different areas of memory
> so we should be able to specify a different base address for
> different sections
> - parts of the code (such as interrupt vectors) must be located
> at specific addresses
> - we will also need to be able to specify (in a map file) the
> address of any function or static variable
>
> Is any of those requirements incompatible with lld ? And if not,
> any hints about how to implement them (or any lld documentation
> I might have missed) ?
>
> Thanks a lot in advance,
> Rod
It sounds like you need linker scripts and objcopy -O binary.
lld currently has very limited linker script support. Support for
layout using linker scripts would need to be completed. It is
currently stubbed out in DefaultLayout.h:class ScriptLayout. I've
cc'ed Shankar who knows more about how that is intended to work.
Both Shankar and I intend to implement linker scripts eventually, but
it's not a high priority for me right now.
So to answer your question. If you need a linker right now lld isn't
really going to work for you, but your use case is definitely in scope
for lld.
- Michael Spencer
More information about the llvm-dev
mailing list