summaryrefslogtreecommitdiffstats
path: root/lld/ELF/SymbolTable.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Add support for comdats.Rafael Espindola2015-10-091-0/+2
| | | | | | The implementation is a direct translation to c++ of the rules in the ELF spec. llvm-svn: 249881
* [ELF2] Check for TLS mismatch in symbol resolution.Igor Kudrin2015-10-091-1/+2
| | | | | | | | | | | The linker should generate an error if a TLS symbol is resolved for a non-TLS reference and vice versa. The patch addresses PR24244 (https://llvm.org/bugs/show_bug.cgi?id=24244) Differential Revision: http://reviews.llvm.org/D13550 llvm-svn: 249817
* ELF2: Use the same name as COFF.Rui Ueyama2015-10-071-1/+1
| | | | llvm-svn: 249635
* ELF2: Rename dupError() -> reportConflict().Rui Ueyama2015-10-071-1/+1
| | | | llvm-svn: 249622
* [ELF2] Add --undefined optionDenis Protivensky2015-10-051-0/+3
| | | | | | | | | Add symbol specified with -u as undefined which may cause additional object files from archives to be linked into the resulting binary. Differential Revision: http://reviews.llvm.org/D13345 llvm-svn: 249295
* Still define __init_array_(start|end) if there is no .init_array.Rafael Espindola2015-10-011-0/+2
| | | | | | | This matches the behavior of other linkers and seems necessary to link in some older systems. llvm-svn: 249077
* Don't include shared libraries multiple times.Rafael Espindola2015-10-011-0/+1
| | | | llvm-svn: 249061
* Add support for creating the symbols __init_array_start and __init_array_end.Rafael Espindola2015-09-251-0/+4
| | | | llvm-svn: 248604
* Fix typo.Rafael Espindola2015-09-241-1/+1
| | | | | | Thanks to Sean Silva for noticing. llvm-svn: 248488
* Print more information about duplicated symbols.Rafael Espindola2015-09-231-0/+2
| | | | llvm-svn: 248380
* Start adding target abstractions.Rafael Espindola2015-09-221-1/+1
| | | | | | | | | | This is just enough to get PLT working on 32 bit x86. The idea behind using a virtual interface is that it should be easy to convert any of the functions to template parameters if any turns out to be performance critical. llvm-svn: 248308
* Use a MapVector to output symbols in a deterministic order.Rafael Espindola2015-09-171-4/+10
| | | | | | | | | We used to sort the symbols at the very end, but we need to know the order earlier so that we can create reference to them in the dynamic relocations. Thanks to Igor Kudrin for pointing out the problem. llvm-svn: 247911
* Add support of Elf_Rel dynamic relocations.Rafael Espindola2015-09-171-0/+2
| | | | llvm-svn: 247888
* Start adding support for creating shared libraries.Rafael Espindola2015-09-111-0/+2
| | | | | | | | | | They are not fully functional yet, but this implements enough support for lld itself to read them. With that, delete the .so binary we were using for tests and start eating our own dog food. llvm-svn: 247487
* [lld][elf2] Address review comments.Michael J. Spencer2015-09-081-2/+2
| | | | llvm-svn: 247096
* [lld][elf2] Fix hard coded entry address.Michael J. Spencer2015-09-081-0/+6
| | | | llvm-svn: 247089
* Start creating the .dynamic section.Rafael Espindola2015-09-081-0/+4
| | | | | | For now it is always empty. llvm-svn: 247056
* Simplify reporting of undefined symbols.Rafael Espindola2015-09-081-3/+0
| | | | llvm-svn: 247016
* [elf2] Add basic archive file support.Michael J. Spencer2015-09-041-0/+5
| | | | llvm-svn: 246886
* Add a template helper to avoid multiple switches over the ELF kind. NFC.Rafael Espindola2015-09-041-0/+1
| | | | llvm-svn: 246823
* Start adding support for shared libraries.Rafael Espindola2015-09-031-2/+6
| | | | | | | This just adds the types and enough support to detect incompatibilities among shared libraries and object files. llvm-svn: 246797
* Add a helper function for getting the first object file.Rafael Espindola2015-09-031-0/+6
| | | | | | Also preparation for shared objects. It will become the first ELF file. llvm-svn: 246796
* Make ObjectFiles private. NFC.Rafael Espindola2015-09-031-3/+7
| | | | | | Just preparation for adding support for shared libraries. llvm-svn: 246793
* Don't leave unused strings in the string table.Rafael Espindola2015-09-011-4/+0
| | | | llvm-svn: 246593
* Don't include hidden or internal symbols in the symbol table.Rafael Espindola2015-09-011-1/+0
| | | | llvm-svn: 246583
* Delete SyntheticUndefined.Rafael Espindola2015-08-311-0/+1
| | | | | | Now that resolved is templated anyway, we can use the regular Undefined. llvm-svn: 246407
* Keep the largest common symbol.Rafael Espindola2015-08-311-1/+1
| | | | | | | This requires templating some functions over ELFT, but that opens other cleanup opportunities for future patches. llvm-svn: 246405
* Delete unused forward declarations.Rafael Espindola2015-08-141-1/+0
| | | | llvm-svn: 245055
* Make these headers as being c++.Rafael Espindola2015-08-141-1/+1
| | | | llvm-svn: 245050
* Start populating the symbol table.Rafael Espindola2015-08-141-0/+9
| | | | | | | | | | | With this patch only the name is set. I will set the other fields shortly. For now the table doesn't include local symbols. This is equivalent to using --discard-all with gnu ld. This is OK for now since the symbols are not needed for execution and for testing symbol resolution we only need the global symbols. llvm-svn: 245044
* The SymbolTable doesn't need to be a template.Rafael Espindola2015-08-041-3/+3
| | | | | | It was already using just code that is common to all object files. llvm-svn: 243985
* Remove SymbolTable::getChunks.Rafael Espindola2015-08-041-3/+0
| | | | | | | | | | When we were using a std::sort over all the chunks we needed to put them in a single storage. Now that we just iterate over them and use a map to find the output section, we can avoid allocating the temporary storage. llvm-svn: 243980
* ELF2: Use DenseMap instead of std::map for a symbol table.Rui Ueyama2015-07-291-2/+3
| | | | | | We use DenseMap for COFF too. llvm-svn: 243534
* [ELF2] Add a new ELF linker based on the new PE/COFF linker.Michael J. Spencer2015-07-241-0/+58
| | | | | | Differential Revision: http://reviews.llvm.org/D11188 llvm-svn: 243161
* Revert ELF port. Posting to mailing list.Michael J. Spencer2015-07-141-88/+0
| | | | llvm-svn: 242118
* Initial ELF port.Michael J. Spencer2015-07-131-0/+88
This is a direct port of the new PE/COFF linker to ELF. It can take a single object file and generate a valid executable that executes at the first byte in the text section. llvm-svn: 242088
OpenPOWER on IntegriCloud