| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
appropriate bits.
This fixes the remaining clang regression test failures when linking clang with
lld on Darwin.
llvm-svn: 255390
|
| |
|
|
|
|
|
|
|
|
| |
The delta64 relocation is represented as the pair ARM64_RELOC_SUBTRACTOR and ARM64_RELOC_UNSIGNED.
Those should always have the same offset, so this adds a check and tests to ensure this is the case.
Also updated the error printing in this case to shows both relocs when erroring on pair.
llvm-svn: 255274
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
table.
The first entry in the MachO symbol table is always the empty string: make sure
we reserve space for it, or we will overflow the symbol table by one byte.
No test case - this manifests as an occasional memory error. In the near future
I hope to set up a bot building and runnnig LLD with sanitizers - that should
catch future instances of this issue.
llvm-svn: 255178
|
| |
|
|
|
|
|
|
|
|
|
| |
The gcc_except_tab was generating these references to point to the typeinfo in the data section.
gcc_except_tab also had the DW_EH_PE_indirect flag set which means that at runtime we are going
to dereference this entry as if it is in the GOT.
Reviewed by Nick Kledzik in http://reviews.llvm.org/D15360.
llvm-svn: 255085
|
| |
|
|
|
|
| |
Differential revision: http://reviews.llvm.org/D14553
llvm-svn: 252661
|
| |
|
|
|
|
| |
Differential revision: http://reviews.llvm.org/D14310
llvm-svn: 252034
|
| |
|
|
| |
llvm-svn: 251637
|
| |
|
|
|
|
|
|
|
| |
MachODefinedCustomSectionAtom.
The section names for these atoms are initialized from temporaries (e.g.
segName + "/" + sectName), so we can't use StringRef here.
llvm-svn: 251610
|
| |
|
|
| |
llvm-svn: 251183
|
| |
|
|
| |
llvm-svn: 251095
|
| |
|
|
| |
llvm-svn: 250863
|
| |
|
|
| |
llvm-svn: 250861
|
| |
|
|
|
|
| |
Patch from Eugene Zelenko!
llvm-svn: 249111
|
| |
|
|
| |
llvm-svn: 248736
|
| |
|
|
|
|
|
|
|
| |
This is a basic initial implementation of the -flat_namespace and
-undefined options for LLD-darwin. It ignores several subtlties,
but the result is close enough that we can now link LLVM (but not
clang) on Darwin and pass all regression tests.
llvm-svn: 248732
|
| |
|
|
|
|
| |
export trie.
llvm-svn: 248217
|
| |
|
|
|
|
| |
Patch from Eugene Zelenko!
llvm-svn: 247323
|
| |
|
|
| |
llvm-svn: 244849
|
| |
|
|
|
|
| |
way of the default ops (copy construction, assignment, etc)
llvm-svn: 244836
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
None of the implementations replace the SimpleFile with some other file,
they just modify the SimpleFile in-place, so a direct reference to the
file is sufficient.
llvm-svn: 240167
|
| |
|
|
| |
llvm-svn: 240147
|
| |
|
|
|
|
| |
Addresses some review comments for r237841.
llvm-svn: 237979
|
| |
|
|
| |
llvm-svn: 237841
|
| |
|
|
|
|
| |
CIE, not just the most recently encountered one.
llvm-svn: 237491
|
| |
|
|
|
|
|
| |
Previously the LSDA field was not being relocated during linking, leading to
failures for some EH tests.
llvm-svn: 237222
|
| |
|
|
| |
llvm-svn: 237219
|
| |
|
|
|
|
| |
MachOLinkingContext.
llvm-svn: 237217
|
| |
|
|
|
|
| |
This just reduces the noise from another patch.
llvm-svn: 235933
|
| |
|
|
|
|
| |
This just reduces the noise from another patch.
llvm-svn: 235776
|
| |
|
|
| |
llvm-svn: 235747
|
| |
|
|
| |
llvm-svn: 235744
|
| |
|
|
| |
llvm-svn: 235741
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
loadFile could load mulitple files just because yaml has a feature for
putting multiple documents in one file.
Designing a linker around what yaml can do seems like a bad idea to
me. This patch changes it to read a single file.
There are further improvements to be done to the api and they
will follow shortly.
llvm-svn: 235724
|
| |
|
|
|
|
| |
This is for consistency with what's used elsewhere in lld tree.
llvm-svn: 234943
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The function took either StringRef or Twine. Since string literals are
ambiguous when resolving the overloading, many code calls used this
function with explicit type conversion. That led awkward code like
make_dynamic_error_code(Twine("Error occurred")).
This patch adds a function definition for string literals, so that
you can directly call the function with literals.
llvm-svn: 234841
|
| |
|
|
|
|
|
|
| |
I believe this patch eliminates all remaining uses of _context
or _linkingContext variable names. Consistent naming improves
readability.
llvm-svn: 234645
|
| |
|
|
|
|
| |
Type names should start with an uppercase letter in the LLVM coding style.
llvm-svn: 234452
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
atom_collection is basically a wrapper for std::vector. The class
provides begin and end member functions, so that it "hides" the
other member functions provided by std::vector. However, you can
still directly access _atoms member since the member is not
protected.
We cannot simply make the member private because we need that member
when we are constructing atom vectors.
This patch splits atom_collection into two types: std::vector<Atom *>
and AtomRange. When we are constructing atom vectors, we use the
former class. We return instances of the latter class from File
objects so that callers cannot add or remove atoms from the lists.
std::vector<Atom *> is automatically converted to AtomRange.
llvm-svn: 234450
|
| |
|
|
|
|
|
| |
atom_collection_vector is the only derived class of atom_collection.
This patch merges the two.
llvm-svn: 234443
|
| |
|
|
| |
llvm-svn: 234419
|
| |
|
|
| |
llvm-svn: 234369
|
| |
|
|
|
|
|
|
| |
SimpleFile is the only derived class of MutableFile.
This patch reduces the height of class hierarchy by removing
MutableFile class.
llvm-svn: 234354
|
| |
|
|
|
|
|
| |
All instances of the `createImplicitFiles` always return `true` and this
return value is used nowhere.
llvm-svn: 234205
|
| |
|
|
|
|
|
|
| |
canParse took three parameters -- file magic, filename extension and
memory buffer. All but YAMLReader ignored the second parameter.
This patch removes the parameter.
llvm-svn: 234080
|
| |
|
|
|
|
|
|
| |
Most developers prefer to not have them, and we agreed to
remove them from LLD.
http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-March/083368.html
llvm-svn: 233313
|
| |
|
|
|
|
| |
I believe "2" stands for log2. Just "align" would be appropriate now.
llvm-svn: 233248
|
| |
|
|
|
|
|
| |
This is the final step of conversion. Now log2 numbers are removed
from everywhere!
llvm-svn: 233246
|
| |
|
|
|
|
|
|
| |
This patch defines implicit conversion between integers and PowerOf2
instances, so uses of the classes is now implicit and look like
regular integers. Now we are ready to remove the scaffolding.
llvm-svn: 233245
|