- Jan 27, 2017
-
-
Peter Smith authored
Thunks are now implemented by redirecting the relocation to the symbol S, to a symbol TS in a Thunk. The Thunk will transfer control to S. This has the following implications: - All the side-effects of Thunks happen within createThunks() - Thunks are no longer stored in InputSections and Symbols no longer need to hold a pointer to a Thunk - The synthetic Thunk sections need to be merged into OutputSections This implementation is almost a direct conversion of the existing Thunks with the following exceptions: - Mips LA25 Thunks are placed before the InputSection that defines the symbol that needs a Thunk. - All ARM Thunks are placed at the end of the OutputSection of the first caller to the Thunk. Range extension Thunks are not supported yet so it is optimistically assumed that all Thunks can be reused. Differential Revision: https://reviews.llvm.org/D29129 llvm-svn: 293283
-
Eugene Leviant authored
llvm-svn: 293278
-
Eugene Leviant authored
Differential revision: https://reviews.llvm.org/D28761 llvm-svn: 293276
-
Simon Dardis authored
Currently LLVM can only generate PIC code for MIPS64 with the N64 as it uses the idiom "isPositionIndependent() || IsABI_N64()" throughout the MIPS backend. r293164 changed this, causing test failures for LLD. This patch changes the tests minimally to preserve existing test coverage and one case where the test was "right" in the wrong circumstance. Reviewers: atanasyan Differential Revision: https://reviews.llvm.org/D29194 llvm-svn: 293275
-
- Jan 26, 2017
-
-
Rafael Espindola authored
Should fix a few freebsd packages with dtrace. llvm-svn: 293177
-
Rui Ueyama authored
llvm-svn: 293144
-
Rui Ueyama authored
Negative flags are still bit flags, so I think "not flag" is a very good name. llvm-svn: 293143
-
Rui Ueyama authored
llvm-svn: 293142
-
Rui Ueyama authored
llvm-svn: 293141
-
Davide Italiano authored
Patch by Dmitry Mikulin. PR: 31735 Differential Revision: https://reviews.llvm.org/D29150 llvm-svn: 293139
-
Peter Collingbourne authored
Now we never append a number to the file name for task ID 0. This is similar to r293132 in the gold plugin. llvm-svn: 293138
-
Rui Ueyama authored
llvm-svn: 293130
-
Bob Haarman authored
Summary: MSVC allows linker options to be specified in source code. One of these is the /INCLUDE directive, which specifies that a symbol must be added to the symbol table, even if it otherwise wouldn't be. Existing tests cover the case where the linker is given an object file with an /INCLUDE directive, but we also need to cover the case where /INCLUDE is specified in a bitcode file (as would happen when using LTO). This new test covers that case. Reviewers: pcc, ruiu Reviewed By: ruiu Differential Revision: https://reviews.llvm.org/D29096 llvm-svn: 293107
-
- Jan 25, 2017
-
-
Adrian McCarthy authored
This eliminates one overload on the term Raw. Differential Revision: https://reviews.llvm.org/D29098 llvm-svn: 293104
-
Rui Ueyama authored
llvm-svn: 293100
-
Rui Ueyama authored
llvm-svn: 293096
-
Rui Ueyama authored
llvm-svn: 293095
-
Rafael Espindola authored
It now uses the same infrastructure as symbol versions. This fixes us creating a dynamic relocation without a corresponding dynamic symbol. This also means that unlike gold and bfd we keep a STB_LOCAL in the static symbol table. It seems an odd feature to offer precise control over what is in a symbol table that is not used by the dynamic linker. We can bring this back if needed, but it would probably be better to just have --discard option that tells the linker to keep in the static symbol table only what is in the dynamic one. Should fix the eog build. llvm-svn: 293093
-
Rui Ueyama authored
llvm-svn: 293089
-
Rafael Espindola authored
While at it, also remove unused command line options. llvm-svn: 293084
-
Michal Gorny authored
Set LLVM_LIBRARY_OUTPUT_INTDIR as expected by llvm_setup_rpath() macro when doing stand-alone builds. This is required to pass correct -rpath-link when linking shared libraries, and therefore ensure that the linker can find dependency libraries correctly during the build. Differential Revision: https://reviews.llvm.org/D29099 llvm-svn: 293078
-
George Rimar authored
These relocations are used in linux kernel. Differential revision: https://reviews.llvm.org/D28094 llvm-svn: 293054
-
Peter Smith authored
Mapping symbols allow a mapping symbol aware disassembler to correctly disassemble the PLT when the code immediately prior to the PLT is Thumb. To implement this we add a function to add symbols with local binding to be defined in SyntheticSymbols. Differential Revision: https://reviews.llvm.org/D28956 llvm-svn: 293044
-
- Jan 24, 2017
-
-
Rui Ueyama authored
llvm-svn: 292980
-
George Rimar authored
Next code crashed under MSVS2015 for me: this->OutSec->Info = this->Info = 1 + It - Symbols.begin(); Because It was end() and addition of 1 is not allowed. vector implementation catched and failed that inside: _Myiter& operator+=(difference_type _Off) { // increment by integer #if _ITERATOR_DEBUG_LEVEL == 2 if (this->_Getcont() == 0 || this->_Ptr + _Off < ((_Myvec *)this->_Getcont())->_Myfirst || ((_Myvec *)this->_Getcont())->_Mylast < this->_Ptr + _Off) { // report error _DEBUG_ERROR("vector iterator + offset out of range"); _SCL_SECURE_OUT_OF_RANGE; llvm-svn: 292940
-
Peter Smith authored
The sh_info field of the SHT_SYMTAB section holds the index for the first non-local symbol. When there are global symbols that are output with STB_LOCAL binding due to having hidden visibility or matching the local version from a version script, the calculated value of NumLocals + 1 does not account for them. This change accounts for global symbols being output with local binding. Differential Revision: https://reviews.llvm.org/D28950 llvm-svn: 292910
-
Pavel Labath authored
Summary: This fixes a regression caused by D28397, which switched lld from using add_llvm_library to llvm_add_library. The latter does not automatically set up install rules for libraries, as it's expected the project will set them up manually based on its own needs. This adds the install rules to add_lld_library for lld. They were inspired by the similar add_clang_library macro in clang. Reviewers: ruiu, beanz, davidlt, EricWF, dtzWill Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D29007 llvm-svn: 292909
-
George Rimar authored
It was requested during post commit review. llvm-svn: 292903
-
Rui Ueyama authored
Currently ld.lld -r allocates space for common symbols, whereas ld.bfd -r doesn't. As a result the OpenBSD makefile bits for creating libraries fail as they use ld -X -r to strip local symbols, which results in duplicate symbol errors because space for the common symbols has been allocated. The diff also implements the --define-commons option such that allocation of commons can be forced even if -r is used. Patch by Mark Kettenis. llvm-svn: 292878
-
Meador Inge authored
As specified here: * https://sourceware.org/binutils/docs/ld/MEMORY.html#MEMORY There are two deviations from what is specified for GNU ld: 1. Only integer constants and *not* constant expressions are allowed in `LENGTH` and `ORIGIN` initializations. 2. The `I` and `L` attributes are *not* implemented. With (1) there is currently no easy way to evaluate integer only constant expressions. This can be enhanced in the future. With (2) it isn't clear how these flags map to the `SHF_*` flags or if they even make sense for an ELF linker. Differential Revision: https://reviews.llvm.org/D28911 llvm-svn: 292875
-
- Jan 23, 2017
-
-
George Rimar authored
Thanks to Meador Ingle for noticing. llvm-svn: 292799
-
George Rimar authored
Previously we stored kept locals in a KeptLocalSyms arrays, belonged to files. Patch makes SymbolTableSection to store locals in Symbols member, that already present and was used for globals. SymbolTableSection already had NumLocals counter member, so change itself is trivial. That allows to simplify handling of -r, Body::DynsymIndex is no more used as "symbol table index" for relocatable output. Change was suggested during review of D28773 and opens road for D28612. Differential revision: https://reviews.llvm.org/D29021 llvm-svn: 292789
-
George Rimar authored
It is used in linux kernel script: http://lxr.free-electrons.com/source/arch/x86/kernel/vmlinux.lds.S#L140 Though CONSTRUCTORS is ignored for ELF. Differential revision: https://reviews.llvm.org/D28951 llvm-svn: 292777
-
- Jan 22, 2017
-
-
Sean Silva authored
llvm-svn: 292750
-
- Jan 20, 2017
-
-
Zachary Turner authored
llvm-svn: 292673
-
Zachary Turner authored
Differential Revision: https://reviews.llvm.org/D28919 llvm-svn: 292665
-
Rafael Espindola authored
llvm-svn: 292644
-
Rafael Espindola authored
This will simplify a bug fix. llvm-svn: 292642
-
Rafael Espindola authored
addIgnored already creates the symbol only if there is a reference to it. llvm-svn: 292628
-
Peter Smith authored
Include removal of call to getThunkExpr() as it has already been called and recorded by scanRelocs() Cleanup suggestions by Rafael. llvm-svn: 292614
-