summaryrefslogtreecommitdiffstats
path: root/lld/lib/ReaderWriter
Commit message (Collapse)AuthorAgeFilesLines
* ELF/AMDGPU: Add missing: using namespace lld; to try to fix windows botTom Stellard2015-08-271-0/+1
| | | | llvm-svn: 246179
* ELF/AMDGPU: Remove another unused private member variableTom Stellard2015-08-271-4/+1
| | | | llvm-svn: 246164
* ELF/AMDGPU: Remove unused private member variableTom Stellard2015-08-272-2/+1
| | | | | | This should fix the one of the failing bots. llvm-svn: 246160
* ELF/AMDGPU: Attempt to fix windows botsTom Stellard2015-08-271-0/+1
| | | | | | Broken by r246155. llvm-svn: 246159
* ELF: Add AMDGPU ReaderWriterTom Stellard2015-08-2714-3/+432
| | | | | | | | | This is a basic implementation that allows lld to emit binaries consumable by the HSA runtime. Differential Revision: http://reviews.llvm.org/D11267 llvm-svn: 246155
* [LinkerScript] Fix a crash when matching wildcards.Davide Italiano2015-08-221-2/+5
| | | | | | Submitted by: zan jyu via llvm-dev llvm-svn: 245792
* [Mips] Use 'or' for move instead of [d]addu in PLT entriesSimon Atanasyan2015-08-191-2/+2
| | | | | | | | Patch by Simon Dardis. Differential Revision: http://reviews.llvm.org/D12103 llvm-svn: 245491
* Update for llvm api change.Rafael Espindola2015-08-132-9/+11
| | | | llvm-svn: 244849
* Wdeprecated: Remove unnecessary user-defined dtor that was getting in the ↵David Blaikie2015-08-121-1/+0
| | | | | | way of the default ops (copy construction, assignment, etc) llvm-svn: 244836
* [ELF] Remove TargetLayout::getCustomSegments methodsDenis Protivensky2015-08-122-23/+1
| | | | llvm-svn: 244747
* [LinkerScript] Process program header in PHDRS commandDenis Protivensky2015-08-123-59/+125
| | | | | | | | | | Add PT_PHDR segment depending on its availability in linker script's PHDRS command, fallback if no linker script is given. Handle FILEHDR, PHDRS and FLAGS attributes of program header. Differential Revision: http://reviews.llvm.org/D11589 llvm-svn: 244743
* Update for llvm api change.Rafael Espindola2015-08-102-3/+14
| | | | llvm-svn: 244511
* Don't depend on getDotSymtabSec. It is going away.Rafael Espindola2015-08-102-11/+15
| | | | llvm-svn: 244451
* Avoid using getDotDynSymSec in lld. It is going away.Rafael Espindola2015-08-071-2/+8
| | | | llvm-svn: 244350
* Use already available symbol tables. NFC.Rafael Espindola2015-08-072-2/+3
| | | | llvm-svn: 244336
* ELF: Correctly identify SHT_NOTE sections with !SHF_ALLOC as type*NoteTom Stellard2015-08-071-1/+6
| | | | | | | | Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11266 llvm-svn: 244317
* COFF: Remove the old COFF linker and make link an alias to link2.Rui Ueyama2015-08-0622-5471/+0
| | | | | | It's time to remove old COFF linker because the new one is now complete. llvm-svn: 244226
* [Mips] Implement definition of the DT_MIPS_RLD_MAP_REL dynamic tagSimon Atanasyan2015-08-011-2/+10
| | | | llvm-svn: 243835
* [Mips] Implement definition of DT_MIPS_RLD_MAP dynamic tag, .rld_map ↵Simon Atanasyan2015-07-302-0/+32
| | | | | | section, and __RLD_MAP symbol llvm-svn: 243626
* [Mips] Define _DYNAMIC_LINKING symbol if output is a is dynamically linked ↵Simon Atanasyan2015-07-251-1/+7
| | | | | | executable file llvm-svn: 243211
* [Mips] Remove redundant separate functions to calculate relocations. DoSimon Atanasyan2015-07-251-52/+23
| | | | | | | | that inline. No functional changes. llvm-svn: 243210
* [Mips] Remove duplicated code by joining the same functionsSimon Atanasyan2015-07-251-21/+4
| | | | llvm-svn: 243209
* [Mips] Do not sign-extend addends read from RELA relocation recordsSimon Atanasyan2015-07-251-18/+21
| | | | llvm-svn: 243208
* Fix -Wextra-semi.Rui Ueyama2015-07-232-4/+4
| | | | | | Patch from Eugene.Zelenko! llvm-svn: 243060
* Use the getSymbol with an explicit symbol table. NFC.Rafael Espindola2015-07-234-19/+26
| | | | llvm-svn: 243014
* [LinkerScript] Fix case when setting custom NONE segmentDenis Protivensky2015-07-231-1/+1
| | | | llvm-svn: 243006
* [ELF] Apply segments from linker scriptsDenis Protivensky2015-07-2310-105/+171
| | | | | | | | | | | | | | Put sections to segments according to linker scripts if available. Rework the code of TargetLayout::assignSectionsToSegments so it operates on the given list of segments, which can be either read from linker scripts or constructed as before. Handle NONE segments defined in linker scripts by putting corresponding sections to PT_NULL segment. Consider flags set for segments through linker scripts. Differential Revision: http://reviews.llvm.org/D10918 llvm-svn: 243002
* [ELF] Protect write access to the ELFLinkingContext::_cidentSections by a mutexSimon Atanasyan2015-07-221-1/+3
| | | | | | | The _cidentSections container is filled during files parsing so we need to serialize a concurrent access to it. llvm-svn: 242885
* Don't assume ELFFile iterates over the program headers.Rafael Espindola2015-07-211-4/+29
| | | | | | It will stop doing so shortly. llvm-svn: 242832
* Drop last use of getDynamicSymbolName.Rafael Espindola2015-07-211-3/+11
| | | | llvm-svn: 242820
* Keep track of which string table is associated with a symbol table.Rafael Espindola2015-07-211-5/+20
| | | | | | This removes the last uses of getStaticSymbolName in lld. llvm-svn: 242816
* [Mips] Fix addend writing for R_MIPS_REL32 relocationSimon Atanasyan2015-07-212-11/+20
| | | | llvm-svn: 242760
* [Mips] Handle R_MIPS_JALR relocation to omptimize jalr/jr instructionsSimon Atanasyan2015-07-212-10/+39
| | | | llvm-svn: 242759
* Update for llvm api change.Rafael Espindola2015-07-204-27/+26
| | | | llvm-svn: 242701
* Update for llvm api change.Rafael Espindola2015-07-141-3/+9
| | | | llvm-svn: 242216
* [ELF/AArch64] Fix export TLS dynamic symbolAdhemerval Zanella2015-07-146-17/+26
| | | | | | | | This patch fixes the TLS dynamic variable exportation from .got.plt segments, created by General-dynamic relocations (TLSDESC). Current code only export symbols in dynamic table from .got sections. llvm-svn: 242142
* [LinkerScript] Don't create unnecessarily large segmentsRafael Auler2015-07-141-29/+41
| | | | | | | | | | | | | When using a linker script expression to change the address of a section, even if the new address is more than a page of distance from the old address, lld may put everything in the same segment, forcing it to be unnecessarily large. This patch changes the logic in Segment::assignVirtualAddress() and Segment::assignFileOffsets() to allow the segment to be sliced into two or more if it detects a linker script expression that changes a section address. Differential Revision: http://reviews.llvm.org/D10952 llvm-svn: 242096
* [LinkerScript] Fix bug in Segment::assignVirtualAddress()Rafael Auler2015-07-131-1/+1
| | | | | | | | | | | | | | When calculating the start address and size of a segment, lld mistakenly attributed the start address of the last segment slice to the whole segment when it should consider the start address of the first slice. In this case, in a multi-slice segment, Segment::assignVirtualAddress() will return a wrong segment start address to TargetLayout::assignVirtualAddress(). The effect of this miscalculation is to allocate some program headers in unnecessarily far away addresses. This commit fixes this. Differential Revision: http://reviews.llvm.org/D10951 llvm-svn: 242089
* [Mips] Support MIPS big-endian 32/64-bits targetsSimon Atanasyan2015-07-1311-60/+278
| | | | llvm-svn: 242014
* elf: Make error output from AtomSection<ELFT>::write() deterministic.Nico Weber2015-07-122-12/+19
| | | | | | | | | | | | | | | | The function uses parallel_for() and then writes error messages from the parallel loop's body. This produces nondetermistic error messages. Instead, copy error messages to a vector and sort it by the atom's file offsets before printing all error messages after the parallel_for(). This results in a few string copies, but only in the error case. (And passing tests seem more important than performance.) This makes tests elf/AArch64/rel-prel16-overflow.test and elf/AArch64/rel-prel32-overflow.test pass on Windows: Both tests check that atom error messages are emitted in a certain order, and on Windows they happened to be emitted in a different order before this patch. llvm-svn: 241988
* Update for upcoming llvm change.Rafael Espindola2015-07-081-1/+1
| | | | llvm-svn: 241746
* Fix undefined behaviour exposed by the new -Wshift-negative-value warning.Davide Italiano2015-07-071-1/+1
| | | | llvm-svn: 241530
* [ELF/AArch64] Set correct loader name in linking contextAdhemerval Zanella2015-07-031-3/+3
| | | | | | | | This patch reimplements ELFLinkingContext::getDefaultInterpreter for aarch64 with correct loader name. It is required to exclude the loader from DT_NEEDED in shared library creation. llvm-svn: 241371
* [ELF/AArch64] Set correct loader name in linking contextAdhemerval Zanella2015-07-031-0/+5
| | | | | | | | This patch reimplements ELFLinkingContext::getDefaultInterpreter for aarch64 with correct loader name. It is required to exclude the loader from DT_NEEDED in shared library creation. llvm-svn: 241370
* Use getDynamicSymbolName/getStaticSymbolName instead of a constant argument.Rafael Espindola2015-07-032-3/+3
| | | | llvm-svn: 241346
* [Mips] Factor out symbol type checking (PIC/non-PIC) into the separate functionSimon Atanasyan2015-07-033-4/+9
| | | | | | No functional changes. llvm-svn: 241342
* [ELF] Define __start_XXX/__stop_XXX symbols where XXX is a section nameSimon Atanasyan2015-07-035-14/+50
| | | | | | | | | | | | | | This is GNU ELF linker extension used particularly by LibC code. If input object files contain section named XXX, and the XXX is a valid C identifier, and there are undefined or weak symbols __start_XXX/__stop_XXX, linker should define __start_XXX/__stop_XXX symbols point to the begin/end of the XXX section correspondingly. For example, without support of this extension statically linked executables for X86_64 and Mips (maybe other) targets do not flush IO buffers at the end of executing. llvm-svn: 241341
* Update for llvm changes.Rafael Espindola2015-07-021-3/+3
| | | | llvm-svn: 241298
* [ELF] Remove dead code. NFCSimon Atanasyan2015-07-021-12/+0
| | | | llvm-svn: 241274
* [ELF] Make OutputSection::memSize `const` member function. NFCSimon Atanasyan2015-07-011-1/+1
| | | | llvm-svn: 241194
OpenPOWER on IntegriCloud