| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
definition below all of the header #include lines, LLD edition.
IF you want to know more details about this, you can see the recent
commits to Debug.h in LLVM. This is just the LLD segment of a cleanup
I'm doing globally for this macro.
llvm-svn: 206851
|
|
|
|
|
|
| |
In .def files, ';' is the start of line comment.
llvm-svn: 206831
|
|
|
|
|
|
| |
Unlike Win32/x86, it has no "@12" suffix.
llvm-svn: 206648
|
|
|
|
|
|
|
| |
LIBRARY directive in a module definition file specifies the output
DLL file name. It also takes an optional value for the base address.
llvm-svn: 206647
|
|
|
|
| |
llvm-svn: 206638
|
|
|
|
|
|
|
|
| |
/ignore:<number> is a linker option to disable warning specified by
the number. We ignore the option because it does not make sense for
LLD.
llvm-svn: 206636
|
|
|
|
|
|
|
| |
If the value for /manifestuac is "NO", LLD will create a manifest XM
file but won't emit <trustinfo> element.
llvm-svn: 206633
|
|
|
|
| |
llvm-svn: 206560
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently LLD supports --defsym only in the form of
--defsym=<symbol>=<integer>, where the integer is interpreted as the
absolute address of the symbol. This patch extends it to allow other
symbol name to be given as an RHS value. If a RHS value is a symbol
name, the LHS symbol will be defined as an alias for the RHS symbol.
Internally, a LHS symbol is represented as a zero-size defined atom
who has an LayoutAfter reference to an undefined atom, whose name is
the RHS value. Everything else is already implemented -- Resolver
will resolve the undefined symbol, and the layout pass will layout
the two atoms at the same location. Looks like it's working fine.
Note that GNU LD supports --defsym=<symbol>=<symbol>+<addend>. That
feature is out of scope of this patch.
Differential Revision: http://reviews.llvm.org/D3332
llvm-svn: 206417
|
|
|
|
| |
llvm-svn: 206358
|
|
|
|
| |
llvm-svn: 206113
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a couple of new virtual functions.
Follow-up to the rL203408. Two virtual functions `createRelocationReference()`
responsible for creation of `ELFReference` have been replaced by a couple of
new virtual functions `createRelocationReferences()` (plural). Each former
function creates a //single// ELFReference for a specified `Elf_Rela`
or `Elf_Rel` relocation records. The new functions responsible for creation
of //all// relocation references for provided symbol.
For all targets except MIPS there are no functional changes.
MIPS ABI has a notion of //paired// relocations. An effective addend of such
relocations are calculated using addends of both pair's members.
Each `R_MIPS_HI16` and `R_MIPS_GOT16` (for local symbols) relocations must have
an associated `R_MIPS_LO16` entry immediately following it in the list
of relocations. Immediately does not mean "next record" in relocations section
but "next record referenced the same symbol". Moreover a single `R_MIPS_LO16`
relocation can be paired with multiple preceding `R_MIPS_HI16/R_MIPS_GOT16`
relocations.
The paired relocation can have offsets belong to the different symbols.
That is why we need to have access to list of all relocations during
construction of `ELFReference` for MIPS target.
The patch reviewed by Shankar Easwaran.
llvm-svn: 206102
|
|
|
|
|
|
|
|
| |
function.
No functional changes.
llvm-svn: 206023
|
|
|
|
|
|
|
|
|
| |
StringRef before calling the createSectionAtom() method and reverse
conversion inside the method.
No functional changes.
llvm-svn: 206022
|
|
|
|
| |
llvm-svn: 206018
|
|
|
|
| |
llvm-svn: 205956
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D3322
llvm-svn: 205826
|
|
|
|
| |
llvm-svn: 205737
|
|
|
|
| |
llvm-svn: 205736
|
|
|
|
| |
llvm-svn: 205694
|
|
|
|
|
|
|
|
| |
GNU LD-comptaible driver wrongly requires a space after '=' for a few
options such as "-init=<symbol>" or "-entry=<symbol>". This patch is
to fix that bug and add a few tests for it.
llvm-svn: 205693
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 205692
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently LLD accepts only "-soname <string>", but all the following
options are actually valid.
--soname=foo
--soname foo
-soname=foo
-soname foo
-h foo
This patch fixes that issue.
llvm-svn: 205662
|
|
|
|
| |
llvm-svn: 205654
|
|
|
|
| |
llvm-svn: 205645
|
|
|
|
| |
llvm-svn: 205644
|
|
|
|
| |
llvm-svn: 205643
|
|
|
|
| |
llvm-svn: 205642
|
|
|
|
| |
llvm-svn: 205641
|
|
|
|
| |
llvm-svn: 205639
|
|
|
|
|
|
| |
This reverts commit r205635 that was submitted by mistake.
llvm-svn: 205637
|
|
|
|
| |
llvm-svn: 205635
|
|
|
|
|
|
|
| |
It's better to use the same type rather than a fixed width integer type
that may be different from the return type.
llvm-svn: 205597
|
|
|
|
| |
llvm-svn: 205594
|
|
|
|
|
|
| |
So that it's obvious that we pass these callbacks only to forEachUndefines.
llvm-svn: 205593
|
|
|
|
|
|
|
|
| |
This is cleaner and as efficient as before.
Differential Revision: http://llvm-reviews.chandlerc.com/D3284
llvm-svn: 205590
|
|
|
|
|
|
|
|
|
| |
Seems getSomething() is more common naming scheme than just a noun
to get something, so renaming these members.
Differential Revision: http://llvm-reviews.chandlerc.com/D3285
llvm-svn: 205589
|
|
|
|
| |
llvm-svn: 205579
|
|
|
|
| |
llvm-svn: 205578
|
|
|
|
| |
llvm-svn: 205576
|
|
|
|
|
|
|
|
|
|
| |
Atoms with deadStripNever attribute has already been added to the
dead strip root set at end of Resolver::doDefinedAtom, so no need
to check it for each atom again.
Differential Revision: http://llvm-reviews.chandlerc.com/D3282
llvm-svn: 205575
|
|
|
|
|
|
|
| |
Move code that always runs after doUndefinedAtom into doUndefinedAtom
for readability.
llvm-svn: 205574
|
|
|
|
| |
llvm-svn: 205570
|
|
|
|
| |
llvm-svn: 205569
|
|
|
|
| |
llvm-svn: 205568
|
|
|
|
| |
llvm-svn: 205567
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ELFLinkingContext has a method addUndefinedAtomsFromSharedLibrary().
The method is being used to skip a shared library within --start-group
and --end-group if it's not the first iteration of the group.
We have the same, incomplete mechanism to skip a shared library within
a group too. That's implemented in ELFFileNode. It's intended to not
return a shared library on the second or further iterations in the
first place. This mechanism is preferred over
addUndefinedAtomsFromSharedLibrary because the policy is implemented
in Input Graph -- that's what Input Graph is for.
This patch removes the dupluicate feature and fixes ELFFileNode.
Differential Revision: http://llvm-reviews.chandlerc.com/D3280
llvm-svn: 205566
|
|
|
|
| |
llvm-svn: 205564
|
|
|
|
|
|
|
|
|
| |
"x.empty()" is more idiomatic than "x.size() == 0". This patch is to
add such method and use it in LLD.
Differential Revision: http://llvm-reviews.chandlerc.com/D3279
llvm-svn: 205558
|
|
|
|
|
|
|
| |
For most member function calls we do not use "this->" in this file.
Remove the rest for consistency.
llvm-svn: 205550
|