diff options
author | Michael J. Spencer <bigcheesegs@gmail.com> | 2015-09-08 22:34:57 +0000 |
---|---|---|
committer | Michael J. Spencer <bigcheesegs@gmail.com> | 2015-09-08 22:34:57 +0000 |
commit | 546c64c733dd040f905d76e00deb8b07419f560d (patch) | |
tree | ec7b42995461592ef4c20309495f6fd387b2a46c /lld/ELF/SymbolTable.cpp | |
parent | 07f3af2e82ef9178fa2251552200850efc1aeea6 (diff) | |
download | bcm5719-llvm-546c64c733dd040f905d76e00deb8b07419f560d.tar.gz bcm5719-llvm-546c64c733dd040f905d76e00deb8b07419f560d.zip |
[lld][elf2] Fix hard coded entry address.
llvm-svn: 247089
Diffstat (limited to 'lld/ELF/SymbolTable.cpp')
-rw-r--r-- | lld/ELF/SymbolTable.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp index e66a399084e..e62297271ed 100644 --- a/lld/ELF/SymbolTable.cpp +++ b/lld/ELF/SymbolTable.cpp @@ -17,7 +17,7 @@ using namespace llvm::object; using namespace lld; using namespace lld::elf2; -SymbolTable::SymbolTable() { +SymbolTable::SymbolTable() : EntrySym(nullptr) { } void SymbolTable::addFile(std::unique_ptr<InputFile> File) { @@ -33,8 +33,10 @@ void SymbolTable::addFile(std::unique_ptr<InputFile> File) { } template <class ELFT> void SymbolTable::init() { - resolve<ELFT>(new (Alloc) - Undefined<ELFT>("_start", Undefined<ELFT>::Synthetic)); + if (EntrySym) + return; + EntrySym = new (Alloc) Undefined<ELFT>("_start", Undefined<ELFT>::Synthetic); + resolve<ELFT>(EntrySym); } template <class ELFT> void SymbolTable::addELFFile(ELFFileBase *File) { |