<div dir="ltr"><div>On Mon, Sep 28, 2015 at 10:59 AM, Joerg Sonnenberger <span dir="ltr"><<a href="mailto:joerg@britannica.bec.de" target="_blank">joerg@britannica.bec.de</a>></span> wrote:<br></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On Mon, Sep 28, 2015 at 10:35:45AM -0700, Rui Ueyama wrote:<br>
> On Mon, Sep 28, 2015 at 9:59 AM, Joerg Sonnenberger via llvm-commits <<br>
> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br>
><br>
> > On Mon, Sep 28, 2015 at 01:33:16PM +0000, George Rimar via llvm-commits<br>
> > wrote:<br>
> > > "If there is no symbol named entry, the linker will try to parse entry<br>
> > > as a number, and use that as the entry address (the number will be<br>
> > > interpreted in base 10; you may use a leading 0x for base 16, or a<br>
> > leading 0 for base 8)."<br>
> > ><br>
> > > But I doubt that it is a real usecase and not sure if it should be<br>
> > implemented or not ?<br>
> ><br>
> > In combination with linker scripts, it can make perfect sense. Many ELF<br>
> > kernel images are linked that way.<br>
> ><br>
><br>
> Yes, we eventually need that. But that shouldn't be implemented in this<br>
> patch and doesn't have to be supported now.<br>
<br>
</span>Well, in terms of architecture, the idea would be to keep it as string<br>
as long as possible and only resolve it just before writing the<br>
executable header. In that case, it is trivial to do either. It can't be<br>
easily done in a different way either if you want to support literal<br>
numbers.</blockquote><div><br></div><div>That'd be trivial later, too. Probably the best way to handle both entry symbol name and entry address in LLD architecture is to use a SymbolBody as a handle to an entry point symbol whichever its type is. In COFF, we store a Config member variable to a pointer to a SymbolBody, so that the entry address is obtained by Config->Entry->getRVA(). We can make the same change with a simple patch.</div></div></div></div>