Shankar Easwaran
cc06891c42
[lld][ELF] (no testable functionality change) resize the number of entries in the string table for static linking
...
llvm-svn: 180692
2013-04-29 04:10:42 +00:00
Shankar Easwaran
d846d9852e
[lld][ELF] (no testable functionality change) resize the number of entries in the string table for static linking
...
llvm-svn: 180691
2013-04-29 04:10:11 +00:00
Shankar Easwaran
45a5f93517
[lld][LayoutPass] initialize the number of entries for the densehash (no functionality change)
...
llvm-svn: 180690
2013-04-29 03:27:57 +00:00
Michael J. Spencer
9d70cef481
[Core] Allow weak symbols in shared library when linking.
...
Patch by Rui Ueyama.
llvm-svn: 180209
2013-04-24 19:00:26 +00:00
Andy Gibbs
93383381d7
Distinguish between unsupported and unrecognised flavours.
...
Suggested by Nick Kledzik in reference to r179590.
llvm-svn: 179617
2013-04-16 19:24:13 +00:00
Andy Gibbs
bab932b850
Moved llvm_unreachable out of switch blocks to avoid the "control reaches end of non-void function" warning.
...
llvm-svn: 179590
2013-04-16 11:52:34 +00:00
Shankar Easwaran
eeee23e60a
This adds functionality for undefined atoms from dynamic libraries to be added
...
to the list of undefined atoms.
The processing of undefined atoms from dynamic libraries is controlled by
use-shlib-undefines command line option.
This patch also adds additional command line arguments to allow/disallow
unresolved symbols from shared libraries and mimics GNU ld behavior.
llvm-svn: 179257
2013-04-11 02:56:30 +00:00
Michael J. Spencer
d4eb47c110
Add VTune as an optional external dependency and add task tracking.
...
llvm-svn: 178940
2013-04-06 00:56:40 +00:00
Michael J. Spencer
e6d5609de4
Revert "Correctly pass ownership of MemoryBuffers."
...
llvm-svn: 178918
2013-04-05 22:04:44 +00:00
Michael J. Spencer
ce1e53e19c
Correctly pass ownership of MemoryBuffers.
...
llvm-svn: 178914
2013-04-05 21:08:30 +00:00
Michael J. Spencer
096ea03f31
Fix uninitialized variables. Found by ubsan.
...
llvm-svn: 178913
2013-04-05 21:07:44 +00:00
Shankar Easwaran
a4323a5cca
This fixes a SIGSEGV failure in ReaderArchive while trying to trace what
...
InputFile is being pulled from the Archive library to resolve a symbol.
The buffer which was being used was already being handed over to the
MemoryBuffer object and was being accessed after the hand over.
Moving it before the buffer is handed over.
llvm-svn: 178838
2013-04-05 03:50:15 +00:00
Shankar Easwaran
d953d66ee9
[ELF] fix atom order
...
llvm-svn: 178815
2013-04-04 23:51:36 +00:00
Michael J. Spencer
dfe85483d5
[Driver] Fix symlinked universal driver behavior and add a test.
...
llvm-svn: 178798
2013-04-04 22:04:16 +00:00
Nick Kledzik
f4fa8c0a75
fix DEBUG_WITH_TYPE to build without warnings in non-debug builds
...
llvm-svn: 178787
2013-04-04 20:32:18 +00:00
Nick Kledzik
be7b005d83
fix darwin driver to validate command line options
...
llvm-svn: 178778
2013-04-04 19:26:14 +00:00
Nick Kledzik
c314b46e71
This is my Driver refactoring patch.
...
The major changes are:
1) LinkerOptions has been merged into TargetInfo
2) LinkerInvocation has been merged into Driver
3) Drivers no longer convert arguments into an intermediate (core) argument
list, but instead create a TargetInfo object and call setter methods on
it. This is only how in-process linking would work. That is, you can
programmatically set up a TargetInfo object which controls the linking.
4) Lots of tweaks to test suite to work with driver changes
5) Add the DarwinDriver
6) I heavily doxygen commented TargetInfo.h
Things to do after this patch is committed:
a) Consider renaming TargetInfo, given its new roll.
b) Consider pulling the list of input files out of TargetInfo. This will
enable in-process clients to create one TargetInfo the re-use it with
different input file lists.
c) Work out a way for Drivers to format the warnings and error done in
core linking.
llvm-svn: 178776
2013-04-04 18:59:24 +00:00
Rafael Espindola
26cf0b5130
Update for API change for handling mips64el.
...
llvm-svn: 178695
2013-04-03 21:03:19 +00:00
Shankar Easwaran
34353270a0
[ELF][Hexagon] fix few relocations and add test
...
llvm-svn: 178495
2013-04-01 20:20:11 +00:00
Shankar Easwaran
1d9e531856
[ELF][Hexagon] Create .got.plt entries with the appropriate alignment
...
llvm-svn: 178467
2013-04-01 15:14:34 +00:00
Shankar Easwaran
cbe06ca340
[ELF] Set the symbol type for undefined atoms properly
...
llvm-svn: 178466
2013-04-01 15:12:54 +00:00
Shankar Easwaran
bb9d4a5ca0
[ELF] Add dynamic hash table and get simple dynamic libraries working with Hexagon
...
llvm-svn: 178323
2013-03-29 00:53:25 +00:00
Michael J. Spencer
8759beb424
[ELF] Cache contentType and permissions.
...
llvm-svn: 178269
2013-03-28 18:58:50 +00:00
Michael J. Spencer
1067ff61e6
[Driver] Don't open files multiple times.
...
llvm-svn: 178268
2013-03-28 18:58:35 +00:00
Shankar Easwaran
c3048de5ac
[ELF][Hexagon] remove duplicated code
...
llvm-svn: 178027
2013-03-26 15:06:52 +00:00
Shankar Easwaran
14bfcd3e0f
[ELF] no change in functionality, add functions to symbol table so that they can be overridden by derived classes
...
llvm-svn: 177990
2013-03-26 03:53:33 +00:00
Shankar Easwaran
499aa9e028
[ELF][Hexagon] add GOTREL/GOT relocations
...
llvm-svn: 177970
2013-03-26 02:20:56 +00:00
Shankar Easwaran
1af701ec6a
[ELF] order rela.dyn/rela.plt properly
...
llvm-svn: 177969
2013-03-26 02:20:08 +00:00
Shankar Easwaran
aec2165123
[ELF] fix dynamic symbol table entries and update tests
...
llvm-svn: 177875
2013-03-25 16:41:14 +00:00
Michael J. Spencer
67f25272f1
[SymbolTable][Perf] Use hash_combine instead of a custom hash, also use memcmp.
...
ArrayRef<uint8_t>::equals(); lowers to a byte compare loop :(.
TODO: Figure out if we are getting hash collisions, or just have a lot of equal
content. Also test if crypto hashing the content instead of full compare is
better.
llvm-svn: 177588
2013-03-20 22:18:22 +00:00
Michael J. Spencer
417c19923b
[ELF][Reader] Add debug message to print all inputs the linker actually read.
...
llvm-svn: 177564
2013-03-20 19:26:10 +00:00
Michael J. Spencer
da384eebe5
[ELF][Reader][Perf] Only do loookup once.
...
llvm-svn: 177563
2013-03-20 19:25:58 +00:00
Michael J. Spencer
602ffc13b8
[ELF][Reader] Refactor how relocations are read. Improves performance.
...
This changes from reading each relocation individually for each section to just
storing the range of relocations. It also counts the relocations to preallocate
the _references array.
llvm-svn: 177562
2013-03-20 19:25:47 +00:00
Michael J. Spencer
55a7070bea
[ELF][Reader] Remove static ordinal.
...
llvm-svn: 177561
2013-03-20 19:25:34 +00:00
Michael J. Spencer
9dc5489441
memcpy instead of copy_n. Faster than copy_n on MSVC :(.
...
llvm-svn: 177557
2013-03-20 18:58:07 +00:00
Michael J. Spencer
fa405277cb
Devirtualize Reference::kind.
...
Improves performance.
llvm-svn: 177556
2013-03-20 18:57:52 +00:00
Michael J. Spencer
0f3dd616bd
Devirtualize File::kind.
...
This is the standard way of implementing LLVM RTTI.
llvm-svn: 177555
2013-03-20 18:57:27 +00:00
Michael J. Spencer
6580d1f226
Set ordinals correctly.
...
This actually doesn't change behavior with the current LinkerInvocation, but
it's needed when you make reading parallel.
llvm-svn: 177554
2013-03-20 18:56:57 +00:00
Shankar Easwaran
452ba13271
[ELF][Hexagon] Add Hexagon dynamic relocations
...
llvm-svn: 177484
2013-03-20 05:10:02 +00:00
Shankar Easwaran
06a4039572
[ELF] Interp section is only needed in dynamic executables
...
llvm-svn: 177483
2013-03-20 05:06:40 +00:00
Shankar Easwaran
1e848e0edf
[ELF] Order .got.plt properly
...
llvm-svn: 177482
2013-03-20 04:52:08 +00:00
Andy Gibbs
1fb8ce4002
Fix "control reaches end of non-void function" compiling lld on gcc.
...
llvm-svn: 177424
2013-03-19 19:13:36 +00:00
Alexey Samsonov
2712b064d8
Add virtual destructors to fix -Wnon-virtual-dtor warnings
...
llvm-svn: 177392
2013-03-19 11:41:16 +00:00
Shankar Easwaran
8962feb915
[lld] remove trailing whitespace
...
llvm-svn: 177079
2013-03-14 16:09:49 +00:00
Shankar Easwaran
74fc23fa5d
[ELF][X86_64][Hexagon] order plt/got entries properly and fix test
...
llvm-svn: 176970
2013-03-13 20:30:11 +00:00
Shankar Easwaran
8c25685be7
[Pass][Layout] Add extra debugging information
...
llvm-svn: 176925
2013-03-13 04:05:38 +00:00
Michael J. Spencer
c4e45f855c
[ELF][Writer] Let std::vector handle allocating space instead of reserving tiny portions.
...
llvm-svn: 176916
2013-03-13 00:30:08 +00:00
Michael J. Spencer
1ecf890215
[Pass][Layout] Make algorithm not n^2.
...
This reduces the time spent in this function while linking ASTMatchersTests
from %43 to %2.4 of total link time.
llvm-svn: 176842
2013-03-12 00:10:00 +00:00
Shankar Easwaran
fc9d0a7d9b
[ELF] Set values for bss_start and end symbols properly, If there are two load segments with RW permissions, bss_start and end may get set inappropriate
...
llvm-svn: 176795
2013-03-11 01:38:22 +00:00
Michael J. Spencer
9b5e8da3b4
[Driver][GNU] Accept and ignore more options.
...
llvm-svn: 176749
2013-03-09 01:41:37 +00:00