| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 205692
|
|
|
|
| |
llvm-svn: 205645
|
|
|
|
| |
llvm-svn: 205644
|
|
|
|
|
|
|
|
|
| |
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: 205568
|
|
|
|
|
|
|
|
|
| |
"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
|
|
|
|
| |
llvm-svn: 205404
|
|
|
|
|
|
|
| |
insertElementsAt() is removed, so "One" in insertOneElementAt() no longer
make much sense. Rename it for brevity.
llvm-svn: 205372
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
.gnu.linkonce sections are similar to section groups.
They were supported before section groups existed and provided a way
to resolve COMDAT sections using a different design.
There are few implementations that use .gnu.linkonce sections
to store simple floating point constants which doesnot require complex section
group support but need a way to store only one copy of the floating point
constant in a binary.
.gnu.linkonce based symbol resolution achieves that.
Review : http://llvm-reviews.chandlerc.com/D3242
llvm-svn: 205280
|
|
|
|
|
|
|
|
|
| |
This reverts commit 5d5ca72a7876c3dd3dd1db83dc6a0d74be9e2cd1.
Discuss on a better design to raise error when there is a similar group with Gnu
linkonce sections and COMDAT sections.
llvm-svn: 205224
|
|
|
|
|
|
|
|
|
|
|
| |
.gnu.linkonce sections are similar to section groups. They were supported before
section groups existed and provided a way to resolve COMDAT sections using a
different design. There are few implementations that use .gnu.linkonce sections
to store simple floating point constants which doesnot require complex section
group support but need a way to store only one copy of the floating point
constant. .gnu.linkonce based symbol resolution achieves that.
llvm-svn: 205163
|
|
|
|
| |
llvm-svn: 205057
|
|
|
|
| |
llvm-svn: 205056
|
|
|
|
| |
llvm-svn: 205034
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch is to support --defsym option for ELF file format/GNU-compatible
driver. Currently it takes a symbol name followed by '=' and a number. If such
option is given, the driver sets up an absolute symbol with the specified
address. You can specify multiple --defsym options to define multiple symbols.
GNU LD's --defsym provides many more features. For example, it allows users to
specify another symbol name instead of a number to define a symbol alias, or it
even allows a symbol plus an offset (e.g. --defsym=foo+3) to define symbol-
relative alias. This patch does not support that, but will be supported in
subsequent patches.
Differential Revision: http://llvm-reviews.chandlerc.com/D3208
llvm-svn: 205029
|
|
|
|
| |
llvm-svn: 204989
|
|
|
|
|
|
|
| |
These classes are declared in a .cpp file but not used in the same compliation
unit. They seems to have been copy-and-pasted from ELFReader.h.
llvm-svn: 204988
|
|
|
|
| |
llvm-svn: 204982
|
|
|
|
|
|
| |
Review : http://llvm-reviews.chandlerc.com/D3182
llvm-svn: 204830
|
|
|
|
| |
llvm-svn: 204607
|
|
|
|
|
|
| |
pairs and calculate AHL addend.
llvm-svn: 204606
|
|
|
|
| |
llvm-svn: 204503
|
|
|
|
| |
llvm-svn: 204472
|
|
|
|
| |
llvm-svn: 204355
|
|
|
|
| |
llvm-svn: 204354
|
|
|
|
| |
llvm-svn: 204353
|
|
|
|
| |
llvm-svn: 204352
|
|
|
|
|
|
| |
This reverts commit r204291 because it broke buildbots.
llvm-svn: 204317
|
|
|
|
|
|
| |
With this all test-suite tests pass with lld on x86-64 Linux.
llvm-svn: 204291
|
|
|
|
| |
llvm-svn: 204248
|
|
|
|
|
|
|
|
|
| |
of GOT.
* Read addend for R_MIPS_GOT16 relocation.
* Put only high 16 bits of symbol + addend into GOT entries for
locally visible symbols.
llvm-svn: 204247
|
|
|
|
|
|
| |
a uniform way.
llvm-svn: 204246
|
|
|
|
|
|
|
| |
functions. The first one is for local GOT entries. The second one is for
global GOT entries.
llvm-svn: 204245
|
|
|
|
| |
llvm-svn: 204244
|
|
|
|
| |
llvm-svn: 204243
|
|
|
|
|
|
| |
class.
llvm-svn: 204242
|
|
|
|
| |
llvm-svn: 204223
|
|
|
|
| |
llvm-svn: 204222
|
|
|
|
| |
llvm-svn: 204221
|
|
|
|
| |
llvm-svn: 204219
|
|
|
|
|
|
|
|
|
|
| |
COMDAT_SELECT_LARGEST is a COMDAT type that make linker to choose the largest
definition from among all of the definition of a symbol. If the size is the
same, the choice is arbitrary.
Differential Revision: http://llvm-reviews.chandlerc.com/D3011
llvm-svn: 204172
|
|
|
|
| |
llvm-svn: 204122
|
|
|
|
|
|
| |
So we don't need static_cast's to convert it from signed to unsigned.
llvm-svn: 203992
|
|
|
|
| |
llvm-svn: 203903
|