| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
No change in functionality.
llvm-svn: 200166
|
|
|
|
| |
llvm-svn: 198797
|
|
|
|
| |
llvm-svn: 197788
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The main changes are in:
include/lld/Core/Reference.h
include/lld/ReaderWriter/Reader.h
Everything else is details to support the main change.
1) Registration based Readers
Previously, lld had a tangled interdependency with all the Readers. It would
have been impossible to make a streamlined linker (say for a JIT) which
just supported one file format and one architecture (no yaml, no archives, etc).
The old model also required a LinkingContext to read an object file, which
would have made .o inspection tools awkward.
The new model is that there is a global Registry object. You programmatically
register the Readers you want with the registry object. Whenever you need to
read/parse a file, you ask the registry to do it, and the registry tries each
registered reader.
For ease of use with the existing lld code base, there is one Registry
object inside the LinkingContext object.
2) Changing kind value to be a tuple
Beside Readers, the registry also keeps track of the mapping for Reference
Kind values to and from strings. Along with that, this patch also fixes
an ambiguity with the previous Reference::Kind values. The problem was that
we wanted to reuse existing relocation type values as Reference::Kind values.
But then how can the YAML write know how to convert a value to a string? The
fix is to change the 32-bit Reference::Kind into a tuple with an 8-bit namespace
(e.g. ELF, COFFF, etc), an 8-bit architecture (e.g. x86_64, PowerPC, etc), and
a 16-bit value. This tuple system allows conversion to and from strings with
no ambiguities.
llvm-svn: 197727
|
|
|
|
| |
llvm-svn: 196056
|
|
|
|
|
|
| |
No change in functionality.
llvm-svn: 196053
|
|
|
|
| |
llvm-svn: 194037
|
|
|
|
|
|
| |
It was never transporting any value in addition to the error_code.
llvm-svn: 194028
|
|
|
|
| |
llvm-svn: 192939
|
|
|
|
|
|
|
| |
This also reverts the LayoutPass to use std::sort as all files
have an ordinal now.
llvm-svn: 192409
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes :-
a) Functionality in InputGraph to insert Input elements at any position
b) Functionality in the Resolver to use nextFile
c) Move the functionality of assigning file ordinals to InputGraph
d) Changes all inputs to MemoryBuffers
e) Remove LinkerInput, InputFiles, ReaderArchive
llvm-svn: 192081
|
|
|
|
| |
llvm-svn: 191924
|
|
|
|
|
|
|
|
|
|
|
|
| |
This handles multiple weak symbols which appear back to back. This fix is needed
which otherwise will lead to symbols getting initialized to arbitrary values.
There was a constructor/destructor test that really triggered this to be fixed
on X86_64.
Adds a test.
llvm-svn: 190658
|
|
|
|
| |
llvm-svn: 189876
|
|
|
|
|
|
|
|
|
|
|
|
| |
available in YAML
This adds an API to the LinkingContext for flavors to add Internal files
containing atoms that need to appear in the YAML output as well, when -emit-yaml
switch is used.
Flavors can add more internal files for other options that are needed.
llvm-svn: 189718
|
|
|
|
|
|
|
|
| |
This change processes fini_array section in addition to processing
init_array sections. This also makes functions registered at compile
time for initialization and finalization to be run during execution
llvm-svn: 189196
|
|
|
|
|
|
|
|
| |
There may be relocations that may be pointing to the section
even if the section sizes are 0. We shouldnot ignore them
for that regard.
llvm-svn: 189139
|
|
|
|
|
|
|
| |
There is no change in functionality, this uses the defined way to access
the relocation section that belongs to a particular section.
llvm-svn: 189138
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BSS atoms dont take any file space in the Input file. They are associated
with a contentType(typeZeroFill). Similiar zero fill types also exist which
have the same meaning in terms of occupying file space in the Input.
These atoms have to be handled seperately when writing to the
lld's intermediate file or the lld test infrastructure.
Also adds a test.
llvm-svn: 189136
|
|
|
|
| |
llvm-svn: 188021
|
|
|
|
|
|
|
|
|
| |
Also change some local variable names: "ti" -> "context" and
"_targetInfo" -> "_context".
Differential Revision: http://llvm-reviews.chandlerc.com/D1301
llvm-svn: 187823
|
|
|
|
| |
llvm-svn: 184058
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: shankarke
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D961
llvm-svn: 183850
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Split createAtom() in lib/ReaderWriter/ELF/File.h into small methods.
- Added comments to code in other methods.
No functionality changes.
Reviewers: shankarke
CC: llvm-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D921
llvm-svn: 183696
|
|
|
|
|
|
|
|
| |
This fixes a recent regression (r183338). Stripped elf files (like installed
crtn.o for example), are not required to have a symbol table. Handle that
correctly.
llvm-svn: 183573
|
|
|
|
| |
llvm-svn: 183338
|
|
|
|
|
|
| |
Reference::Kind.
llvm-svn: 182787
|
|
|
|
| |
llvm-svn: 181622
|
|
|
|
| |
llvm-svn: 181325
|
|
|
|
|
|
| |
change in functionality)
llvm-svn: 181288
|
|
|
|
| |
llvm-svn: 180872
|
|
|
|
| |
llvm-svn: 180769
|
|
|
|
| |
llvm-svn: 178815
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The major changes are:
1) LinkerOptions has been merged into TargetInfo
2) LinkerInvocation has been merged into Driver
3) Drivers no longer convert arguments into an intermediate (core) argument
list, but instead create a TargetInfo object and call setter methods on
it. This is only how in-process linking would work. That is, you can
programmatically set up a TargetInfo object which controls the linking.
4) Lots of tweaks to test suite to work with driver changes
5) Add the DarwinDriver
6) I heavily doxygen commented TargetInfo.h
Things to do after this patch is committed:
a) Consider renaming TargetInfo, given its new roll.
b) Consider pulling the list of input files out of TargetInfo. This will
enable in-process clients to create one TargetInfo the re-use it with
different input file lists.
c) Work out a way for Drivers to format the warnings and error done in
core linking.
llvm-svn: 178776
|
|
|
|
| |
llvm-svn: 178695
|
|
|
|
| |
llvm-svn: 178269
|
|
|
|
| |
llvm-svn: 177563
|
|
|
|
|
|
|
|
| |
This changes from reading each relocation individually for each section to just
storing the range of relocations. It also counts the relocations to preallocate
the _references array.
llvm-svn: 177562
|
|
|
|
|
|
| |
This is the standard way of implementing LLVM RTTI.
llvm-svn: 177555
|
|
|
|
|
|
|
| |
This actually doesn't change behavior with the current LinkerInvocation, but
it's needed when you make reading parallel.
llvm-svn: 177554
|
|
|
|
| |
llvm-svn: 177079
|
|
|
|
|
|
| |
tiny portions.
llvm-svn: 176916
|
|
|
|
| |
llvm-svn: 176583
|
|
|
|
| |
llvm-svn: 175901
|
|
|
|
| |
llvm-svn: 175636
|
|
|
|
|
|
| |
at a relative offset from the start of the .rodata section
llvm-svn: 175039
|
|
|
|
|
|
| |
helloworld with glibc on x86_64
llvm-svn: 175038
|
|
|
|
| |
llvm-svn: 174990
|
|
|
|
| |
llvm-svn: 174916
|
|
|
|
| |
llvm-svn: 174658
|