summaryrefslogtreecommitdiffstats
path: root/lld
Commit message (Collapse)AuthorAgeFilesLines
* [Mips] Move member function definitions to cpp filesSimon Atanasyan2015-05-2715-774/+1009
| | | | | | No functional changes. llvm-svn: 238310
* [ELF][Mips] Do not merge ELF flags in the `isCompatible` routineSimon Atanasyan2015-05-277-12/+13
| | | | | | | | We do not need to merge ELF flags from DSO. But `isCompatible` is called for all input files. So this change move ELF flags merging into the MipsELFFile class. llvm-svn: 238304
* [Mips] Factor out look up of Elf_Mips_RegInfo structure into the separate ↵Simon Atanasyan2015-05-271-21/+26
| | | | | | | | function No functional changes. llvm-svn: 238303
* [ELF/AArch64] Fix local TLS relocationsAdhemerval Zanella2015-05-265-7/+137
| | | | | | | | | | | | | This patch fixes the R_AARCH64_TLSLE_ADD_TPREL_HI12 and R_AARCH64_TLSLE_ADD_TPREL_LO12_NC handling by using the correct offset by using the target layout along with aarch64 alignments requirements. It fixes the TLS test-suite SingleSource failures for aarch64: * SingleSource/UnitTests/Threads/2010-12-08-tls.execution_time * SingleSource/UnitTests/Threads/tls.execution_time llvm-svn: 238258
* [ARM] Fix enum type cast in switchDenis Protivensky2015-05-261-1/+1
| | | | | | | | It caused warning in clang assuming the default branch would never be reached with the given switch key type. llvm-svn: 238194
* [ARM] Move out .ARM.exidx related things to ARM backendDenis Protivensky2015-05-267-18/+54
| | | | llvm-svn: 238191
* [Mips] Use structures declared in the llvm/Object/ELFTypes.hSimon Atanasyan2015-05-263-53/+13
| | | | | | No functional changes. llvm-svn: 238189
* [Mips] Add Elf_Mips_Options::getRegInfoDesc() function to retrieve an ↵Simon Atanasyan2015-05-262-3/+9
| | | | | | | | ODK_REGINFO descriptor No functional changes. llvm-svn: 238176
* [Mips] Make the code shorter - use LLVM_ELF_IMPORT_TYPES_ELFT macroSimon Atanasyan2015-05-261-2/+1
| | | | | | No functional changes. llvm-svn: 238175
* [ELF] Add support for -z origin/now options.Davide Italiano2015-05-264-2/+122
| | | | | | Differential Revision: http://reviews.llvm.org/D9963 llvm-svn: 238169
* [ELF] Fix lld when no unique sections is usedSimon Atanasyan2015-05-244-6/+25
| | | | | | | | | Original patch of Shankar Easwaran with additional test case. The yaml2obj does not allow to create an object file with non-unique sections names so the fix uses a binary input object file in the test case. llvm-svn: 238115
* [lld] Manage atom ordinals in the File class rather than using a static counter.Lang Hames2015-05-222-4/+10
| | | | | | | This is a cleaner fix for the race-condition bug that was originally papered over by r237857. llvm-svn: 238072
* [Mips] Cleanup and reformat test cases, add more checkingsSimon Atanasyan2015-05-224-165/+193
| | | | | | No functional changes. llvm-svn: 238050
* Remove redundant std::move on functions that return a unique_ptr.Benjamin Kramer2015-05-222-5/+5
| | | | llvm-svn: 238034
* [ELF] Remove redundant unique_ptr moves found by -Wpessimizing-move.Benjamin Kramer2015-05-224-6/+6
| | | | llvm-svn: 238030
* [ELF] Fix shared CMake build.Benjamin Kramer2015-05-221-0/+1
| | | | llvm-svn: 238029
* [ARM] report_fatal_error for not implemented functionalityDenis Protivensky2015-05-221-5/+5
| | | | llvm-svn: 238017
* [ARM] Ability to add GOT and PLTGOT entries for same symbolDenis Protivensky2015-05-222-6/+77
| | | | | | | | | | | | | | | | | These two serve different purpose: PLTGOT entries are (usually) lazily resolved and serve as trampolines to correctly call dynamically linked functions. They often have R_*_JUMP_SLOT dynamic relocation type used. Simple GOT entries hold other things, one of them may be R_*_GLOB_DAT to correctly reference global and static data. This is also used to hold dynamically linked function's address. To properly handle cases when shared object's function is called and at the same time its address is taken, we need to be able to have both GOT and PLTGOT entries bearing different dynamic relocation types for the same symbol. llvm-svn: 238015
* [ARM] Implement R_ARM_GLOB_DAT for GOT entriesDenis Protivensky2015-05-225-2/+119
| | | | | | | | This is used when referencing global or static data in shared objects. This is also used when function's address is taken and function call is made indirectly. llvm-svn: 238014
* [lld] Make the MachO -stack_size default '0', add a test case.Lang Hames2015-05-223-5/+10
| | | | | | Addresses some review comments for r237841. llvm-svn: 237979
* [ELF] Simplify dynamic table entry creation.Davide Italiano2015-05-214-99/+45
| | | | | | | Differential Revision: http://reviews.llvm.org/D9921 Reviewed by: atanasyan llvm-svn: 237973
* [ARM] Add dynamic symbols to the dynamic library writerDenis Protivensky2015-05-212-3/+35
| | | | llvm-svn: 237898
* [ARM] Remove useless file with writer's instantiation stubDenis Protivensky2015-05-212-19/+0
| | | | llvm-svn: 237896
* [ARM] Remove unused field in executable writerDenis Protivensky2015-05-211-2/+1
| | | | llvm-svn: 237892
* [ARM] Move out common Writer functionality to ARMELFWriterDenis Protivensky2015-05-217-83/+167
| | | | llvm-svn: 237891
* [ELF] Move start/end atom method assignment to OutputELFWriter. NFCDenis Protivensky2015-05-213-25/+28
| | | | llvm-svn: 237886
* [ARM] Remove unused fields in dynamic library writerDenis Protivensky2015-05-211-5/+1
| | | | llvm-svn: 237883
* [ARM] Add skeleton implementation of DSO linkingDenis Protivensky2015-05-213-0/+49
| | | | llvm-svn: 237881
* [LLD] Make lastOrdinal atomic to avoid race conditions.Lang Hames2015-05-201-1/+2
| | | | | | No test case: We don't have a good way to test race conditions. llvm-svn: 237857
* [LLD] Fix an out-of-order-initialization bug that was introduced in r237841 byLang Hames2015-05-201-1/+1
| | | | | | moving a field in MachOLinkingContext. llvm-svn: 237847
* [LLD] Revert r237842 - it went in without a proper commit message.Lang Hames2015-05-201-1/+1
| | | | llvm-svn: 237846
* yLang Hames2015-05-201-1/+1
| | | | llvm-svn: 237842
* [LLD] Add support for the -stack_size option to Darwin ld.Lang Hames2015-05-209-5/+52
| | | | llvm-svn: 237841
* [lld] Use lit's shell to run tests on Windows by defaultReid Kleckner2015-05-202-3/+15
| | | | | | | | | | It's a lot faster than bash. Also use FileCheck instead of grep to search through a binary file. Cygwin's grep isn't working here for unknown reasons that probably aren't worth investigating. llvm-svn: 237834
* [ARM] Add needed symbols during dynamic executable linkingDenis Protivensky2015-05-202-0/+74
| | | | | | These include _GLOBAL_OFFSET_TABLE_ and _DYNAMIC. llvm-svn: 237791
* [LLD] Make sure MachO FDEs read their augmentation data strings from the rightLang Hames2015-05-162-73/+152
| | | | | | CIE, not just the most recently encountered one. llvm-svn: 237491
* [LLD] Properly relocate the LSDA field of MachO eh-frames.Lang Hames2015-05-132-40/+260
| | | | | | | Previously the LSDA field was not being relocated during linking, leading to failures for some EH tests. llvm-svn: 237222
* [LLD] Add support for MachO ripRel32MinusNAnon relocations.Lang Hames2015-05-132-5/+87
| | | | llvm-svn: 237219
* [LLD] Add a mutex to prevent concurrent modification of the dylib maps inLang Hames2015-05-132-0/+2
| | | | | | MachOLinkingContext. llvm-svn: 237217
* [ARM] Use the correct variable name and unbreak buildbot.Davide Italiano2015-05-081-1/+1
| | | | llvm-svn: 236880
* [ARM] Generation of .ARM.exidx/.ARM.extab sectionsLeny Kholodov2015-05-089-21/+378
| | | | | | | | | | | | This patch provides generation of .ARM.exidx & .ARM.extab sections which are used for unwinding. The patch adds new content type typeARMExidx for atoms from .ARM.exidx section and integration of atoms with such type to the ELF ReaderWriter. exidx.test has been added with checking of contents of .ARM.exidx section and .ARM.extab section. Differential Revision: http://reviews.llvm.org/D9324 llvm-svn: 236873
* [ARM] Check overflow of R_ARM_THM_JUMP11Denis Protivensky2015-05-082-31/+104
| | | | llvm-svn: 236842
* [ARM] Check overflow of R_ARM_CALL/JUMP24Denis Protivensky2015-05-083-2/+114
| | | | llvm-svn: 236841
* [ARM] Check overflow of R_ARM_THM_CALL/JUMP24Denis Protivensky2015-05-083-2/+114
| | | | llvm-svn: 236839
* [ELF] Initialize the _outputMagic class field using default valueSimon Atanasyan2015-05-081-1/+1
| | | | | | No functional changes. llvm-svn: 236823
* [Mips] Update test cases to reflect changes in the yaml2obj toolSimon Atanasyan2015-05-072-2/+5
| | | | | | No functional changes. llvm-svn: 236742
* [ARM] Check overflow of R_ARM_PREL31Denis Protivensky2015-05-072-4/+50
| | | | llvm-svn: 236729
* [ARM] llvm_unreachable => make_dynamic_error in R_ARM_BASE_PRELDenis Protivensky2015-05-071-1/+2
| | | | llvm-svn: 236727
* [ARM] llvm_unreachable => make_*_reloc_error in group relocsDenis Protivensky2015-05-071-9/+8
| | | | llvm-svn: 236726
* [ARM] Return directly from switch in relocation handlerDenis Protivensky2015-05-071-47/+28
| | | | llvm-svn: 236724
OpenPOWER on IntegriCloud