summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Object/Archive.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add support for gnu archives with a string table and no symtab.Rafael Espindola2013-07-031-27/+52
| | | | | | While there, use early returns to reduce nesting. llvm-svn: 185547
* Remove the LLVM specific archive index.Rafael Espindola2013-06-141-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Archive files (.a) can have a symbol table indicating which object files in them define which symbols. The purpose of this symbol table is to speed up linking by allowing the linker the read only the .o files it is actually going to use instead of having to parse every object's symbol table. LLVM's archive library currently supports a LLVM specific format for such table. It is hard to see any value in that now that llvm-ld is gone: * System linkers don't use it: GNU ar uses the same plugin as the linker to create archive files with a regular index. The OS X ar creates no symbol table for IL files, I assume the linker just parses all IL files. * It doesn't interact well with archives having both IL and native objects. * We probably don't want to be responsible for yet another archive format variant. This patch then: * Removes support for creating and reading such index from lib/Archive. * Remove llvm-ranlib, since there is nothing left for it to do. We should in the future add support for regular indexes to llvm-ar for both native and IL objects. When we do that, llvm-ranlib should be reimplemented as a symlink to llvm-ar, as it is equivalent to "ar s". llvm-svn: 184019
* [Object/COFF] Fix Windows .lib name handling.Rui Ueyama2013-06-031-4/+10
| | | | llvm-svn: 183091
* [Object][Archive] Improve performance.Michael J. Spencer2013-02-031-98/+10
| | | | | | | | | | | | Improve performance of iterating over children and accessing the member file buffer by caching the file size and moving code out to the header. This also makes getBuffer return a StringRef instead of a MemoryBuffer. Both fixing a memory leak and removing a malloc. This takes getBuffer from ~10% of the time in lld to unmeasurable. llvm-svn: 174272
* [Object][Archive] Fix name handling with bsd style long names.Michael J. Spencer2013-01-101-8/+14
| | | | llvm-svn: 172026
* [Object][Archive] Apparently StringRef::getAsInteger for APInt accepts spaces.Michael J. Spencer2013-01-101-2/+6
| | | | llvm-svn: 172022
* [Object][Archive] Use uint64_t instead of APInt. It is significantly faster.Michael J. Spencer2013-01-091-10/+10
| | | | llvm-svn: 172015
* Use the new script to sort the includes of every file under lib.Chandler Carruth2012-12-031-1/+1
| | | | | | | | | | | | | | | | | Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] llvm-svn: 169131
* s/assert/llvm_unreachable/Matt Beaumont-Gay2012-11-141-3/+4
| | | | llvm-svn: 167936
* Fix broken asserts. Also, spell 'indices' correctly.Matt Beaumont-Gay2012-11-141-6/+6
| | | | llvm-svn: 167894
* [Object] Fix endianess bug by refactoring Archive::Symbol::getMember.Michael J. Spencer2012-11-141-18/+32
| | | | llvm-svn: 167893
* Adding changes to support GNU style archive library readingShankar Easwaran2012-11-131-26/+118
| | | | llvm-svn: 167853
* Convert comments to proper Doxygen comments.Dmitri Gribenko2012-06-091-1/+1
| | | | llvm-svn: 158248
* Mark some static arrays as const.Craig Topper2012-05-241-2/+2
| | | | llvm-svn: 157377
* [Object]David Meyer2012-03-091-1/+1
| | | | | | Make Binary::TypeID more granular, to distinguish between ELF 32/64 little/big llvm-svn: 152435
* Remove static ctor.Benjamin Kramer2012-02-221-2/+2
| | | | llvm-svn: 151160
* Unweaken vtables as per ↵David Blaikie2011-12-201-0/+2
| | | | | | http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
* Simplify code.Benjamin Kramer2011-11-041-4/+3
| | | | llvm-svn: 143695
* Removed unused variable.Chad Rosier2011-11-021-1/+0
| | | | llvm-svn: 143591
* Object/Archive: Add symbol table iteration.Michael J. Spencer2011-11-021-9/+71
| | | | llvm-svn: 143561
* Object/Archive: Cleanup anon namespace.Michael J. Spencer2011-10-251-8/+5
| | | | llvm-svn: 142983
* Object/Archive: Add BSD style long file name support and skip internal members.Michael J. Spencer2011-10-251-7/+48
| | | | llvm-svn: 142981
* lib/Object: Suppress warnings on gcc-4.3.4 cygwinNAKAMURA Takumi2011-10-081-1/+1
| | | | llvm-svn: 141485
* Object: constize Archive.Michael J. Spencer2011-10-081-2/+2
| | | | llvm-svn: 141448
* Object: Add archive support.Michael J. Spencer2011-09-271-0/+172
llvm-svn: 140626
OpenPOWER on IntegriCloud