| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
LinkerScript.cpp contains both the linker script processor and the
linker script parser. I put both into a single file, but the file grown
too large, so it's time to put them into two different files.
llvm-svn: 299515
|
| |
|
|
| |
llvm-svn: 299514
|
| |
|
|
|
|
| |
ScriptParser is not a ScriptLexer, so this should be a private inheritance.
llvm-svn: 299513
|
| |
|
|
| |
llvm-svn: 299512
|
| |
|
|
|
|
| |
A for-loop is more boring than a find_if, but I think this is easier to read.
llvm-svn: 299511
|
| |
|
|
| |
llvm-svn: 299509
|
| |
|
|
| |
llvm-svn: 299508
|
| |
|
|
| |
llvm-svn: 299506
|
| |
|
|
|
|
| |
It simplifies variable types.
llvm-svn: 299505
|
| |
|
|
| |
llvm-svn: 299504
|
| |
|
|
| |
llvm-svn: 299503
|
| |
|
|
| |
llvm-svn: 299502
|
| |
|
|
|
|
| |
`!V.size()` where V is a vector is equivalent to `V.empty()`.
llvm-svn: 299501
|
| |
|
|
| |
llvm-svn: 299500
|
| |
|
|
| |
llvm-svn: 299499
|
| |
|
|
|
|
| |
This should improve readability.
llvm-svn: 299498
|
| |
|
|
| |
llvm-svn: 299495
|
| |
|
|
| |
llvm-svn: 299494
|
| |
|
|
| |
llvm-svn: 299493
|
| |
|
|
| |
llvm-svn: 299492
|
| |
|
|
| |
llvm-svn: 298669
|
| |
|
|
|
|
|
|
|
| |
This requires collectign all symbols referenced in the linker script
and adding them to symbol table as undefined symbol.
Differential Revision: https://reviews.llvm.org/D31147
llvm-svn: 298577
|
| |
|
|
|
|
|
|
|
|
|
|
| |
LinkerScript used to be a template class, so we couldn't instantiate
that class in elf::link. We instantiated ScriptConfig class earlier
instead so that the linker script parser can store configurations to
the object.
Now that LinkerScript is not a template, it doesn't make sense to
separate ScriptConfig from LinkerScript. This patch merges them.
llvm-svn: 298457
|
| |
|
|
| |
llvm-svn: 298456
|
| |
|
|
| |
llvm-svn: 298447
|
| |
|
|
|
|
| |
This is a shorthand for `Config->IsLE ? support::little : support::big`.
llvm-svn: 298445
|
| |
|
|
|
|
|
| |
I don't foresee having to makes these functions any stricter or
fancier, so it probably makes sense to inline them.
llvm-svn: 298252
|
| |
|
|
|
|
|
| |
This would fix an initialized error found by msan. The error is not
showing after r298241, but it is not clear why.
llvm-svn: 298251
|
| |
|
|
| |
llvm-svn: 298242
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Patch removes templated linkerscript class.
Unfortunately that required 2 additional static methods
findSymbol() and addRegularSymbol() because code
depends on Symtab<ELFT>::X
Differential revision: https://reviews.llvm.org/D30982
llvm-svn: 298241
|
| |
|
|
| |
llvm-svn: 298240
|
| |
|
|
|
|
|
| |
Handling & in particular is probably important because of its use in
aligning addresses.
llvm-svn: 298096
|
| |
|
|
|
|
|
| |
Since there is no way to produce the correct answer at runtime, it is
probably better to just err.
llvm-svn: 298094
|
| |
|
|
| |
llvm-svn: 298088
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes pr32031 by representing the expressions results as a
SectionBase and offset. This allows us to use an input section
directly instead of getting lost trying to compute an offset in an
outputsection when not all the information is available yet.
This also creates a struct to represent the *value* of and expression,
allowing the expression itself to be a simple typedef. I think this is
easier to read and will make it easier to extend the expression
computation to handle more complicated cases.
llvm-svn: 298079
|
| |
|
|
| |
llvm-svn: 298076
|
| |
|
|
| |
llvm-svn: 298071
|
| |
|
|
|
|
|
| |
This reverts commit r297850 because this change was made
based on a miscommunication.
llvm-svn: 298001
|
| |
|
|
| |
llvm-svn: 297943
|
| |
|
|
|
|
|
| |
Suggested by Rui Ueyama,
also groups member variables in a single place, while I am here.
llvm-svn: 297850
|
| |
|
|
|
|
| |
Became possible after r297844
llvm-svn: 297848
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This also requires postponing the assignment the assignment of
symbols defined in input linker scripts since those can refer to
output sections and in case we don't have a SECTIONS command, we
need to wait until all output sections have been created and
assigned addresses.
Differential Revision: https://reviews.llvm.org/D30851
llvm-svn: 297802
|
| |
|
|
|
|
|
|
|
|
|
|
| |
That moves all members that s possible to move for now (all which
does not depend on ELFT templating).
After that change LinkerScript contains only 8 methods in total,
and I believe it is possible to move them all after tweaking other
parts of linker. And we will be able to have single class for
linkerscript at the end.
llvm-svn: 297735
|
| |
|
|
| |
llvm-svn: 297734
|
| |
|
|
| |
llvm-svn: 297732
|
| |
|
|
|
|
| |
It does not use ELFT templates so can be non-virtual.
llvm-svn: 297727
|
| |
|
|
|
|
| |
It does not use ELFT templates so can be non-virtual.
llvm-svn: 297725
|
| |
|
|
|
|
| |
One more step to combine LinkerScript and LinkerScriptBase.
llvm-svn: 297722
|
| |
|
|
|
|
| |
OutputSectionFactory has no ELFT templates anymore.
llvm-svn: 297720
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
We can move all not templated functionality to LinkerScriptBase.
Patch do that for hasPhdrsCommands() and shows how it helps to detemplate
things in other places.
Probably we should be able to merge these 2 classes into single one after such steps.
Even if not, it still looks as reasonable cleanup for me.
Differential revision: https://reviews.llvm.org/D30895
llvm-svn: 297714
|