- Jul 26, 2017
-
-
Rafael Espindola authored
NFC, just makes it easier to access from non templated code. llvm-svn: 309152
-
George Rimar authored
Was discussed in D35797 thread. llvm-svn: 309096
-
George Rimar authored
Previously we handled this option implicitly, only for infering unresolved symbols handling policy. ld man says: "--noinhibit-exec Retain the executable output file whenever it is still usable", and we may want to handle other cases too. Differential revision: https://reviews.llvm.org/D35793 llvm-svn: 309091
-
George Rimar authored
This is PR30422, previously LLD did not render all option aliases in --help. With this patch it will. Differential revision: https://reviews.llvm.org/D35477 llvm-svn: 309089
-
Rui Ueyama authored
Since the flag is ignored anyway, it doesn't matter whether it is an alias or not. llvm-svn: 309055
-
Rafael Espindola authored
llvm-svn: 309053
-
Rafael Espindola authored
llvm-svn: 309051
-
Rafael Espindola authored
These can be referenced with __start_/__stop_ symbols. I will try to make this more precise in a followup patch. llvm-svn: 309048
-
- Jul 25, 2017
-
-
George Rimar authored
This is PR33714. Previously for each input section offset of memory region was incremented on a size of output section. That resulted in a wrong error message saying about overflow. Patch fixes that. Differential revision: https://reviews.llvm.org/D35803 llvm-svn: 308955
-
Rafael Espindola authored
llvm-svn: 308939
-
- Jul 24, 2017
-
-
Dmitry Mikulin authored
If user requested section alignment is greater than MaxPageSize, propagate it to segment headers correctly. Differential Revision: https://reviews.llvm.org/D35813 llvm-svn: 308930
-
Davide Italiano authored
Follow-up to r308915 suggested by Rafael and Peter. llvm-svn: 308920
-
Davide Italiano authored
We do this emitting a section for every function when LTO is used. Fixes PR33888. Differential Revision: https://reviews.llvm.org/D35809 llvm-svn: 308915
-
- Jul 22, 2017
-
-
Rafael Espindola authored
llvm-svn: 308812
-
Rafael Espindola authored
llvm-svn: 308809
-
- Jul 21, 2017
-
-
George Rimar authored
Eq helper allows to define `XXX` and `XXX=` options forms easily. Patch adds testcases for few aliases. Differential revision: https://reviews.llvm.org/D35619 llvm-svn: 308752
-
Igor Kudrin authored
Differential Revision: https://reviews.llvm.org/D35537 llvm-svn: 308728
-
Petr Hosek authored
This method is no longer being used anywhere. Differential Revision: https://reviews.llvm.org/D35706 llvm-svn: 308706
-
Petr Hosek authored
Also add the test cases for the addition and subtraction both for the relative and absolute case. Differential Revision: https://reviews.llvm.org/D35346 llvm-svn: 308692
-
- Jul 20, 2017
-
-
Rafael Espindola authored
We were not looking at Repl and so thinking there was no output section associated with the merged symbol. Because of that it was produced as absolute. This was found by an internal round of testing. llvm-svn: 308681
-
Rui Ueyama authored
SHF_GROUP flag should have been removed when the control reaches here because InputSectionBase turns the flag off. So this code should be redundant. llvm-svn: 308680
-
Rui Ueyama authored
Summary: If the linker is invoked with `--chroot /foo` and `/bar/baz.o`, it tries to read the file from `/foo/bar/baz.o`. This feature is useful when you are dealing with files created by the --reproduce option. Reviewers: grimar Subscribers: llvm-commits, emaste Differential Revision: https://reviews.llvm.org/D35517 llvm-svn: 308646
-
Rafael Espindola authored
With that in place we can use lld's own infrastructure for the low level detail of dwarf parsing. With this we don't decompress sections twice, we don't scan all realocations and even with this simplistic implementation linking clang with gdb index goes from 34.09 seconds to 20.80 seconds. llvm-svn: 308544
-
- Jul 19, 2017
-
-
Rui Ueyama authored
llvm-svn: 308529
-
Rui Ueyama authored
llvm-svn: 308526
-
Rui Ueyama authored
llvm-svn: 308523
-
Rui Ueyama authored
In this way, we don't need to know which options have aliases. llvm-svn: 308519
-
Rafael Espindola authored
In addition this includes a change to prefer symbols with a default version @@ over unversioned symbols. Original commit message: [ELF] - Handle symbols with default version early. This fixes last testcase provided in PR28414. In short issue is next: when we had X@@Version symbol in object A, we did not resolve it to X early. Then when in another object B we had reference to undefined X, symbol X from archive was fetched. Since both archive and object A contains another symbol Z, duplicate symbol definition was triggered as a result. Correct behavior is to use X@@Version from object A instead and do not fetch any symbols from archive. Differential revision: https://reviews.llvm.org/D35059 llvm-svn: 308492
-
- Jul 18, 2017
-
-
Rafael Espindola authored
This is PR33821. What we really want to check in here is if the output section was created, not if the command was empty. llvm-svn: 308382
-
George Rimar authored
llvm-svn: 308300
-
George Rimar authored
llvm-svn: 308297
-
Rui Ueyama authored
This reverts commit r307364 because that change is likely to have caused https://bugs.llvm.org/show_bug.cgi?id=33820. llvm-svn: 308239
-
- Jul 17, 2017
-
-
Shoaib Meenai authored
The comment at the top of compareByFilePosition indicates that it relies on stable_sort to preserve the order of synthetic sections. We were using sort instead of stable_sort, however, leading to incorrect synthetic section ordering. Differential Revision: https://reviews.llvm.org/D35473 llvm-svn: 308207
-
Peter Smith authored
In preparation for range extension thunks introduce a function that will check whether a branch identified by a relocation type at a source address can reach a destination. For targets where range extension thunks are not supported the function will return true as it is not expected that branches are out of range. An implementation has been provided for ARM. Differential Revision: https://reviews.llvm.org/D34690 llvm-svn: 308188
-
George Rimar authored
Funny but we list it as ignored for about 1.5 years atm, though LLD started to support version script really long time ago. llvm-svn: 308170
-
George Rimar authored
This is PR33766. -F name --filter=name When creating an ELF shared object, set the internal DT_FILTER field to the specified name. This tells the dynamic linker that the symbol table of the shared object which is being created should be used as a filter on the symbol table of the shared object name. If you later link a program against this filter object, then, when you run the program, the dynamic linker will see the DT_FILTER field. The dynamic linker will resolve symbols according to the symbol table of the filter object as usual, but it will actually link to the definitions found in the shared object name. Thus the filter object can be used to select a subset of the symbols provided by the object name. (https://linux.die.net/man/1/ld). Shared Objects as Filters: https://docs.oracle.com/cd/E19683-01/817-3677/chapter4-31738/index.html Differential revision: https://reviews.llvm.org/D35352 llvm-svn: 308167
-
- Jul 15, 2017
-
-
Rafael Espindola authored
This code runs after clearOutputSections. llvm-svn: 308066
-
- Jul 14, 2017
-
-
Rafael Espindola authored
llvm-svn: 308057
-
Rafael Espindola authored
NFC, just makes the OutputSectionCommand available. llvm-svn: 308056
-
Igor Kudrin authored
In filling the .got sections, InputSection::OutSecOff was added twice when finding the position to apply a relocation: first time in InputSection::writeTo() and then in SectionBase::getOffset(). Differential revision: https://reviews.llvm.org/D34232 llvm-svn: 308003
-