diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2015-09-08 21:11:25 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2015-09-08 21:11:25 +0000 |
commit | 8be15899b4d23575ea2acd893c4cb64a5328d525 (patch) | |
tree | 3618c4f17a97265ad0b079fb5e770233abf5d8e9 | |
parent | 0127d80986a29a6dea137440c835809b9ae581da (diff) | |
download | bcm5719-llvm-8be15899b4d23575ea2acd893c4cb64a5328d525.tar.gz bcm5719-llvm-8be15899b4d23575ea2acd893c4cb64a5328d525.zip |
[lld][elf2] Fix hard coded entry address.
llvm-svn: 247073
-rw-r--r-- | lld/ELF/Writer.cpp | 6 | ||||
-rw-r--r-- | lld/test/elf2/basic.s | 2 | ||||
-rw-r--r-- | lld/test/elf2/basic32.s | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index ab98ddce862..c41d034c9f3 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -576,7 +576,11 @@ template <class ELFT> void Writer<ELFT>::writeHeader() { auto &FirstObj = cast<ObjectFile<ELFT>>(*Symtab.getFirstELF()); EHdr->e_machine = FirstObj.getEMachine(); EHdr->e_version = EV_CURRENT; - EHdr->e_entry = 0x401000; + + llvm::DenseMap<StringRef, Symbol *>::const_iterator Entry = + Symtab.getSymbols().find("_start"); + + EHdr->e_entry = getSymVA(cast<DefinedRegular<ELFT>>(Entry->second->Body)); EHdr->e_phoff = sizeof(Elf_Ehdr_Impl<ELFT>); EHdr->e_shoff = SectionHeaderOff; EHdr->e_ehsize = sizeof(Elf_Ehdr_Impl<ELFT>); diff --git a/lld/test/elf2/basic.s b/lld/test/elf2/basic.s index f696f8ec6a4..f615acb6b50 100644 --- a/lld/test/elf2/basic.s +++ b/lld/test/elf2/basic.s @@ -23,7 +23,7 @@ _start: # CHECK-NEXT: Type: Executable (0x2) # CHECK-NEXT: Machine: EM_X86_64 (0x3E) # CHECK-NEXT: Version: 1 -# CHECK-NEXT: Entry: 0x401000 +# CHECK-NEXT: Entry: 0x1000 # CHECK-NEXT: ProgramHeaderOffset: 0x40 # CHECK-NEXT: SectionHeaderOffset: 0x1070 # CHECK-NEXT: Flags [ (0x0) diff --git a/lld/test/elf2/basic32.s b/lld/test/elf2/basic32.s index 151b83ba840..719487124bb 100644 --- a/lld/test/elf2/basic32.s +++ b/lld/test/elf2/basic32.s @@ -23,7 +23,7 @@ _start: # CHECK-NEXT: Type: Executable (0x2) # CHECK-NEXT: Machine: EM_386 (0x3) # CHECK-NEXT: Version: 1 -# CHECK-NEXT: Entry: 0x401000 +# CHECK-NEXT: Entry: 0x1000 # CHECK-NEXT: ProgramHeaderOffset: 0x34 # CHECK-NEXT: SectionHeaderOffset: 0x1058 # CHECK-NEXT: Flags [ (0x0) |