| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 326400
|
|
|
|
|
|
|
|
| |
Also add missing tracing to writeU8.
Differential Revision: https://reviews.llvm.org/D43919
llvm-svn: 326398
|
|
|
|
| |
llvm-svn: 326382
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D43910
llvm-svn: 326379
|
|
|
|
|
|
|
| |
clang-format won't reorder include files if there is a blank line.
Thanks to Nico for the tips.
llvm-svn: 326371
|
|
|
|
|
|
|
|
|
|
| |
Some linker script test cases contain only a few lines of assembly
and a long linker script. Such tests are easier to maintain if we
write the main test file as a linkier script instead of assembly.
Differential Revision: https://reviews.llvm.org/D43887
llvm-svn: 326363
|
|
|
|
|
|
|
| |
clang-format automatically sorted the #include lines, but I believe
Windows.h needs to be included before Dbghelp.h.
llvm-svn: 326360
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D43889
llvm-svn: 326356
|
|
|
|
|
|
|
|
| |
This patch improves compatibility with GNU linkers.
Differential Revision: https://reviews.llvm.org/D43883
llvm-svn: 326348
|
|
|
|
| |
llvm-svn: 326347
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When merging in types from a type server PDB, we would use a
pointer into the type server PDB's mapped file buffer directly
to avoid copying data. However, we would close the type server
PDB after we finished merging in its types, which would unmap
all of its memory. This would lead to a use after free.
We fix this by making a strong reference in the PDBLinker class
to all referenced type server PDBs, thereby making it safe to
hold pointers into its memory mapped contents.
This fixes llvm.org/pr36455
Differential Revision: https://reviews.llvm.org/D43834
llvm-svn: 326345
|
|
|
|
| |
llvm-svn: 326344
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D43855
llvm-svn: 326340
|
|
|
|
|
|
|
|
|
| |
This should resolve the issue that lld build fails in some hosts
that uses case-insensitive file system.
Differential Revision: https://reviews.llvm.org/D43788
llvm-svn: 326339
|
|
|
|
|
|
|
|
| |
getSectionName(). NFC.
Differential Revision: https://reviews.llvm.org/D43854
llvm-svn: 326337
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Let X and Y be types. Previously, functions F(X, Y) and G(Y, X) had
the same hash value because their hash values are computed as follows:
hash(F) = hash(X) + hash(Y)
hash(G) = hash(Y) + hash(X)
This patch fixes the issue by using hash_combine.
Differential Revision: https://reviews.llvm.org/D43856
llvm-svn: 326336
|
|
|
|
|
|
|
|
|
| |
Update LLD test expectations for new symbol ordering introduced by
Differential D43685.
Differential Revision: https://reviews.llvm.org/D43875
llvm-svn: 326335
|
|
|
|
|
|
|
|
| |
We should process symbols inside output section declarations the same way as top-level ones.
Differential Revision: https://reviews.llvm.org/D43008
llvm-svn: 326305
|
|
|
|
| |
llvm-svn: 326301
|
|
|
|
| |
llvm-svn: 326300
|
|
|
|
|
|
|
|
|
|
|
| |
This patch simplifies initializeSymbols. Since that function is called
at the tail context of ObjFile::parse, and the function is called only
once from that function, that's effectively just a continuation of
ObjFile::parse. So this patch merge it with ObjFile::parse.
Differential Revision: https://reviews.llvm.org/D43848
llvm-svn: 326296
|
|
|
|
|
|
|
|
|
| |
Specifically the case where the undefined symbol is not found
during the link.
Differential Revision: https://reviews.llvm.org/D43846
llvm-svn: 326294
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D43717
llvm-svn: 326293
|
|
|
|
|
|
|
|
|
|
|
| |
The problem I want to address now is that chunks have too many data
members for "offsets", and their origins are not well defined.
For example, InputSegment has OutputSegmentOffset, but it's base class
also has OutputOffset. That's very confusing.
Differential Revision: https://reviews.llvm.org/D43726
llvm-svn: 326291
|
|
|
|
|
|
|
|
|
| |
These output section names are ELF-specific. We shouldn't have this rule
for WebAssembly.
Differential Revision: https://reviews.llvm.org/D43712
llvm-svn: 326289
|
|
|
|
| |
llvm-svn: 326287
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SubSection inherited from SyntheticSection, and SyntheticSection inherits
from OutputSection, so SubSection was an OutputSection. But that's wrong
because SubSection is not actually a WebAssembly output section.
It shares some functionalities with OutputSection, but overall it's very
different.
This patch removes that inheritance.
Differential Revision: https://reviews.llvm.org/D43719
llvm-svn: 326286
|
|
|
|
|
|
|
|
| |
The main purpose of this change is to make initializeSymbols shorter.
Differential Revision: https://reviews.llvm.org/D43691
llvm-svn: 326285
|
|
|
|
|
|
|
|
| |
That variable hides the class of the same name.
Differential Revision: https://reviews.llvm.org/D43718
llvm-svn: 326283
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D43727
llvm-svn: 326282
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
FileOutputBuffer automatically removes an existing file, so we don't
need to do that. Actually doing that is discouraged because when the
linker fails to create an output for some reason after instantiating
FileOutputBufffer, FileOutputBuffer removes a temporary file and don't
touch an existing file. That's an desired behavior from the user's
point of view.
(Internally, FileOutputBuffer writes its contents to a temporary file
and then rename it over to an existing file on commit()).
Differential Revision: https://reviews.llvm.org/D43728
llvm-svn: 326281
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D43709
llvm-svn: 326280
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: [WebAssembly] Simplify createLikingSection.
Reviewers: sbc100
Subscribers: jfb, dschuff, jgravelle-google, aheejin, sunfish, llvm-commits
Differential Revision: https://reviews.llvm.org/D43715
llvm-svn: 326279
|
|
|
|
|
|
|
|
|
|
|
|
| |
Looks like these accessor functions are a bit overly defensive, and
due to the amount of code, that part isn't easy to read. We have
code to log translation results in writeTo and writeRelocations, so
I don't think we need to log it again in these functions.
I think the new function is much easier to understand.
Differential Revision: https://reviews.llvm.org/D43713
llvm-svn: 326277
|
|
|
|
|
|
|
|
| |
{set,get}OutputSegment don't hide anything, so remove them.
Differential Revision: https://reviews.llvm.org/D43724
llvm-svn: 326276
|
|
|
|
|
|
|
|
|
| |
Instead of {Function,Global,Data}Symbol, use Defined{Function,Global,Data}
because undefined symbol should never reach this function.
Differential Revision: https://reviews.llvm.org/D43710
llvm-svn: 326275
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D43711
llvm-svn: 326274
|
|
|
|
|
|
|
|
|
|
| |
I think calling reserve() for each object file is too many and isn't useful.
We can add reserve() later. By default, we shouldn't add reserve() to a lot
of places.
Differential Revision: https://reviews.llvm.org/D43722
llvm-svn: 326273
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, one function adds all types of undefined symbols. That
doesn't fit to the wasm's undefined symbol semantics well because
different types of undefined symbols are very different in wasm.
As a result, separate control flows merge in this addUndefined function
and then separate again for each type. That wasn't easy to read.
This patch separates the function into three functions. Now it is pretty
clear what we are doing for each undefined symbol type.
Differential Revision: https://reviews.llvm.org/D43697
llvm-svn: 326271
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D43721
llvm-svn: 326269
|
|
|
|
|
|
|
|
|
| |
This means we don't need to write the linking metadata section
at all for executable (non-relocatable) output.
Differential Revision: https://reviews.llvm.org/D42869
llvm-svn: 326268
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Some of the tests invoke llvm-readelf. This currently appears to work
probably because the LLVM binary directory is included in $PATH. However,
this is quite fragile so let's just make lit expand the full path.
Reviewers: ruiu, espindola
Reviewed By: ruiu
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D43827
llvm-svn: 326257
|
|
|
|
|
|
| |
This patch fixes a minor compatibility issue with ld.gold and ld.bfd.
llvm-svn: 326243
|
|
|
|
|
|
|
| |
With the recent fixes these symbols have more in common than not with
regular undefined symbols.
llvm-svn: 326242
|
|
|
|
| |
llvm-svn: 326210
|
|
|
|
|
|
| |
Should fix the build in some bots.
llvm-svn: 326209
|
|
|
|
|
|
|
| |
Now we don't mark a PT_LOAD as readable if all its sections are
SHF_ARM_PURECODE.
llvm-svn: 326207
|
|
|
|
| |
llvm-svn: 326198
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Imagine that we have sections A, B, C, where A == C and
symbol ordering file containing symbols: symC, symB, symA
Previously because of ICF it was possible that final order would be
B, A or B, C. That violates order specified in ordering file.
Patch changes that.
Differential revision: https://reviews.llvm.org/D43234
llvm-svn: 326179
|
|
|
|
|
|
|
|
|
|
|
| |
referenced by DSOs.
It should be possible to resolve undefined symbols in dynamic libraries
using symbols defined in a linker script.
Differential Revision: https://reviews.llvm.org/D43011
llvm-svn: 326176
|