- Dec 13, 2016
-
-
Peter Smith authored
When compiling -fpie and linking with the --pie option the R_ARM_GOTBREL relocation to D is resolved by writing the value of D into the .got slot and emitting an R_ARM_RELATIVE relocation for it. This changes adds the R_ARM_RELATIVE relocation to the switch in relocateOne() so we can process the GotSection relocation to write the value of the variable as well as emitting the dynamic relocation. Differential revision: https://reviews.llvm.org/D27678 llvm-svn: 289527
-
Rafael Espindola authored
llvm-svn: 289499
-
- Dec 12, 2016
-
-
Simon Atanasyan authored
llvm-svn: 289471
-
Peter Collingbourne authored
llvm-svn: 289451
-
Simon Atanasyan authored
The VA of _gp was being truncated to 32 bits when calling getVa(), but for 64bit MIPS we need to write a 64 bit value to .MIPS.options. Patch by Alexander Richardson. Differential revision: https://reviews.llvm.org/D27672 llvm-svn: 289432
-
Saleem Abdulrasool authored
Enable building lld as a standalone project. This is motivated by the desire to package lld for inclusion in a linux distribution. This allows building lld against an existing paired llvm installation. Now that lld is usable on x86_64, it makes sense to revive this configuration to allow distributions to package it. llvm-svn: 289421
-
Peter Collingbourne authored
llvm-svn: 289415
-
Peter Collingbourne authored
Differential Revision: https://reviews.llvm.org/D27667 llvm-svn: 289414
-
- Dec 11, 2016
-
-
Peter Collingbourne authored
This resulted in about a 1% perf improvement linking chrome_child.dll. Differential Revision: https://reviews.llvm.org/D27666 llvm-svn: 289410
-
Peter Collingbourne authored
This patch replaces the symbol table's object and archive queues, as well as the convergent loop in the linker driver, with a design more similar to the ELF linker where symbol resolution directly causes input files to be added to the link, including input files arising from linker directives. Effectively this removes the last vestiges of the old parallel input file loader. Differential Revision: https://reviews.llvm.org/D27660 llvm-svn: 289409
-
Peter Collingbourne authored
Using a set here caused us to take about 1 second longer to write the symbol table when linking chrome_child.dll. With this I consistently get better performance on Windows with the new symbol table. Before r289280 and with r289183 reverted (median of 5 runs): 17.65s After this change: 17.33s On Linux things look even better: Before: 10.700480444s After: 5.735681610s Differential Revision: https://reviews.llvm.org/D27648 llvm-svn: 289408
-
Sanjoy Das authored
The existing tbaa metadata in the test is ill-formed, and fails the verifier after r289402. llvm-svn: 289405
-
- Dec 10, 2016
-
-
Rui Ueyama authored
Adding type records to TPI stream is too time consuming. It is reported that linking chrome_child.dll took 5 minutes. llvm-svn: 289330
-
Ismail Donmez authored
llvm-svn: 289320
-
Rui Ueyama authored
llvm-svn: 289293
-
Peter Collingbourne authored
llvm-svn: 289289
-
- Dec 09, 2016
-
-
Rafael Espindola authored
We first decide that the symbol is global, than that it should have version foo. Since it was already not the default version, we were producing a bogus warning. llvm-svn: 289284
-
Peter Collingbourne authored
This ports the ELF linker's symbol table design, introduced in r268178, to the COFF linker. Differential Revision: http://reviews.llvm.org/D21166 llvm-svn: 289280
-
Meador Inge authored
It was pointed out in a post-commit review that the tests were structured oddly. Fixed thusly. llvm-svn: 289278
-
Rafael Espindola authored
llvm-svn: 289277
-
Hans Wennborg authored
The former option bases the filename on the output name, e.g. if the link output is a.exe, the map will be written to a.map. This matches the behaviour of link.exe's /MAP option and is useful for creating a map file of each executable when building a large project. Differential Revision: https://reviews.llvm.org/D27595 llvm-svn: 289271
-
Peter Collingbourne authored
Profiling revealed that we were spending 5% of our time linking chrome_child.dll just in this call to toString(). Differential Revision: https://reviews.llvm.org/D27628 llvm-svn: 289270
-
Rui Ueyama authored
These tests are disabled on Windows, but they seem to work just fine now, so I'll enable them. llvm-svn: 289251
-
Rafael Espindola authored
llvm-svn: 289224
-
Rafael Espindola authored
llvm-svn: 289217
-
Rafael Espindola authored
llvm-svn: 289212
-
Peter Smith authored
The i386 glibc ld.so expects the .got.slot entry that is relocated by a R_386_IRELATIVE relocation to point directly at the ifunc resolver and not the address of the PLT entry + 6 (thus entering the lazy resolver). This is also the case for ARM and I suspect it is because these use REL relocations and can't use the addend field to store the address of the ifunc resolver. If the lazy resolver is used we get an error message stating that only R_386_JUMP_SLOT is supported. As ARM and i386 share the same code, I've removed the ARM specific test and added a writeIgotPlt() function that by default calls writeGotPlt(). ARM and i386 override this to write the address of the ifunc resolver. Differential Revision: https://reviews.llvm.org/D27581 llvm-svn: 289198
-
Rui Ueyama authored
I don't think the data I add to a TPI stream in this patch is correct, but at least it can be displayed using llvm-pdbdump. Until I add more streams to a PDB file, I'm not able to know whether the data will be accepted by MSVC tools or not. llvm-svn: 289183
-
Rui Ueyama authored
llvm-svn: 289170
-
Meador Inge authored
The current implementation of the output section data store commands can only handle integer literals, but it should really handle arbitrary expressions [1]. This commit fixes that. [1] https://sourceware.org/binutils/docs-2.27/ld/Output-Section-Data.html#Output-Section-Data Differential Revision: https://reviews.llvm.org/D27561 llvm-svn: 289152
-
- Dec 08, 2016
-
-
Rui Ueyama authored
linkerscript.s is the first test file for linker script, and at the moment it contains all tests for linker scripts. Now that test file doesn't make sense. linkerscript2.s was just badly named. Renamed searchdir.s. llvm-svn: 289148
-
Rui Ueyama authored
llvm-svn: 289146
-
Rui Ueyama authored
llvm-svn: 289112
-
Rui Ueyama authored
llvm-svn: 289104
-
Rui Ueyama authored
llvm-svn: 289102
-
Rui Ueyama authored
llvm-svn: 289097
-
Rui Ueyama authored
llvm-svn: 289089
-
Rui Ueyama authored
This reverts commit r289084 to appease buildbots. llvm-svn: 289086
-
Rui Ueyama authored
We don't want ELF and COFF to diverge too much. llvm-svn: 289085
-
Rui Ueyama authored
llvm-svn: 289084
-