summaryrefslogtreecommitdiffstats
path: root/lld/ELF/SymbolTable.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* [ELF2] Add initial AArch64 support.Davide Italiano2015-09-261-0/+2
| | | | | | Differential Revision: http://reviews.llvm.org/D13167 llvm-svn: 248641
* Add support for creating the symbols __init_array_start and __init_array_end.Rafael Espindola2015-09-251-0/+28
| | | | llvm-svn: 248604
* Simplify memory management by having ELFData contain a ELFObj.Rafael Espindola2015-09-241-1/+1
| | | | llvm-svn: 248502
* Add support for the _GLOBAL_OFFSET_TABLE_ symbol.Rafael Espindola2015-09-241-0/+17
| | | | llvm-svn: 248490
* Fix typo.Rafael Espindola2015-09-241-2/+2
| | | | | | Thanks to Sean Silva for noticing. llvm-svn: 248488
* Print more information about duplicated symbols.Rafael Espindola2015-09-231-2/+25
| | | | llvm-svn: 248380
* Stub out ARM and PPC targets so that we can use a switch to create them.Rafael Espindola2015-09-221-6/+17
| | | | llvm-svn: 248324
* Move relocation processing to Target.Rafael Espindola2015-09-221-1/+3
| | | | | | I will add a couple of ppc64 relocs in the next patches. llvm-svn: 248319
* Start adding target abstractions.Rafael Espindola2015-09-221-2/+8
| | | | | | | | | | 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
* Add support of Elf_Rel dynamic relocations.Rafael Espindola2015-09-171-0/+5
| | | | llvm-svn: 247888
* Start adding support for creating shared libraries.Rafael Espindola2015-09-111-0/+3
| | | | | | | | | | 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
* Fix indentation.Rui Ueyama2015-09-091-12/+12
| | | | llvm-svn: 247169
* [lld][elf2] Address review comments.Michael J. Spencer2015-09-081-4/+1
| | | | llvm-svn: 247096
* [lld][elf2] Fix hard coded entry address.Michael J. Spencer2015-09-081-3/+5
| | | | llvm-svn: 247089
* Start adding support for symbols in shared libraries.Rafael Espindola2015-09-081-1/+4
| | | | llvm-svn: 247019
* Simplify reporting of undefined symbols.Rafael Espindola2015-09-081-8/+0
| | | | llvm-svn: 247016
* [elf2] Add basic archive file support.Michael J. Spencer2015-09-041-10/+57
| | | | llvm-svn: 246886
* Add a template helper to avoid multiple switches over the ELF kind. NFC.Rafael Espindola2015-09-041-30/+20
| | | | llvm-svn: 246823
* Start adding support for shared libraries.Rafael Espindola2015-09-031-19/+24
| | | | | | | 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-4/+3
| | | | | | Also preparation for shared objects. It will become the first ELF file. llvm-svn: 246796
* Split out the ELF kind from the InputFile Kind.Rafael Espindola2015-09-021-10/+10
| | | | | | | | | There were at least two issues with having them together: * For compatibility checks, we only want to look at the ELF kind. * Adding support for shared libraries should introduce one InputFile kind, not 4. llvm-svn: 246707
* Don't leave unused strings in the string table.Rafael Espindola2015-09-011-1/+0
| | | | llvm-svn: 246593
* Delete SyntheticUndefined.Rafael Espindola2015-08-311-5/+9
| | | | | | Now that resolved is templated anyway, we can use the regular Undefined. llvm-svn: 246407
* Keep the largest common symbol.Rafael Espindola2015-08-311-5/+35
| | | | | | | This requires templating some functions over ELFT, but that opens other cleanup opportunities for future patches. llvm-svn: 246405
* ELF: Also record the type of undefined symbols.Rafael Espindola2015-08-141-4/+6
| | | | | | | Tested with a weak undefined. Testing with a plain undefined will have to wait for support for -shared. llvm-svn: 245069
* Start populating the symbol table.Rafael Espindola2015-08-141-0/+1
| | | | | | | | | | | 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
* Move the error handling functions to Error.h. NFC.Rafael Espindola2015-08-061-1/+1
| | | | llvm-svn: 244216
* Delete dead code.Rafael Espindola2015-08-051-2/+1
| | | | llvm-svn: 244040
* lld elf2: Diagnose trying to mix incompatible files.Rafael Espindola2015-08-051-0/+6
| | | | | | | This is also a step in instantiating the writer with the correct template argument. llvm-svn: 244035
* The SymbolTable doesn't need to be a template.Rafael Espindola2015-08-041-19/+6
| | | | | | It was already using just code that is common to all object files. llvm-svn: 243985
* Remove a silly return.Rafael Espindola2015-08-041-1/+0
| | | | llvm-svn: 243983
* Remove SymbolTable::getChunks.Rafael Espindola2015-08-041-9/+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] Add a new ELF linker based on the new PE/COFF linker.Michael J. Spencer2015-07-241-0/+87
| | | | | | Differential Revision: http://reviews.llvm.org/D11188 llvm-svn: 243161
* Revert ELF port. Posting to mailing list.Michael J. Spencer2015-07-141-306/+0
| | | | llvm-svn: 242118
* Put explicit template instantiations in the correct namespace.Michael J. Spencer2015-07-141-0/+4
| | | | llvm-svn: 242093
* Initial ELF port.Michael J. Spencer2015-07-131-0/+302
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