| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 298244
|
|
|
|
| |
llvm-svn: 298243
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 298230
|
|
|
|
|
|
|
|
|
|
|
| |
We had a few Config member functions that returns configuration values.
For example, we had is64() which returns true if the target is 64-bit.
The return values of these functions are constant and never change.
This patch is to compute them only once to make it clear that they'll
never change.
llvm-svn: 298168
|
|
|
|
|
|
|
| |
isLE() return true if the target is little-endian.
wordsize() returns 8 for 64-bit and 4 for 32-bit.
llvm-svn: 298167
|
|
|
|
|
|
|
| |
To be consistent with other code, addresses post
commit review comments.
llvm-svn: 298102
|
|
|
|
|
|
|
|
|
|
|
| |
sections
Do not take in account the `Live` flag while collecting .reginfo, .MIPS.options,
and .MIPS.abiflags input sections to produce corresponding output sections.
These sections have information purpose and should be always produced per
ABI requirements.
llvm-svn: 298093
|
|
|
|
| |
llvm-svn: 298087
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With fix of next warning:
Writer.cpp:361:3: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
Original commit message:
Patch reuses BssSection section to simplify creation of
COMMON section.
Differential revision: https://reviews.llvm.org/D30690
llvm-svn: 298086
|
|
|
|
|
|
| |
It segfaults.
llvm-svn: 298084
|
|
|
|
|
|
|
|
|
| |
Patch reuses BssSection section to simplify creation of
COMMON section.
Differential revision: https://reviews.llvm.org/D30690
llvm-svn: 298078
|
|
|
|
| |
llvm-svn: 298072
|
|
|
|
| |
llvm-svn: 298071
|
|
|
|
|
|
|
| |
Alternative approach can be remove templated method
either, like D31028 do.
llvm-svn: 298065
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Was fixed, details on review page.
Original commit message:
That removes CopyRelSection class completely, making
Bss/BssRelRo to be just regular synthetics.
This is splitted from D30541 and polished.
Difference from D30541 that all logic of SharedSymbol
converting to DefinedRegular was removed for now and
probably will be posted as separate patch.
Differential revision: https://reviews.llvm.org/D30892
llvm-svn: 298062
|
|
|
|
|
|
| |
Addresses post commit review comment.
llvm-svn: 297953
|
|
|
|
|
|
|
|
|
| |
SymbolBody::getGotPltOffset(). NFC.
That opens road to detemplate PltSection<ELFT>,
what allows then to detemplate all methods of SymbolBody.
llvm-svn: 297950
|
|
|
|
|
|
| |
Excessive typename keyword.
llvm-svn: 297949
|
|
|
|
|
|
|
|
| |
That allows to detemplate getGotPltOffset/getGotPltVA
methods of SymbolBody and also will help to detemplate
DynamicReloc itself later.
llvm-svn: 297946
|
|
|
|
| |
llvm-svn: 297943
|
|
|
|
| |
llvm-svn: 297939
|
|
|
|
|
|
|
|
|
| |
I suppose it is the reason of BB fail:
http://lab.llvm.org:8011/builders/clang-cmake-aarch64-lld/builds/921
https://bugs.llvm.org/show_bug.cgi?id=32167
llvm-svn: 297933
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
areas.
Patch splits In<ELFT> into 2 classes: one for non-templated sections,
second contains ELFT templated ones.
That allows to code that was detemplated to access non-templated sections freely,
and should open road for futher detemplation proccess.
Differential revision: https://reviews.llvm.org/D30939
llvm-svn: 297844
|
|
|
|
| |
llvm-svn: 297831
|
|
|
|
|
|
|
|
|
| |
After introducing Config->is64Bit() and
recent changes in LinkerScriptBase, some
sections can be detemplated trivially. This
is one of such cases.
llvm-svn: 297825
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
StringTableSection was <ELFT> templated previously,
It disallow to de-template code that uses it,
for example LinkerScript<ELFT>::discard uses it as:
if (S == In<ELFT>::ShStrTab)
error("discarding .shstrtab section is not allowed");
It seems we can try to detemplate some of synthetic sections
and somehow make them available for non-templated calls.
(move out of In<ELFT> struct probably).
Differential revision: https://reviews.llvm.org/D30933
llvm-svn: 297815
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
That removes CopyRelSection class completely, making
Bss/BssRelRo to be just regular synthetics.
This is splitted from D30541 and polished.
Difference from D30541 that all logic of SharedSymbol
converting to DefinedRegular was removed for now and
probably will be posted as separate patch.
Differential revision: https://reviews.llvm.org/D30892
llvm-svn: 297814
|
|
|
|
|
|
|
|
|
| |
Patch introduces Config->is64Bit() and with help of that detemplates
GotPltSection and IgotPltSection sections
Differential revision: https://reviews.llvm.org/D30944
llvm-svn: 297813
|
|
|
|
|
|
|
|
|
|
|
| |
Using .eh_frame input section pattern in linker script currently
causes a crash; this is because .eh_frame input sections require
special handling since they're all combined into a synthetic
section rather than regular output section.
Differential Revision: https://reviews.llvm.org/D30627
llvm-svn: 297501
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gold linker manual describes them as:
-z text Do not permit relocations in read-only segments
-z notext Permit relocations in read-only segments (default)
In LLD default is to not permit them. Patch implements -z notext.
Differential revision: https://reviews.llvm.org/D30530
llvm-svn: 297366
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 297305
|
|
|
|
|
|
|
| |
This reverts commit r297008 because it's reported that that
change broke AArch64 bots.
llvm-svn: 297297
|
|
|
|
| |
llvm-svn: 297293
|
|
|
|
| |
llvm-svn: 297292
|
|
|
|
|
|
|
| |
It is sufficiently different in that it returns an offset in the input
file, not the output section.
llvm-svn: 297290
|
|
|
|
| |
llvm-svn: 297287
|
|
|
|
|
|
| |
With this InputSectionBase is now 144 bytes.
llvm-svn: 297278
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change moves the calls to finalizeContent() for each synthetic section
before createThunks(). This will allow us to assign addresses prior to
calling createThunks(). As addition of thunks may add to the static
symbol table and may affect the size of the mips got section we introduce a
couple of additional member functions to update these values.
Differential revision: https://reviews.llvm.org/D29983
llvm-svn: 297277
|
|
|
|
| |
llvm-svn: 297108
|
|
|
|
| |
llvm-svn: 297107
|
|
|
|
| |
llvm-svn: 297077
|
|
|
|
| |
llvm-svn: 297061
|
|
|
|
| |
llvm-svn: 297059
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In compare with D30458, this makes Bss/BssRelRo to be pure
synthetic sections.
That removes CopyRelSection class completely, making
Bss/BssRelRo to be just regular synthetics.
SharedSymbols involved in creating copy relocations are
converted to DefinedRegular, what also simplifies things.
Differential revision: https://reviews.llvm.org/D30541
llvm-svn: 297008
|
|
|
|
|
|
|
|
|
|
|
|
| |
That class had three member functions, and all of them are just reader
methods that did not depend on class members, so they can be just non-
member functions.
Probably we should reorganize the functions themselves because their
return types doesn't make much sense to me, but for now I just moved
these functions out of the class.
llvm-svn: 296700
|
|
|
|
| |
llvm-svn: 296695
|
|
|
|
| |
llvm-svn: 296686
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Looks like .gdb.index and its support classes do things that they don't
have to or shouldn't do do. This patch addresses one of these issues.
GdbHashTab class is a hash table class. Just like other in-memory hash
tables, that incrementally updates its internal data and resizes buckets
as new elements are added so that key lookup is always fast.
But that is completely not necessary.
Unlike debuggers, we only produce hash tables for .gdb.index and
never read them. So incrementally updating a hash table in memory is
just a waste of resource and complicates the code. What we should
do is to accumulate symbols and then create the final hash table
at once.
llvm-svn: 296678
|