| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
It will stop doing so shortly.
llvm-svn: 242832
|
|
|
|
| |
llvm-svn: 242820
|
|
|
|
|
|
| |
This removes the last uses of getStaticSymbolName in lld.
llvm-svn: 242816
|
|
|
|
| |
llvm-svn: 242760
|
|
|
|
| |
llvm-svn: 242759
|
|
|
|
| |
llvm-svn: 242701
|
|
|
|
| |
llvm-svn: 242216
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 242118
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 242014
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 241746
|
|
|
|
| |
llvm-svn: 241530
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 241346
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 241342
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 241298
|
|
|
|
| |
llvm-svn: 241274
|
|
|
|
| |
llvm-svn: 241194
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds initial general-dynamic TLS support for AArch64. Currently
no optimization is done to realx for more performance-wise models (initial-exec
or local-exec). This patch also only currently handles correctly executable
generation, although priliminary DSO support through PLT specific creation
is also added.
With this change clang/llvm bootstrap with lld is possible in static configuration
(some DSO creation fails due missing Linker script support, not AArch64 specific),
although make check also shows some issues.
llvm-svn: 241192
|
|
|
|
| |
llvm-svn: 241157
|
|
|
|
| |
llvm-svn: 241089
|
|
|
|
| |
llvm-svn: 241075
|
|
|
|
| |
llvm-svn: 240997
|
|
|
|
| |
llvm-svn: 240951
|
|
|
|
| |
llvm-svn: 240940
|
|
|
|
| |
llvm-svn: 240781
|
|
|
|
| |
llvm-svn: 240765
|
|
|
|
|
|
|
|
| |
That allows to remove duplicated long switch/case statements.
No functional changes.
llvm-svn: 240764
|
|
|
|
| |
llvm-svn: 240763
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some compilers may not add the section symbol in '.symtab' for the
.init_array and 'ldd' just ignore it. It results in global constructor
not being called in final executable.
This patch add both '.init_array' and '.fini_array' to be added in
Atom graph generation even when the section contains no symbol. An
already existing testcase is modified to check for such scenario.
The issue fixes the llvm test-suite regressions for both Single
and MultiSource files.
llvm-svn: 240570
|
|
|
|
|
|
|
|
| |
This allows LLD to correctly link MachO objects that use thread-local storage.
Differential Revision: http://reviews.llvm.org/D10578
llvm-svn: 240454
|
|
|
|
|
|
|
|
|
| |
The ObjectFileYAML.roundTrip serializes a default-constructed
NormalizedFile to YAML, triggering uninitialized memory reads.
While there use in-class member initializers.
llvm-svn: 240446
|
|
|
|
| |
llvm-svn: 240445
|
|
|
|
|
|
| |
by pointer) from ParseArgs
llvm-svn: 240347
|
|
|
|
|
|
| |
whitespace around *)
llvm-svn: 240346
|
|
|
|
| |
llvm-svn: 240268
|
|
|
|
| |
llvm-svn: 240267
|
|
|
|
| |
llvm-svn: 240266
|
|
|
|
| |
llvm-svn: 240265
|
|
|
|
| |
llvm-svn: 240264
|
|
|
|
| |
llvm-svn: 240262
|
|
|
|
| |
llvm-svn: 240260
|
|
|
|
| |
llvm-svn: 240259
|
|
|
|
| |
llvm-svn: 240236
|