Michael J. Spencer
42a738198b
Fix unused variable warnings.
...
llvm-svn: 238384
2015-05-28 00:29:56 +00:00
Michael J. Spencer
cc0554d057
Add PHDR and FILL parsing.
...
llvm-svn: 238383
2015-05-28 00:14:58 +00:00
Simon Atanasyan
06eccbea9d
[Mips] Move member function definitions to cpp files
...
No functional changes.
llvm-svn: 238310
2015-05-27 11:56:15 +00:00
Simon Atanasyan
bb399f3d57
[ELF][Mips] Do not merge ELF flags in the `isCompatible` routine
...
We do not need to merge ELF flags from DSO. But `isCompatible` is called
for all input files. So this change move ELF flags merging into the
MipsELFFile class.
llvm-svn: 238304
2015-05-27 08:45:31 +00:00
Simon Atanasyan
256f2cadfe
[Mips] Factor out look up of Elf_Mips_RegInfo structure into the separate function
...
No functional changes.
llvm-svn: 238303
2015-05-27 08:45:21 +00:00
Adhemerval Zanella
f3c1c065aa
[ELF/AArch64] Fix local TLS relocations
...
This patch fixes the R_AARCH64_TLSLE_ADD_TPREL_HI12 and R_AARCH64_TLSLE_ADD_TPREL_LO12_NC
handling by using the correct offset by using the target layout along with
aarch64 alignments requirements.
It fixes the TLS test-suite SingleSource failures for aarch64:
* SingleSource/UnitTests/Threads/2010-12-08-tls.execution_time
* SingleSource/UnitTests/Threads/tls.execution_time
llvm-svn: 238258
2015-05-26 21:49:39 +00:00
Denis Protivensky
499292dede
[ARM] Fix enum type cast in switch
...
It caused warning in clang assuming the default
branch would never be reached with the given
switch key type.
llvm-svn: 238194
2015-05-26 11:13:09 +00:00
Denis Protivensky
02fc0b1d64
[ARM] Move out .ARM.exidx related things to ARM backend
...
llvm-svn: 238191
2015-05-26 10:26:15 +00:00
Simon Atanasyan
b48abf5dac
[Mips] Use structures declared in the llvm/Object/ELFTypes.h
...
No functional changes.
llvm-svn: 238189
2015-05-26 08:48:33 +00:00
Simon Atanasyan
e62aa7457f
[Mips] Add Elf_Mips_Options::getRegInfoDesc() function to retrieve an ODK_REGINFO descriptor
...
No functional changes.
llvm-svn: 238176
2015-05-26 06:05:07 +00:00
Simon Atanasyan
e09faec16e
[Mips] Make the code shorter - use LLVM_ELF_IMPORT_TYPES_ELFT macro
...
No functional changes.
llvm-svn: 238175
2015-05-26 06:05:01 +00:00
Davide Italiano
683703ea6d
[ELF] Add support for -z origin/now options.
...
Differential Revision: http://reviews.llvm.org/D9963
llvm-svn: 238169
2015-05-26 01:57:32 +00:00
Simon Atanasyan
0b22359858
[ELF] Fix lld when no unique sections is used
...
Original patch of Shankar Easwaran with additional test case.
The yaml2obj does not allow to create an object file with non-unique
sections names so the fix uses a binary input object file in the test
case.
llvm-svn: 238115
2015-05-24 16:19:27 +00:00
Lang Hames
825e258fc3
[lld] Manage atom ordinals in the File class rather than using a static counter.
...
This is a cleaner fix for the race-condition bug that was originally papered
over by r237857.
llvm-svn: 238072
2015-05-22 23:56:44 +00:00
Simon Atanasyan
b2f6afb30a
[Mips] Cleanup and reformat test cases, add more checkings
...
No functional changes.
llvm-svn: 238050
2015-05-22 21:08:37 +00:00
Benjamin Kramer
ebcc0dcad1
Remove redundant std::move on functions that return a unique_ptr.
...
llvm-svn: 238034
2015-05-22 17:52:04 +00:00
Benjamin Kramer
91d8cfd698
[ELF] Remove redundant unique_ptr moves found by -Wpessimizing-move.
...
llvm-svn: 238030
2015-05-22 16:01:21 +00:00
Benjamin Kramer
fc99f3d43f
[ELF] Fix shared CMake build.
...
llvm-svn: 238029
2015-05-22 16:01:12 +00:00
Denis Protivensky
f2c22f4ff8
[ARM] report_fatal_error for not implemented functionality
...
llvm-svn: 238017
2015-05-22 12:39:05 +00:00
Denis Protivensky
575f7d4f1c
[ARM] Ability to add GOT and PLTGOT entries for same symbol
...
These two serve different purpose:
PLTGOT entries are (usually) lazily resolved and serve as trampolines
to correctly call dynamically linked functions. They often have
R_*_JUMP_SLOT dynamic relocation type used.
Simple GOT entries hold other things, one of them may be
R_*_GLOB_DAT to correctly reference global and static data. This
is also used to hold dynamically linked function's address.
To properly handle cases when shared object's function is called
and at the same time its address is taken, we need to be able to have
both GOT and PLTGOT entries bearing different dynamic relocation types
for the same symbol.
llvm-svn: 238015
2015-05-22 11:23:39 +00:00
Denis Protivensky
214122cffc
[ARM] Implement R_ARM_GLOB_DAT for GOT entries
...
This is used when referencing global or static data in shared
objects. This is also used when function's address is taken and
function call is made indirectly.
llvm-svn: 238014
2015-05-22 11:00:31 +00:00
Lang Hames
ff4b13c538
[lld] Make the MachO -stack_size default '0', add a test case.
...
Addresses some review comments for r237841.
llvm-svn: 237979
2015-05-22 00:25:34 +00:00
Davide Italiano
339191fcfa
[ELF] Simplify dynamic table entry creation.
...
Differential Revision: http://reviews.llvm.org/D9921
Reviewed by: atanasyan
llvm-svn: 237973
2015-05-21 23:44:19 +00:00
Denis Protivensky
af1c9dd513
[ARM] Add dynamic symbols to the dynamic library writer
...
llvm-svn: 237898
2015-05-21 12:52:00 +00:00
Denis Protivensky
eb273b6b28
[ARM] Remove useless file with writer's instantiation stub
...
llvm-svn: 237896
2015-05-21 12:31:15 +00:00
Denis Protivensky
db2b179b1e
[ARM] Remove unused field in executable writer
...
llvm-svn: 237892
2015-05-21 11:50:54 +00:00
Denis Protivensky
ad52e44e98
[ARM] Move out common Writer functionality to ARMELFWriter
...
llvm-svn: 237891
2015-05-21 11:16:40 +00:00
Denis Protivensky
30e40be080
[ELF] Move start/end atom method assignment to OutputELFWriter. NFC
...
llvm-svn: 237886
2015-05-21 10:11:27 +00:00
Denis Protivensky
e6651618a8
[ARM] Remove unused fields in dynamic library writer
...
llvm-svn: 237883
2015-05-21 09:52:21 +00:00
Denis Protivensky
2db1a03b07
[ARM] Add skeleton implementation of DSO linking
...
llvm-svn: 237881
2015-05-21 09:28:25 +00:00
Lang Hames
b103c0321f
[LLD] Make lastOrdinal atomic to avoid race conditions.
...
No test case: We don't have a good way to test race conditions.
llvm-svn: 237857
2015-05-20 23:44:37 +00:00
Lang Hames
2a10996706
[LLD] Fix an out-of-order-initialization bug that was introduced in r237841 by
...
moving a field in MachOLinkingContext.
llvm-svn: 237847
2015-05-20 22:35:20 +00:00
Lang Hames
d48be84032
[LLD] Revert r237842 - it went in without a proper commit message.
...
llvm-svn: 237846
2015-05-20 22:33:34 +00:00
Lang Hames
d39a6d20c2
y
...
llvm-svn: 237842
2015-05-20 22:26:06 +00:00
Lang Hames
65a64c9c29
[LLD] Add support for the -stack_size option to Darwin ld.
...
llvm-svn: 237841
2015-05-20 22:10:50 +00:00
Reid Kleckner
5959176069
[lld] Use lit's shell to run tests on Windows by default
...
It's a lot faster than bash.
Also use FileCheck instead of grep to search through a binary file.
Cygwin's grep isn't working here for unknown reasons that probably
aren't worth investigating.
llvm-svn: 237834
2015-05-20 20:41:45 +00:00
Denis Protivensky
56b12d75bf
[ARM] Add needed symbols during dynamic executable linking
...
These include _GLOBAL_OFFSET_TABLE_ and _DYNAMIC.
llvm-svn: 237791
2015-05-20 13:39:33 +00:00
Lang Hames
3d2911f5cd
[LLD] Make sure MachO FDEs read their augmentation data strings from the right
...
CIE, not just the most recently encountered one.
llvm-svn: 237491
2015-05-16 00:08:02 +00:00
Lang Hames
f7c163c986
[LLD] Properly relocate the LSDA field of MachO eh-frames.
...
Previously the LSDA field was not being relocated during linking, leading to
failures for some EH tests.
llvm-svn: 237222
2015-05-13 00:44:47 +00:00
Lang Hames
6483c00079
[LLD] Add support for MachO ripRel32MinusNAnon relocations.
...
llvm-svn: 237219
2015-05-13 00:29:43 +00:00
Lang Hames
9bbc3653c5
[LLD] Add a mutex to prevent concurrent modification of the dylib maps in
...
MachOLinkingContext.
llvm-svn: 237217
2015-05-13 00:17:08 +00:00
Davide Italiano
d3142ec82b
[ARM] Use the correct variable name and unbreak buildbot.
...
llvm-svn: 236880
2015-05-08 16:49:18 +00:00
Leny Kholodov
bde4144338
[ARM] Generation of .ARM.exidx/.ARM.extab sections
...
This patch provides generation of .ARM.exidx & .ARM.extab sections which are
used for unwinding. The patch adds new content type typeARMExidx for atoms from
.ARM.exidx section and integration of atoms with such type to the ELF
ReaderWriter. exidx.test has been added with checking of contents of .ARM.exidx
section and .ARM.extab section.
Differential Revision: http://reviews.llvm.org/D9324
llvm-svn: 236873
2015-05-08 16:04:11 +00:00
Denis Protivensky
679c2c3639
[ARM] Check overflow of R_ARM_THM_JUMP11
...
llvm-svn: 236842
2015-05-08 12:45:11 +00:00
Denis Protivensky
73e927885c
[ARM] Check overflow of R_ARM_CALL/JUMP24
...
llvm-svn: 236841
2015-05-08 12:36:40 +00:00
Denis Protivensky
a0cffffcfa
[ARM] Check overflow of R_ARM_THM_CALL/JUMP24
...
llvm-svn: 236839
2015-05-08 12:34:43 +00:00
Simon Atanasyan
cb9547b941
[ELF] Initialize the _outputMagic class field using default value
...
No functional changes.
llvm-svn: 236823
2015-05-08 10:48:30 +00:00
Simon Atanasyan
668977f666
[Mips] Update test cases to reflect changes in the yaml2obj tool
...
No functional changes.
llvm-svn: 236742
2015-05-07 16:24:09 +00:00
Denis Protivensky
1a3bd31e52
[ARM] Check overflow of R_ARM_PREL31
...
llvm-svn: 236729
2015-05-07 14:05:30 +00:00
Denis Protivensky
cf4e031b36
[ARM] llvm_unreachable => make_dynamic_error in R_ARM_BASE_PREL
...
llvm-svn: 236727
2015-05-07 13:44:51 +00:00