- Sep 07, 2016
-
-
Ed Maste authored
After r280733 we use LLVM's demangler in lld. As a result we no longer have a discrepancy between f() and f(void) on FreeBSD (due to an issue with FreeBSD's system demangler). Restore a test case for a void arg function. Differential Revision: https://reviews.llvm.org/D24305 llvm-svn: 280831
-
Rafael Espindola authored
It looks like it was disable just because we were missing a demangler. llvm-svn: 280805
-
George Rimar authored
llvm-svn: 280803
-
George Rimar authored
Previously we combined sections by name if linkerscript was used. For that we had to disable SHF_MERGE handling temporarily, but then found that implementing it properly will require additional complexity layers like subsections or something. At the same time looks we can live with multiple output sections approach for now. That patch do this change. Differential revision: https://reviews.llvm.org/D24127 llvm-svn: 280801
-
George Rimar authored
GNU ld supports [chars] wildcards in version scripts, to match a single instance of any of the chars. Here is an extern example from libstdc++'s version script in FreeBSD: extern "C++" { ... std::locale::_[T-Za-z]*; std::[A-Zm]*; std::n[^u]*; std::nu[^m]*; std::num[^e]*; ... } Patch adds support for scripts above. This is PR29093. Differential revision: https://reviews.llvm.org/D23803 llvm-svn: 280799
-
George Rimar authored
Previously testcases were enabled only for shell. r280733 added c++ itanium demangler to lld and we can enable them fully. Also this change make quotes to be escaped: extern "C++" -> extern \"C++\", which worked before just because we are dropping tokens quotes internally at this moment. llvm-svn: 280797
-
Eugene Leviant authored
This patch allows making section defined symbols absolute: .foo : { begin_foo = ABSOLUTE(.); *(.foo) } Differential revision: https://reviews.llvm.org/D24135 llvm-svn: 280788
-
Rui Ueyama authored
llvm-svn: 280766
-
- Sep 06, 2016
-
-
Rafael Espindola authored
llvm-svn: 280753
-
Rafael Espindola authored
llvm-svn: 280733
-
Petr Hosek authored
This flag is supported by both BFD ld and gold and is occasionally used to negate the effect of -gc-sections flag. Differential Revision: https://reviews.llvm.org/D24270 llvm-svn: 280729
-
Rui Ueyama authored
llvm-svn: 280724
-
Rafael Espindola authored
Fixes pr30282. llvm-svn: 280709
-
George Rimar authored
Patch implements FILL just as alias for =fillexpr. This allows to make implementation much shorted and simpler than D24186. Differential revision: https://reviews.llvm.org/D24227 llvm-svn: 280708
-
- Sep 05, 2016
-
-
Simon Atanasyan authored
llvm-svn: 280666
-
Simon Atanasyan authored
llvm-svn: 280665
-
Simon Atanasyan authored
On most architectures the linker is required to optimize away any references to __tls_get_addr in case of static linking. As usual a special case is MIPS - libc defines __tls_get_addr itself because there are no TLS optimizations for this architecture. llvm-svn: 280664
-
- Sep 04, 2016
-
-
Simon Atanasyan authored
It looks like MIPS dynamic loader does not support RELCOUNT tag. Both gold/bfd linkers does not emit this tag on MIPS. I will investigate the problem further but for now it is better to behave like GNU linkers. llvm-svn: 280630
-
- Sep 03, 2016
-
-
Duncan P. N. Exon Smith authored
Adopt r280128 in lld, specializing ilist_alloc_traits rather than reinventing the wheel. llvm-svn: 280566
-
Rui Ueyama authored
llvm-svn: 280548
-
- Sep 02, 2016
-
-
Simon Atanasyan authored
The patch adds support for both '-' and '~' unary expressions. Also it brings support for signed numbers is expressions. https://llvm.org/bugs/show_bug.cgi?id=30221 Differential revision: https://reviews.llvm.org/D24128 llvm-svn: 280546
-
George Rimar authored
Use std::regex instead of hand written matcher. Patch based on code and ideas of Rui Ueyama. Differential revision: https://reviews.llvm.org/D23829 llvm-svn: 280544
-
Rui Ueyama authored
llvm-svn: 280541
-
Rui Ueyama authored
Differential Revision: https://reviews.llvm.org/D24207 llvm-svn: 280540
-
Rui Ueyama authored
od is defined by POSIX and exists since version 1 AT&T Unix. hexdump is not part of any standard as far as I know. So od is a better choice than hexdump. Differential Revision: https://reviews.llvm.org/D24205 llvm-svn: 280536
-
Rui Ueyama authored
llvm-svn: 280533
-
Rui Ueyama authored
"Error" looks like it is indicating a parse error. "Error" actually instructs the later process to report an error if there's an error condition. Thus the new name. llvm-svn: 280529
-
Rui Ueyama authored
llvm-svn: 280528
-
Rui Ueyama authored
Cmd used to be the single central place to dispatch. It is not longer the case because we have a logic for readProvideOrAssignment(). This patch removes the hash table so that evrything is in a single function. This is slightly verbose but should improve readability. Differential Revision: https://reviews.llvm.org/D24200 llvm-svn: 280524
-
Rui Ueyama authored
llvm-svn: 280515
-
Rui Ueyama authored
Previously, we created temporary files using llvm::sys::fs::createTemporaryFile and removed them using llvm::FileRemover. This is error-prone as it is easy to forget creating FileRemover instances after creating temporary files. There is actually a temporary file leak bug. This patch introduces a new class, TemporaryFile, to manage temporary files in the RAII style. Differential Revision: https://reviews.llvm.org/D24176 llvm-svn: 280510
-
Rui Ueyama authored
Windows does not allow opened files to be removed. This patch fixes two types of errors. - Output file being the same as input file. Because LLD itself holds a file descriptor of the input file, it cannot create an output file with the same name as a new file. - Removing files before releasing MemoryBuffer objects. These tests are not failing no because MemoryBuffer happens to decide not to use mmap on these files. But we shouldn't rely on that behavior. llvm-svn: 280507
-
George Rimar authored
Both bfd and gold accept: foo = 1K; bar = 1M; zed = 1H; And lowercase forms: k, m, h. Patch adds support for that. Differential revision: https://reviews.llvm.org/D24194 llvm-svn: 280494
-
George Rimar authored
FreeBSD's libstdc++ build (used on tier-2 architectures) uses GNU ld's -f <name> option, which sets the DT_AUXILIARY field to the specified name. Multiple -f options may be specified and the DT_AUXILIARY entries will be added in the order in which they appear. Patch implements that option. Differential revision: https://reviews.llvm.org/D24139 llvm-svn: 280475
-
Rui Ueyama authored
llvm-svn: 280423
-
Petr Hosek authored
The primary use of build-id is in debugging, hence omitting debug sections when computing it significantly reduces its usability as changes in debug section content wouldn't alter the build-id. Differential Revision: https://reviews.llvm.org/D24120 llvm-svn: 280421
-
- Sep 01, 2016
-
-
Rafael Espindola authored
llvm-svn: 280375
-
Rafael Espindola authored
This is what InputSectionBase<ELFT>::relocate does and we need to be consistent. The other option would be to be more explicit about which relocations are signed and which are not, and sign extend only when appropriated. That would require extending the target interface. llvm-svn: 280366
-
Eugene Leviant authored
Previously we used LayoutInputSection class to correctly assign symbols defined in linker script. This patch removes it and uses pointer to preceding input section in SymbolAssignment class instead. Differential revision: https://reviews.llvm.org/D23661 llvm-svn: 280348
-
Rafael Espindola authored
They were both pointing to the start of the got, not the end. Fixes pr28924. llvm-svn: 280310
-