- Dec 08, 2016
-
-
Rafael Espindola authored
Thanks to George Rimar for pointing it out. llvm-svn: 289020
-
Rui Ueyama authored
Obj is an instance of std::unique_ptr, so *Obj.get() is the same as *Obj. llvm-svn: 288996
-
Rui Ueyama authored
clang-format-diff sorted these #include's in the asciibetical order, but they need to be in this order. llvm-svn: 288995
-
Rui Ueyama authored
llvm-svn: 288993
-
Rui Ueyama authored
Previously, we had different way to stringize SymbolBody and InputFile to construct error messages. This patch defines overloaded function toString() so that we don't need to memorize all these different function names. With that change, it is now easy to include demangled names in error messages. Now, if there is a symbol name conflict, we'll print out both mangled and demangled names. llvm-svn: 288992
-
- Dec 07, 2016
-
-
Rafael Espindola authored
Thanks to Rui for the suggestion. llvm-svn: 288982
-
Rui Ueyama authored
llvm-svn: 288975
-
Rafael Espindola authored
Now Target->MaxPageSize is only used as the default value of Config->MaxPageSize. llvm-svn: 288974
-
Rui Ueyama authored
Line number can never contain '/' or '\', so the previous code was pointless at that point. llvm-svn: 288973
-
Rui Ueyama authored
llvm-svn: 288972
-
Rafael Espindola authored
llvm-svn: 288971
-
Rafael Espindola authored
Found by inspection. llvm-svn: 288970
-
George Rimar authored
llvm-svn: 288967
-
George Rimar authored
Currently LLD prints basename of source file name in error messages, for example: $ mkdir foo $ echo 'void _start(void) { foobar(); }' > foo/bar.c $ gcc -g -c foo/bar.c $ bin/ld.lld -o out bar.o bin/ld.lld: error: bar.c:1: undefined symbol 'foobar' $ This should say: bin/ld.lld: error: foo/bar.c:1: undefined symbol 'foobar' This is PR31299 Differential revision: https://reviews.llvm.org/D27506 llvm-svn: 288966
-
Adhemerval Zanella authored
This patch refactor how to apply the R_AARCH64_LDST{8,16,32,64,128}_ABS_NC relocations by adding a new function to correct extract the bits expected by each relocation. This make is explicit which are the bits range expected and simplify the code to mask and shift the deriable values. It also fixes the R_AARCH64_LDST128_ABS_LO12_NC mask, although in pratice the mask/shift always returns a 16 bytes aligned value. Checked on AArch64 and with test-suite. llvm-svn: 288921
-
Rui Ueyama authored
llvm-svn: 288885
-
Rui Ueyama authored
Config->WarnMissingEntry is a single-purpose boolean variable, and I think it's easier to understand than Config->HasEntry. llvm-svn: 288883
-
Rui Ueyama authored
This patch is to parse the entry symbol name lazily. llvm-svn: 288882
-
Petr Hosek authored
This is related to the change in handling of entry point symbols. Differential Revision: https://reviews.llvm.org/D27500 llvm-svn: 288880
-
Petr Hosek authored
Shared libraries should have entry set following the same rules as for regular binaries. The only difference is that in case the default entry point (_start or __start) isn't found (unless it was set explicitly), we shouldn't give a warning as in case of regular binaries. Differential Revision: https://reviews.llvm.org/D27497 llvm-svn: 288878
-
Petr Hosek authored
The presence of DT_DEBUG entry is unrelated to the existence of entry point. Differential Revision: https://reviews.llvm.org/D27496 llvm-svn: 288877
-
- Dec 06, 2016
-
-
George Rimar authored
Minor patch to fix PR31288 OpenBSD commit: https://github.com/openbsd/src/commit/d39116912b9536bd77326260dc5c6e593fd4ee24 Differential revision: https://reviews.llvm.org/D27458 llvm-svn: 288832
-
Rafael Espindola authored
If we do, the freebsd dynamic linker tries to call mmap with a size 0, which fails. It is hard to avoid creating them when linker scripts are used, so we just delete empty PT_LOADs at the end. llvm-svn: 288808
-
Rafael Espindola authored
For preemptable symbols the dynamic linker does all the work. Trying to compute the addend is at best wasteful and can also lead to crashes in cases of programs that uses tls but doesn't define any tls variables. llvm-svn: 288803
-
Rafael Espindola authored
llvm-svn: 288802
-
Rui Ueyama authored
This change seems to make LLD 0.6% faster when linking Clang with debug info. I don't want us to have lots of local optimizations, but this function is very hot, and the improvement is small but not negligible, so I think it's worth doing. llvm-svn: 288757
-
- Dec 05, 2016
-
-
Rafael Espindola authored
This test only needs to test the Type (SharedObject), the address of the first PT_LOAD and the presence of PT_DYNAMIC. llvm-svn: 288719
-
Rafael Espindola authored
It only needs to find how many are local. llvm-svn: 288716
-
Rui Ueyama authored
That patch broke build. llvm-svn: 288708
-
Rui Ueyama authored
llvm-svn: 288707
-
Rafael Espindola authored
llvm-svn: 288704
-
Rafael Espindola authored
llvm-svn: 288702
-
Rafael Espindola authored
This test is just about which symbols are in which table. llvm-svn: 288701
-
Rafael Espindola authored
llvm-svn: 288700
-
Rafael Espindola authored
Looks like the second section in this test was lost along the way. llvm-svn: 288699
-
Rui Ueyama authored
llvm-svn: 288686
-
Rui Ueyama authored
Also add a citation to GNU gold safe ICF paper. Differential Revision: https://reviews.llvm.org/D27398 llvm-svn: 288684
-
Rui Ueyama authored
On Linux (and probably on other Unix-like systems), unlink(2) is noticeably slow. It takes 250 milliseconds to remove a 1 GB file on ext4 filesystem on my machine, whether the file is on SSD or on a spinning disk. To create a new result file, we remove existing file first. So, if you repeatedly link a 1 GB program in a regular compile-link-debug cycle, every cycle wastes 250 milliseconds only to remove a file. Since LLD can link a 1 GB in about 5 seconds, that waste actually matters. This patch defines `unlinkAsync` function. The function spawns a background thread to call unlink. The calling thread returns almost immediately. Differential Revision: https://reviews.llvm.org/D27295 llvm-svn: 288680
-
Eugene Leviant authored
Differential revision: https://reviews.llvm.org/D27335 llvm-svn: 288678
-
Adhemerval Zanella authored
The relocation R_AARCH64_LDST16_ABS_LO12_NC should set a ld/st immediate value to bits [11:1] not [11:2]. This patches fixes it and adds a testcase for regression. With this fix all the faulty tests on test-suite (clavm, lencod, and trimaran) pass. llvm-svn: 288670
-