Rafael Espindola
e7e57b200f
Use llvm provided read and write functions.
...
llvm-svn: 252518
2015-11-09 21:43:00 +00:00
Rafael Espindola
8ea46e00f1
Start treating .eh_frame specially.
...
For now, just don't follow edges leaving from it to mark other sections
live.
llvm-svn: 252493
2015-11-09 17:44:10 +00:00
George Rimar
564da7ee87
[ELF2] - Fixed crash for case when section sh_entsize is set to zero for SHF_MERGE type of sections.
...
Differential revision: http://reviews.llvm.org/D14451
llvm-svn: 252454
2015-11-09 08:40:44 +00:00
Davide Italiano
bbcc7f6115
[ELF2/AArch64] Support R_AARCH64_LDST64_ABS_LO12_NC relocation.
...
llvm-svn: 252415
2015-11-08 04:45:26 +00:00
Rafael Espindola
ea7a1e9092
Round up the memsize of PT_TLS.
...
This is cleaner than computing relocations as if we had done it.
While at it, keep a single Phdr variable instead of multiple fields of it.
llvm-svn: 252352
2015-11-06 22:14:44 +00:00
Rafael Espindola
7bcaec83be
Fix a few windows only tests.
...
This argument must be non-null.
llvm-svn: 252336
2015-11-06 19:57:37 +00:00
Rafael Espindola
1954c614d4
.eh_frame is not normally writable. Update the test to reflect that.
...
llvm-svn: 252312
2015-11-06 15:25:54 +00:00
Igor Kudrin
15cd9ffd1e
[ELF2] Add GOT section for MIPS target.
...
This patch implements R_MIPS_GOT16 relocation for global symbols in order to
generate some entries in GOT. Only reserved and global entries are supported
for now. For the detailed description about GOT in MIPS, see "Global Offset
Table" in Chapter 5 in the followin document:
ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/mipsabi.pdf
In addition, the platform specific symbol "_gp" is added, see "Global Data
Symbols" in Chapter 6 in the aforementioned document.
Differential revision: http://reviews.llvm.org/D14211
llvm-svn: 252275
2015-11-06 07:43:03 +00:00
Kevin Enderby
35dfc95efe
These are the matching changes needed to the lld project for the changes to llvm
...
in r252192 that changed the Archive and Child interfaces in libObject. These include
Rafael Espindola’s many suggested updates.
llvm-svn: 252193
2015-11-05 19:25:47 +00:00
Rui Ueyama
7f20fb90e2
Remove redundant namespace specifiers.
...
llvm-svn: 252178
2015-11-05 18:13:25 +00:00
Rafael Espindola
ac1c0f8931
Check the range of R_X86_64_TPOFF32.
...
llvm-svn: 252169
2015-11-05 15:22:26 +00:00
Rafael Espindola
8f3a6aeadb
Avoid implicit Archive::child_iterator construction.
...
llvm-svn: 252167
2015-11-05 14:40:28 +00:00
Rafael Espindola
543f29d1a9
Don't implicitly construct an Archive::child_iterator.
...
llvm-svn: 252166
2015-11-05 14:34:56 +00:00
Michael J. Spencer
6c34eff536
[elf2] Fix R_X86_64_TPOFF32 handling.
...
For x86-64 the initial executable TLS block is placed directly before the
thread specific data register so compilers can directly access it via
R_X86_64_TPOFF32. Generate the correct (negative) offset for this case.
llvm-svn: 252131
2015-11-05 02:00:35 +00:00
Eugene Zelenko
6e43b499d2
Fix Clang-tidy modernize-use-override warnings, other minor fixes.
...
Differential revision: http://reviews.llvm.org/D14310
llvm-svn: 252034
2015-11-04 02:11:57 +00:00
Rafael Espindola
5fbe008eb7
Simplify the logic to avoid the Closed set.
...
IMHO this makes the code easier to read: at each iteration we add
a section to a PT_LOAD and increase its size.
llvm-svn: 252011
2015-11-03 23:19:42 +00:00
Michael J. Spencer
2c6f213bcd
[elf2] Use value-initialization instead of memset.
...
llvm-svn: 252006
2015-11-03 22:43:11 +00:00
Michael J. Spencer
d77f0d2526
[elf2] Implement R_X86_64_TPOFF32.
...
This does not support TPOFF32 relocations to local symbols as the address calculations are separate. Support for this will be a separate patch.
llvm-svn: 251998
2015-11-03 22:39:09 +00:00
Rafael Espindola
61362ce876
Handle 0 sized sections like any other section.
...
This is a case where there is inconsistency among ELF linkers:
* The spec says nothing special about empty sections.
* BFD ld removes them.
* Gold handles them like regular sections.
We were outputting them but sometimes ignoring them. This would create
odd looking outputs where a rw section could be in a ro segment for example.
The bfd way of doing things is also strange for the case where a symbol
points to the empty section.
Now we match gold and what seems to be the intention of the spec.
llvm-svn: 251988
2015-11-03 22:08:08 +00:00
Rafael Espindola
d7a267b84b
Remove redundant = nullptr.
...
llvm-svn: 251987
2015-11-03 22:01:20 +00:00
Rafael Espindola
443f50a833
Create .bss only when needed.
...
This is a small complication, but produces nicer output and is a step to
handling zero size sections uniformly.
llvm-svn: 251980
2015-11-03 21:35:14 +00:00
Rafael Espindola
d1ec682411
Update for llvm change.
...
llvm-svn: 251971
2015-11-03 20:02:28 +00:00
Rafael Espindola
7bb1adfd66
Avoid checking for irrelevant facts.
...
If the test is not for layout, it should not depend on the address for example.
llvm-svn: 251969
2015-11-03 19:56:47 +00:00
Rafael Espindola
b8c3b1523f
Fix thinko.
...
This would match SHF_ALLOC or SHF_TLS. We want both.
llvm-svn: 251939
2015-11-03 16:30:27 +00:00
Rafael Espindola
9eb3e57042
Simplify and fix style.
...
llvm-svn: 251927
2015-11-03 15:46:15 +00:00
Rafael Espindola
9b89608698
Remove a redundant boolean.
...
llvm-svn: 251921
2015-11-03 14:34:11 +00:00
Rafael Espindola
115f0f365d
Two small fixes to copy relocation processing.
...
* We can determine the alignment requirement.
* We have to update the bss alignment with it.
llvm-svn: 251914
2015-11-03 14:13:40 +00:00
Rafael Espindola
31b71a921a
Make the test a bit more strict and fix the math.
...
llvm-svn: 251913
2015-11-03 14:08:43 +00:00
Rafael Espindola
e1bd952ea9
Simplify. NFC.
...
llvm-svn: 251912
2015-11-03 14:03:11 +00:00
Rafael Espindola
f486beab7e
Make this input a bit more readable.
...
llvm-svn: 251911
2015-11-03 13:58:27 +00:00
Rafael Espindola
de212f1589
Delete dead getter.
...
llvm-svn: 251908
2015-11-03 13:36:38 +00:00
Michael J. Spencer
78aa1de3ae
[elf2] Generate PT_TLS.
...
Differential Revision: http://reviews.llvm.org/D14167
llvm-svn: 251872
2015-11-03 00:34:39 +00:00
Rafael Espindola
31f8888cd9
Make a method static. NFC.
...
llvm-svn: 251799
2015-11-02 14:33:11 +00:00
Igor Kudrin
2169b1bd26
[ELF2] Ensure that .dynsym section is finalized before .gnu.hash.
...
It is required to fill up the GNU hash table section before its
finalize() method is called.
Differential Revision: http://reviews.llvm.org/D14196
llvm-svn: 251789
2015-11-02 10:46:14 +00:00
George Rimar
0e8d1922c8
[ELF2] Revert of r251692
...
llvm-svn: 251782
2015-11-02 08:24:16 +00:00
George Rimar
d98bcc713d
Comments about how values were calculated for functions below were added.
...
1. X86_64TargetInfo::writePltZeroEntry.
2. X86_64TargetInfo::writePltEntry.
llvm-svn: 251692
2015-10-30 09:11:12 +00:00
Davide Italiano
9b71ef92e7
[ELF2/AArch64] Add relocation tests to ensure we handle overflow correctly.
...
llvm-svn: 251646
2015-10-29 20:02:27 +00:00
Davide Italiano
3300b798ca
[ELF2/AArch64] Implement R_AARCH64_PREL16 and R_AARCH64_PREL32 relocations.
...
llvm-svn: 251645
2015-10-29 19:55:59 +00:00
George Rimar
8b8222b04c
[ELF2] merge-string.s test fixed for win32 configuration.
...
Differential revision: http://reviews.llvm.org/D14171
llvm-svn: 251644
2015-10-29 19:30:28 +00:00
Lang Hames
2ed3bf9527
[lld][MachO] Make sure LC_RPATH command size is a multiple of the pointer size.
...
llvm-svn: 251637
2015-10-29 16:50:26 +00:00
Lang Hames
ac416d42fc
[lld][MachO] Use a std::string rather than a StringRef for the section name in
...
MachODefinedCustomSectionAtom.
The section names for these atoms are initialized from temporaries (e.g.
segName + "/" + sectName), so we can't use StringRef here.
llvm-svn: 251610
2015-10-29 03:57:31 +00:00
George Rimar
5268721e59
Reapply r251536
...
llvm-svn: 251541
2015-10-28 18:33:08 +00:00
George Rimar
9413fa26af
Revert r251536 as it broke buildbot: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/2104
...
llvm-svn: 251539
2015-10-28 18:16:24 +00:00
George Rimar
06f4e43d29
[ELF2] R_X86_64_64 plt relocation implemented.
...
This little patch is a final point in fix for https://llvm.org/bugs/show_bug.cgi?id=25175 .
It`s make sample from issue description to work with -O0 optimization flag (with -O0 it generates R_X86_64_64 plt relocation).
Differential revision: http://reviews.llvm.org/D14153
llvm-svn: 251536
2015-10-28 17:59:44 +00:00
George Rimar
bc590feb2b
[ELF2] R_X86_64_COPY relocation implemented
...
Differential revision: http://reviews.llvm.org/D14090 .
llvm-svn: 251526
2015-10-28 16:48:58 +00:00
Davide Italiano
b12d668e3d
[ELF2/AArch64] Add support for R_AARCH64_PREL64.
...
llvm-svn: 251523
2015-10-28 16:14:18 +00:00
Simon Atanasyan
069b2dd66c
[Driver] Ignore -G option in both new and old ELF linker
...
This is optimization option that make sense for MIPS targets. We can
safely ignore it now.
llvm-svn: 251519
2015-10-28 14:50:58 +00:00
Igor Kudrin
f1d6029016
[ELF2] Move sorting and data to the GNU hash table section.
...
It is the GNU hash table section that should be reaponsible for storing its own
data and applying its requirements for the order to dynamic symbols.
Differential Revision: http://reviews.llvm.org/D14084
llvm-svn: 251502
2015-10-28 07:05:56 +00:00
Simon Atanasyan
07fe7a943f
[Driver] Accept both -m <emulation> and -m<emulation>
...
GNU linkers accept both variants and at least for MIPS target gcc passes
joined variant of the '-m' option.
Differential Revision: http://reviews.llvm.org/D14133
llvm-svn: 251497
2015-10-28 05:13:12 +00:00
Rui Ueyama
12504649dc
ELF2: Move some code from MarkLive.cpp to InputSection.cpp.
...
This function is useful for ICF, so move that to a common place.
llvm-svn: 251455
2015-10-27 21:51:13 +00:00