- Mar 07, 2017
-
-
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 03, 2017
-
-
Zachary Turner authored
Prior to MSVC 2015 we had to manually include this header any time we were going to include <thread> or <future> due to a bug in MSVC's STL implementation. This has been fixed in MSVC for some time now, and we require VS 2015 minimum, so we can remove this across all subprojects. llvm-svn: 296906
-
- Mar 02, 2017
-
-
Zachary Turner authored
After several smaller patches to get most of the core improvements finished up, this patch is a straight move and header fixup of the source. Differential Revision: https://reviews.llvm.org/D30266 llvm-svn: 296810
-
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
-
Rafael Espindola authored
llvm-svn: 296786
-
Rui Ueyama authored
llvm-svn: 296773
-
George Rimar authored
Previously it would not catch if exact symbol name matching would change behavior to pattern matching. llvm-svn: 296740
-
-
Peter Collingbourne authored
llvm-svn: 296728
-
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
llvm-svn: 296703
-
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
-
George Rimar authored
r296570 intorduced crash revealed by gnu-hash-table.s which crashed for me. Reason was use of uninitialized NBuckets variable. llvm-svn: 296597
-
Rui Ueyama authored
llvm-svn: 296586
-
Sean Silva authored
Thanks to Rafael for helping to dig down into what we're really trying to communicate here. llvm-svn: 296580
-
Rui Ueyama authored
Each input section knows its sh_entsize value, so we can set output section's sh_entsize based on input sections values. llvm-svn: 296577
-