diff options
author | Igor Kudrin <ikudrin.dev@gmail.com> | 2015-10-05 10:29:46 +0000 |
---|---|---|
committer | Igor Kudrin <ikudrin.dev@gmail.com> | 2015-10-05 10:29:46 +0000 |
commit | b1f2b51a896e561397aa4ef2620b37ed02c03a58 (patch) | |
tree | 67a956eeee946c230793ce83f92e6fbae68a87cc /lld/ELF/Writer.cpp | |
parent | 9ed154f9213acaa34fd79aa4a274e9162bf3bf77 (diff) | |
download | llvm-b1f2b51a896e561397aa4ef2620b37ed02c03a58.zip llvm-b1f2b51a896e561397aa4ef2620b37ed02c03a58.tar.gz llvm-b1f2b51a896e561397aa4ef2620b37ed02c03a58.tar.bz2 |
[ELF2] Add DT_INIT and DT_FINI dynamic table entries
The entries are added if there are "_init" or "_fini" entries in
the symbol table respectively. According to the behavior of ld,
entries are inserted even for undefined symbols.
Symbol names can be overridden by using -init and -fini command
line switches. If used, these switches neither add new symbol table
entries nor require those symbols to be resolved.
Differential Revision: http://reviews.llvm.org/D13385
llvm-svn: 249297
Diffstat (limited to 'lld/ELF/Writer.cpp')
-rw-r--r-- | lld/ELF/Writer.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lld/ELF/Writer.cpp b/lld/ELF/Writer.cpp index c7dbafe..4fadfd2 100644 --- a/lld/ELF/Writer.cpp +++ b/lld/ELF/Writer.cpp @@ -85,7 +85,7 @@ public: Writer(SymbolTable *T) : SymTabSec(*T, StrTabSec, BssSec), DynSymSec(*T, DynStrSec, BssSec), RelaDynSec(DynSymSec, GotSec, T->shouldUseRela()), PltSec(GotSec), - HashSec(DynSymSec), DynamicSec(*T, HashSec, RelaDynSec), + HashSec(DynSymSec), DynamicSec(*T, HashSec, RelaDynSec, BssSec), BssSec(PltSec, GotSec, BssSec, ".bss", SHT_NOBITS, SHF_ALLOC | SHF_WRITE) {} void run(); |