<div dir="ltr">It's probably better to store a pointer to an undefined symbol for "_start" to Config object and get its symbol resolution result just by looking at the undefined objects repl(), instead of looking up the name more than once. That's what we do in COFF.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 9, 2015 at 6:11 AM, Michael J. Spencer via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: mspencer<br>
Date: Tue Sep  8 16:11:25 2015<br>
New Revision: 247073<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=247073&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=247073&view=rev</a><br>
Log:<br>
[lld][elf2] Fix hard coded entry address.<br>
<br>
Modified:<br>
    lld/trunk/ELF/Writer.cpp<br>
    lld/trunk/test/elf2/basic.s<br>
    lld/trunk/test/elf2/basic32.s<br>
<br>
Modified: lld/trunk/ELF/Writer.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Writer.cpp?rev=247073&r1=247072&r2=247073&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Writer.cpp?rev=247073&r1=247072&r2=247073&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/ELF/Writer.cpp (original)<br>
+++ lld/trunk/ELF/Writer.cpp Tue Sep  8 16:11:25 2015<br>
@@ -576,7 +576,11 @@ template <class ELFT> void Writer<ELFT>:<br>
   auto &FirstObj = cast<ObjectFile<ELFT>>(*Symtab.getFirstELF());<br>
   EHdr->e_machine = FirstObj.getEMachine();<br>
   EHdr->e_version = EV_CURRENT;<br>
-  EHdr->e_entry = 0x401000;<br>
+<br>
+  llvm::DenseMap<StringRef, Symbol *>::const_iterator Entry =<br>
+      Symtab.getSymbols().find("_start");<br>
+<br>
+  EHdr->e_entry = getSymVA(cast<DefinedRegular<ELFT>>(Entry->second->Body));<br>
   EHdr->e_phoff = sizeof(Elf_Ehdr_Impl<ELFT>);<br>
   EHdr->e_shoff = SectionHeaderOff;<br>
   EHdr->e_ehsize = sizeof(Elf_Ehdr_Impl<ELFT>);<br>
<br>
Modified: lld/trunk/test/elf2/basic.s<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/basic.s?rev=247073&r1=247072&r2=247073&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/basic.s?rev=247073&r1=247072&r2=247073&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/test/elf2/basic.s (original)<br>
+++ lld/trunk/test/elf2/basic.s Tue Sep  8 16:11:25 2015<br>
@@ -23,7 +23,7 @@ _start:<br>
 # CHECK-NEXT:   Type: Executable (0x2)<br>
 # CHECK-NEXT:   Machine: EM_X86_64 (0x3E)<br>
 # CHECK-NEXT:   Version: 1<br>
-# CHECK-NEXT:   Entry: 0x401000<br>
+# CHECK-NEXT:   Entry: 0x1000<br>
 # CHECK-NEXT:   ProgramHeaderOffset: 0x40<br>
 # CHECK-NEXT:   SectionHeaderOffset: 0x1070<br>
 # CHECK-NEXT:   Flags [ (0x0)<br>
<br>
Modified: lld/trunk/test/elf2/basic32.s<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/basic32.s?rev=247073&r1=247072&r2=247073&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/basic32.s?rev=247073&r1=247072&r2=247073&view=diff</a><br>
==============================================================================<br>
--- lld/trunk/test/elf2/basic32.s (original)<br>
+++ lld/trunk/test/elf2/basic32.s Tue Sep  8 16:11:25 2015<br>
@@ -23,7 +23,7 @@ _start:<br>
 # CHECK-NEXT:   Type: Executable (0x2)<br>
 # CHECK-NEXT:   Machine: EM_386 (0x3)<br>
 # CHECK-NEXT:   Version: 1<br>
-# CHECK-NEXT:   Entry: 0x401000<br>
+# CHECK-NEXT:   Entry: 0x1000<br>
 # CHECK-NEXT:   ProgramHeaderOffset: 0x34<br>
 # CHECK-NEXT:   SectionHeaderOffset: 0x1058<br>
 # CHECK-NEXT:   Flags [ (0x0)<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>