| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
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
|
|
|
|
|
|
| |
Differential revision: https://reviews.llvm.org/D30832
llvm-svn: 297713
|
|
|
|
| |
llvm-svn: 297622
|
|
|
|
|
|
| |
It is available from ScriptBase.
llvm-svn: 297472
|
|
|
|
|
|
|
| |
This is a small step for fixing pr32031, which needs expressions that
point to input sections.
llvm-svn: 297431
|
|
|
|
|
|
|
|
|
| |
This is an alternative to https://reviews.llvm.org/D30500 to simplify the
version definition parser and allow ":" in symbol names.
Differential Revision: https://reviews.llvm.org/D30722
llvm-svn: 297402
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this we have a single section hierarchy. It is a bit less code,
but the main advantage will be in a future patch being able to handle
foo = symbol_in_obj;
in a linker script. Currently that fails since we try to find the
output section of symbol_in_obj. With this we should be able to just
return an InputSection from the expression.
llvm-svn: 297313
|
|
|
|
| |
llvm-svn: 297287
|
|
|
|
|
|
| |
It now matches the name used in InputSectionBase.
llvm-svn: 297144
|
|
|
|
| |
llvm-svn: 296620
|
|
|
|
| |
llvm-svn: 296619
|
|
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D30348
llvm-svn: 296508
|
|
|
|
|
|
|
|
|
| |
That function doesn't use any member of SymbolTableSection, so I
couldn't see a reason to make it a member of that class. The function
takes a SymbolBody, so it is more natural to make it a member of
SymbolBody.
llvm-svn: 296433
|
|
|
|
|
|
| |
This class didn't use ELFT.
llvm-svn: 296313
|
|
|
|
|
|
|
|
|
|
| |
The list of all input sections was defined in SymbolTable class for a
historical reason. The list itself is not a template. However, because
SymbolTable class is a template, we needed to pass around ELFT to access
the list. This patch moves the list out of the class so that it doesn't
need ELFT.
llvm-svn: 296309
|
|
|
|
|
|
|
| |
Since OutputSection is no longer a template, it doesn't make much
sense to tempalte its factory class.
llvm-svn: 296308
|
|
|
|
| |
llvm-svn: 296307
|
|
|
|
|
|
|
| |
Now that all special sections are SyntheticSections, we only need one
OutputSection class.
llvm-svn: 296127
|