summaryrefslogtreecommitdiffstats
path: root/lld/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* [Mips] Remove unused class field.Simon Atanasyan2014-03-092-5/+3
| | | | llvm-svn: 203398
* Remove extra space.Rui Ueyama2014-03-081-1/+1
| | | | llvm-svn: 203331
* Fix a bug that mergeCases table does not match the merge constants.Rui Ueyama2014-03-081-0/+2
| | | | | | | | | | MergeCases table should not have an entry for MergeContents because atoms with MergeContents attribute should never have name. This issue was not caught by a test because getting a value of 6th element of an array of array actually gets the first element's value of the next array, and that happened to be a valid value. Added asserts to catch that error. llvm-svn: 203322
* [docs] Add missing features for the x86-64 ELF backend.Michael J. Spencer2014-03-071-0/+29
| | | | llvm-svn: 203313
* [PECOFF] Support a new type of weak symbol.Rui Ueyama2014-03-073-22/+28
| | | | | | | | | | | | | | | Summary: COMDAT_SELECT_SAME_SIZE is a COMDAT type that I presume exist only in COFF. The semantics of the type is that linker should merge such COMDAT sections if their sizes are the same. Otherwise it's an error. Reviewers: Bigcheese, shankarke, kledzik CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2996 llvm-svn: 203308
* [Mips] Removed extra space. Thanks to dexonsmith's eagle eye.Simon Atanasyan2014-03-071-1/+1
| | | | llvm-svn: 203201
* Add "override" and remove "virtual" where appropriate.Rui Ueyama2014-03-0616-217/+217
| | | | | | | For the record, I used clang-modernize to add "override" and perl to remove "virtual". llvm-svn: 203164
* [Mips] Replace "virtual" by "override" in member function declarationsSimon Atanasyan2014-03-068-38/+38
| | | | | | where it is appropriate. llvm-svn: 203102
* Add "override" to member functions where appropriate.Rui Ueyama2014-03-059-116/+117
| | | | llvm-svn: 202998
* [PECOFF] Sort x64 exception handler table.Rui Ueyama2014-03-041-4/+34
| | | | | | | | | Just like x86 exception handler table, the table for x64 needs to be sorted so that runtime can binary search on it. Unlike x86, the table entry for x64 has multiple fields, and they need to be sorted according to its BeginAddress field. This patch also fixes a bug in relocations. llvm-svn: 202874
* [C++11] Add #include's for OwningPtr.Ahmed Charles2014-03-035-0/+5
| | | | | | Allows removing #include's in LLVM while switching to std::unique_ptr. llvm-svn: 202679
* [C++11] Work around an incompatibility between llvm::tie and std::tie.Benjamin Kramer2014-03-023-15/+15
| | | | llvm-svn: 202645
* [C++11] Replace LLVM_OVERRIDE with just "override" now that we're allChandler Carruth2014-03-024-6/+6
| | | | | | using MSVC 2012 or newer. llvm-svn: 202627
* [C++11] Switch from LLVM_FINAL to just "final" now that all of LLVM isChandler Carruth2014-03-0216-21/+21
| | | | | | requiring MSVC 2012 or newer. llvm-svn: 202626
* [PECOFF] Sort SEH table entries according to its value.Rui Ueyama2014-02-281-0/+21
| | | | | | | | | It looks like the contents of the table need to be sorted according to its value, so that the runtime can find the entry by binary search. I'm not 100% sure if we really have to do that, but at least I can say it's safe to do because the contents of .sxdata is just a list of exception handlers' RVAs. llvm-svn: 202550
* [PECOFF] Set "Exception Table" field in PE32+ header.Rui Ueyama2014-02-281-0/+3
| | | | llvm-svn: 202527
* [Hexagon] Rename the header file.Shankar Easwaran2014-02-272-5/+5
| | | | | | | | This is to accomodate future changes for newer revisions of the DSP. No change in functionality. llvm-svn: 202350
* [PECOFF] Add a test for /SAFESEH:NO for non-x86 machine type.Rui Ueyama2014-02-271-0/+7
| | | | llvm-svn: 202322
* [Mips] Remove non-ASCII symbol from the comment.Simon Atanasyan2014-02-261-1/+1
| | | | llvm-svn: 202290
* [Mips] Split reloc26 function into two parts - for processing local andSimon Atanasyan2014-02-261-7/+11
| | | | | | external relocations. llvm-svn: 202289
* [Mips] Use a correct number of bits when apply result of calculated relocation.Simon Atanasyan2014-02-261-11/+12
| | | | llvm-svn: 202288
* [Mips] Exit from the class method as soon as possible.Simon Atanasyan2014-02-261-3/+4
| | | | llvm-svn: 202287
* [PECOFF] Emit Load Configuration and SEH Table for x86.Rui Ueyama2014-02-266-4/+206
| | | | | | | | | | | | | | | | | | | | | | | | | | If all input files are compatible with Structured Exception Handling, linker is supposed to create an exectuable with a table for SEH handlers. The table consists of exception handlers entry point addresses. The basic idea of SEH in x86 Microsoft ABI is to list all valid entry points of exception handlers in an read-only memory, so that an attacker cannot override the addresses in it. In x86 ABI, data for exception handling is mostly on stack, so it's volnerable to stack overflow attack. In order to protect against it, Windows runtime uses the table to check a return address, to ensure that the address is really an valid entry point for an exception handler. Compiler emits a list of exception handler functions to .sxdata section. It also emits a marker symbol "@feat.00" to indicate that the object is compatible with SEH. SEH is a relatively new feature for COFF, and mixing SEH-compatible and SEH-incompatible objects will result in an invalid executable, so is the marker. If all input files are compatible with SEH, LLD emits a SEH table. SEH table needs to be pointed by Load Configuration strucutre, so when emitting a SEH table LLD emits it too. The address of a Load Configuration will be stored to the file header. llvm-svn: 202248
* [CMake] Use target_link_libraries(INTERFACE|PRIVATE) on CMake-2.8.12 to ↵NAKAMURA Takumi2014-02-262-2/+2
| | | | | | | | | | | | | | | | | | increase opportunity for parallel build. target_link_libraries(INTERFACE) doesn't bring inter-target dependencies in add_library, although final targets have dependencies to whole dependent libraries. It makes most libraries can be built in parallel. target_link_libraries(PRIVATE) is used to shaared library. Each dependent library is linked to the target.so, and its user will not see its grandchildren. For example, - libclang.so has sufficient libclang*.a(s). - c-index-test requires just only libclang.so. FIXME: lld is tweaked minimally. Adding INTERFACE in each library would be better thing. llvm-svn: 202241
* lldReaderWriter: move LLVM_LINK_COMPONENTS. It seems Subdirectories don't ↵NAKAMURA Takumi2014-02-261-2/+3
| | | | | | | | depend on LLVMObject. Please give LLVMObject explicitly in each subdirectory if any of subdirectories required it. llvm-svn: 202236
* [PECOFF] Add a utility function to add DIR32 relocation.Rui Ueyama2014-02-262-4/+16
| | | | llvm-svn: 202217
* [PECOFF] Fix DLLCharacteristics field.Rui Ueyama2014-02-261-1/+3
| | | | | | IMAGE_DLL_CHARACTERISTICS_NO_SEH flag should be set only when SEH is disabled. llvm-svn: 202215
* [LinkerScript] parse OUTPUT_FORMAT : treat quotedStrings as identifierShankar Easwaran2014-02-251-7/+7
| | | | llvm-svn: 202166
* [COFF] Refactor .drectve section handling. No functionality change.Rui Ueyama2014-02-251-7/+18
| | | | llvm-svn: 202113
* [LinkerScript] OUTPUT_FORMAT: Parse Quoted StringsShankar Easwaran2014-02-251-3/+39
| | | | llvm-svn: 202111
* [LinkerScript] parse OUTPUT_ARCH.Shankar Easwaran2014-02-251-5/+36
| | | | llvm-svn: 202100
* [lld] Include reference kind in cycle detector debug outputNico Rieck2014-02-245-9/+19
| | | | | | | | This restores the debug output to how it was before r197727 broke it. This went undetected because the corresponding test was never run due to broken feature detection. llvm-svn: 202079
* Update for LLVM api change.Rafael Espindola2014-02-243-4/+4
| | | | llvm-svn: 202054
* Don't assume that F_None is the default. It is about to change.Rafael Espindola2014-02-242-3/+5
| | | | llvm-svn: 202039
* [PECOFF] Fix uninitialized variableNico Rieck2014-02-231-1/+2
| | | | llvm-svn: 201970
* [PECOFF] Implement /SAFESEH option.Rui Ueyama2014-02-211-4/+24
| | | | | | | LLD now prints an error message if /SAFESEH option is specified and one or more input files are not compatible with SEH. llvm-svn: 201900
* [PECOFF] Driver support for /SAFESEH option.Rui Ueyama2014-02-212-1/+2
| | | | | | | | | | | | | | | Syntactically /SAFESEH is a boolean flag -- you can pass /SAFESEH or /SAFESEH:no. The meaning of /SAFESEH is as follows. - If /SAFESEH is specified, the linker will produce an executable with SEH table. If any input files are not compatible with SEH, it's an error. - If /SAFESEH:no is specified, the linker will not emit SEH table even if all input files are compatible with SEH. - If no option is specified, the linker emits SEH table if all input files are compatible with SEH. llvm-svn: 201895
* [ELF] Dont generate PHDR when creating dynamic libraries.Shankar Easwaran2014-02-191-1/+1
| | | | llvm-svn: 201741
* [ELF] Fix alignment for dynamic relocation sections.Shankar Easwaran2014-02-191-2/+5
| | | | | | | | The sections .rela/.rel.(*) have a alignment of 2 in the final image created by the linker. This needs to be properly set to the right alignment depending on the architecture(32/64bits). llvm-svn: 201740
* [Mips] Simplify the code. Replace redundant 'switch' operator by the single ↵Simon Atanasyan2014-02-111-7/+1
| | | | | | 'if' one. llvm-svn: 201131
* [Mips] Handle R_MIPS_COPY relocation.Simon Atanasyan2014-02-114-0/+57
| | | | llvm-svn: 201129
* Update for llvm api change.Rafael Espindola2014-02-102-6/+6
| | | | llvm-svn: 201109
* [mach-o] use new way to copy StringRefsNick Kledzik2014-02-061-10/+4
| | | | llvm-svn: 200956
* Accept and handle absolute symbols with empty name.Simon Atanasyan2014-02-061-1/+2
| | | | llvm-svn: 200911
* [Mips] In case of executable file linking MIPS ABI requires to add evenSimon Atanasyan2014-02-033-0/+23
| | | | | | | undefined symbols to '.dynsym' if these symbols have corresponding entries in a global part of GOT. llvm-svn: 200716
* [Mips] Unify #include guard names.Simon Atanasyan2014-02-039-22/+23
| | | | llvm-svn: 200715
* [ELF] change LayoutBefore Reference to InGroup ReferenceShankar Easwaran2014-02-031-3/+5
| | | | | | This makes it a lot easier for Section Group design. llvm-svn: 200675
* [MachO] Add undefined atoms.Joey Gouly2014-02-022-2/+15
| | | | llvm-svn: 200649
* [ELF] Customize dynamic table tag used for .got.plt section referencing.Simon Atanasyan2014-02-022-1/+7
| | | | | | The patch reviewed by Shankar Easwaran and Rui Ueyama. llvm-svn: 200630
* [PECOFF] Add a TODO.Rui Ueyama2014-02-011-0/+3
| | | | llvm-svn: 200599
OpenPOWER on IntegriCloud