- Mar 08, 2017
-
-
Rafael Espindola authored
llvm-svn: 297293
-
Rafael Espindola authored
llvm-svn: 297292
-
Rafael Espindola authored
It is sufficiently different in that it returns an offset in the input file, not the output section. llvm-svn: 297290
-
Rafael Espindola authored
llvm-svn: 297287
-
Rafael Espindola authored
llvm-svn: 297286
-
Rafael Espindola authored
llvm-svn: 297282
-
Rafael Espindola authored
With this InputSectionBase is now 144 bytes. llvm-svn: 297278
-
Peter Smith authored
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
-
- Mar 07, 2017
-
-
Rafael Espindola authored
This is consistent with what we do for input sections. llvm-svn: 297152
-
Rafael Espindola authored
llvm-svn: 297146
-
Rafael Espindola authored
It now matches the name used in InputSectionBase. llvm-svn: 297144
-
Peter Smith authored
This change fixes a bug in which the Mips LA25 Thunks are always assigned to the same Output section as the caller and not the callee as expected. Differential Revision: https://reviews.llvm.org/D30637 llvm-svn: 297135
-
Rui Ueyama authored
llvm-svn: 297108
-
Rui Ueyama authored
llvm-svn: 297107
-
- Mar 06, 2017
-
-
Rafael Espindola authored
NFC, just a bit simpler. llvm-svn: 297087
-
Rafael Espindola authored
llvm-svn: 297077
-
Evgeniy Stepanov authored
tools/lld/ELF/Symbols.cpp:215:13: error: unused variable 'S' [-Werror,-Wunused-variable] if (auto *S = dyn_cast<SharedSymbol>(this) llvm-svn: 297063
-
Rafael Espindola authored
llvm-svn: 297061
-
Rafael Espindola authored
llvm-svn: 297059
-
Rafael Espindola authored
This puts us at parity with bfd, which could already gc this case. I noticed the sections not being gced when linking a modified freebsd kernel. A section that was not gced and not mentioned in the linker script would end up breaking the expected layout. Since fixing the gc is relatively simple and an improvement, that seems better than trying to hack the orphan placement code. There are 173 input section in the entire link whose names are valid C identifiers, so this is probably not too performance critical. llvm-svn: 297049
-
Rui Ueyama authored
llvm-svn: 297012
-
George Rimar authored
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
-
- Mar 02, 2017
-
-
Rafael Espindola authored
This is consistent with rest of the file and opens the way for a relocation keeping multiple sections alive. llvm-svn: 296788
-
Rui Ueyama authored
llvm-svn: 296773
-
Peter Collingbourne authored
Differential Revision: https://reviews.llvm.org/D30519 llvm-svn: 296726
-
Rafael Espindola authored
We were not gcing any section whose name was a C identifier. Both gold and bfd only keep those if they are used. To avoid having to create the __start/__stop symbols early or doing string lookups in resolvedReloc, this patch just looks for undefined symbols __start/__stop to decide if a section is needed or not. llvm-svn: 296723
-
Peter Collingbourne authored
This patch adds an option named --thinlto-cache-dir, which specifies the path to a directory in which to cache native object files for ThinLTO incremental builds. Differential Revision: https://reviews.llvm.org/D30509 llvm-svn: 296702
-
- Mar 01, 2017
-
-
Rui Ueyama authored
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
-
Rui Ueyama authored
llvm-svn: 296695
-
Rui Ueyama authored
llvm-svn: 296694
-
Rui Ueyama authored
llvm-svn: 296689
-
Rui Ueyama authored
llvm-svn: 296688
-
Rui Ueyama authored
GdbIndexBuilder class inherited LoadedObjectInfo, but that's not necessary. llvm-svn: 296687
-
Rui Ueyama authored
llvm-svn: 296686
-
Rui Ueyama authored
llvm-svn: 296680
-
Rui Ueyama authored
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
-
Rui Ueyama authored
llvm-svn: 296650
-
Rafael Espindola authored
llvm-svn: 296620
-
Rafael Espindola authored
llvm-svn: 296619
-
George Rimar authored
In many places we reset Size to 0 before calling assignOffsets() manually. Sometimes we don't do that. It looks we can just always do that inside. Previous code had: template <class ELFT> void OutputSection::assignOffsets() { uint64_t Off = Size; And tests feels fine with Off = 0. I think Off = Size make no sence. Differential revision: https://reviews.llvm.org/D30463 llvm-svn: 296609
-