Rui Ueyama
81d0d29639
Remove hard-coded leading underscore from entry symbol.
...
llvm-svn: 190586
2013-09-12 05:09:01 +00:00
Rui Ueyama
1e6af15388
Do not hard code the leading underscore.
...
Mangling scheme varies on platform, and prepending an underscore is valid only
on 32-bit x86. Added a method to mangle name to PECOFFLinkingContext and use
it to avoid hard coding mangled names.
llvm-svn: 190585
2013-09-12 04:42:31 +00:00
Rui Ueyama
2ff9d70ac4
Run clang-format.
...
llvm-svn: 190554
2013-09-11 22:21:42 +00:00
Nick Kledzik
2e0fb1ef5b
Allow darwin driver to use -help when no input files are specified.
...
Patch by Joe Ranieri
llvm-svn: 190453
2013-09-10 23:57:41 +00:00
Nick Kledzik
e773e327d3
Support darwin linker options:
...
-current_version, -compatibility_version, and -install_name.
Patch by Joe Ranieri
llvm-svn: 190452
2013-09-10 23:55:14 +00:00
Nick Kledzik
e850d9dedd
Remove PackedVersion from MachOLinkingContext and replace with uint32_t
...
and a parsePackedVersion() utility.
Patch by Joe Ranieri
llvm-svn: 190451
2013-09-10 23:46:57 +00:00
Rui Ueyama
5c532370d5
Use llvm::sys::Process::GetEnv() instead of ::getenv().
...
Process::GetEnv() uses GetEnvironmentVariableW, which is a Windows API
to get an environment variable and is preferable over getenv().
llvm-svn: 190431
2013-09-10 20:33:21 +00:00
Rui Ueyama
fff7f8a4ed
Rename GnuLDInputGraph.h -> GnuLdInputGraph.h for consistency with other files.
...
llvm-svn: 190332
2013-09-09 19:30:23 +00:00
Rui Ueyama
67de33b075
Use _isWholeArchive to silence -Wunused-private-field warning.
...
llvm-svn: 190329
2013-09-09 19:21:06 +00:00
Joerg Sonnenberger
ecd1d9bc1d
Handle _DYNAMIC correctly in the x86_64 backend.
...
llvm-svn: 190302
2013-09-09 12:19:28 +00:00
Joerg Sonnenberger
23f8d43e5c
Recognize -Bstatic as alias for -static, clang uses it.
...
llvm-svn: 190301
2013-09-09 11:48:43 +00:00
Joerg Sonnenberger
bd25241e0e
Drop the context forceLoadAllArchives() support. Rename the isForceLoad
...
attribute in LinkerInput to isWholeArchive and use that for deciding
whether library archives should be expanded. Implement the -all_load
option of the Darwin linker using this flag and drop the support for it
in GNU mode.
llvm-svn: 190275
2013-09-08 13:30:14 +00:00
Joerg Sonnenberger
a82566b86e
Update documentation.
...
llvm-svn: 190255
2013-09-07 18:01:39 +00:00
Joerg Sonnenberger
0310e734c3
Run clang-format.
...
llvm-svn: 190254
2013-09-07 17:56:23 +00:00
Joerg Sonnenberger
5e235de9d3
Change the parseFile argument from MemoryBuffer pointer to LinkerInput
...
reference. Move readFile logic into FileNode::createLinkerInput.
llvm-svn: 190253
2013-09-07 17:55:28 +00:00
Rui Ueyama
0826dd23c6
[PECOFF] Don't add RVAs to base relocations table.
...
Patch by Ron Ofir.
llvm-svn: 190210
2013-09-06 22:09:02 +00:00
Rui Ueyama
97086a5a4f
[PECOFF] Fix section alignment bug in ReaderCOFF.
...
Patch by Ron Ofir.
llvm-svn: 190198
2013-09-06 20:08:57 +00:00
Rui Ueyama
02c46bdb75
[PECOFF] Add /machine command line option.
...
llvm-svn: 190121
2013-09-06 04:17:07 +00:00
Rui Ueyama
030fe96ff3
[PECOFF] Align section contents as specified by the object file's section header.
...
llvm-svn: 190120
2013-09-06 04:06:58 +00:00
Rui Ueyama
822cb2e44b
Remove extraneous parentheses.
...
llvm-svn: 190119
2013-09-06 03:16:28 +00:00
Rui Ueyama
01951de462
Return early to simplify.
...
llvm-svn: 190117
2013-09-06 01:48:19 +00:00
Rui Ueyama
f48b8fc06d
Remove unused identifiers.
...
llvm-svn: 190095
2013-09-05 20:21:24 +00:00
Shankar Easwaran
fc09df0fe9
[lld][cleanup] remove unused ReaderFunc to avoid confusion.
...
llvm-svn: 190031
2013-09-05 04:27:17 +00:00
Shankar Easwaran
176e7fd05f
[lld][ELF] Change the order of the writable note section
...
Writable note sections if they exist should not appear before text
they belong in the data segment
llvm-svn: 190024
2013-09-05 01:50:21 +00:00
Shankar Easwaran
8c705690ab
[lld][ELF] Differentiate between Note sections(RW/RO)
...
It looks like there is a possibility of seeing RO/RW note sections
and we would need to create an appropriate RO/RW segment associated
with them.
Adds a test too.
llvm-svn: 189907
2013-09-04 02:42:02 +00:00
Rui Ueyama
959aebf873
[PECOFF] Ignore options starting with -?
...
The compiler is allowed to add a linker option starting with -?<name> to
.drectve section. If the linker can interpret -<name>, it's processed as if
there's no question mark there. If not, such option is silently ignored.
This is a COFF's feature to allow the compiler to emit new linker options
while keeping compatibility with older linkers.
llvm-svn: 189897
2013-09-04 00:51:51 +00:00
Shankar Easwaran
b85f1857a1
[lld][ELF] Emit note sections
...
Emit note sections if the input contains a note section.
Also emit a note segment.
llvm-svn: 189896
2013-09-04 00:51:42 +00:00
Rui Ueyama
8ccf6da056
Rename *Options.td -> <flavor>Options.td.
...
Before this patch, name of driver implementation is not consistent with its
option table file. Specifically, LDOptions has a different prefix than
GnuLdDriver.
This patch renames option files, so that the option files have the same prefix
as the corresponding driver files.
Differential Revision: http://llvm-reviews.chandlerc.com/D1591
llvm-svn: 189895
2013-09-04 00:24:35 +00:00
Shankar Easwaran
2eaa47a008
[lld][Driver] remove return after llvm_unreachable
...
llvm-svn: 189891
2013-09-04 00:05:46 +00:00
Joerg Sonnenberger
37f50b7ccc
Start a TODO list for the ELF backend.
...
llvm-svn: 189890
2013-09-04 00:00:48 +00:00
Shankar Easwaran
3df170b84e
[lld][Driver] The driver was creating linker inputs twice
...
Also add a llvm_unreachable call so that the linker will trip on unhandled
inputElement types.
llvm-svn: 189887
2013-09-03 23:52:05 +00:00
Joerg Sonnenberger
33a6d3aaed
Recognize -rpath-link option and add arguments to ELFLinkingContext.
...
llvm-svn: 189883
2013-09-03 23:28:51 +00:00
Rui Ueyama
225f090bdb
[PECOFF] Allocate storage for .drective in the reader to avoid multiple calls of allocateString()
...
llvm-svn: 189881
2013-09-03 23:14:30 +00:00
Rui Ueyama
530488c92a
[PECOFF] Verify parameter in validateImpl() not in the driver.
...
llvm-svn: 189877
2013-09-03 22:57:00 +00:00
Shankar Easwaran
d3b3d71a3a
[lld] Remove bitfield for boolean members
...
llvm-svn: 189876
2013-09-03 22:55:45 +00:00
Shankar Easwaran
c16b5e76fc
[lld][ELF][X86_64] Test alignment for init_array/fini_array sections
...
llvm-svn: 189875
2013-09-03 22:46:54 +00:00
Shankar Easwaran
84c643fcc3
[lld][ELF][X86_64] Fix alignment of init_array/fini_array sections
...
llvm-svn: 189874
2013-09-03 22:44:46 +00:00
Shankar Easwaran
2b9d1025d6
[lld][ELF] Change the InitFini atom type from Stub to Data
...
llvm-svn: 189873
2013-09-03 22:44:44 +00:00
Shankar Easwaran
fce7952b79
[lld][ELF][Hexagon] add Init/Fini option for hexagon
...
This adds init/fini support for Hexagon.
llvm-svn: 189872
2013-09-03 22:44:42 +00:00
Shankar Easwaran
2f5d64062b
[lld] handle the case of errors from createLinkerInput
...
This changes the interface of createLinkerInput to use ErrorOr, so that
errors from the linker can be captured.
Also adds a convenience function for error strings to be returned from
file nodes.
llvm-svn: 189871
2013-09-03 22:44:37 +00:00
Rui Ueyama
b4170b17d4
[PECOFF] Fix fixme by making PECOFFLinkingContext non-const.
...
llvm-svn: 189865
2013-09-03 22:33:56 +00:00
Joerg Sonnenberger
a82839593c
Finish -rpath implementation to actually create the DT_RPATH entries.
...
llvm-svn: 189847
2013-09-03 20:45:09 +00:00
Joerg Sonnenberger
840d3daf01
Add support for --sysroot.
...
llvm-svn: 189826
2013-09-03 16:29:02 +00:00
Joerg Sonnenberger
7d5aed5ce5
A weak reference to a symbol that is only weakly referenced in
...
dependencies should remain weak, not get promoted to undef or dropped.
llvm-svn: 189793
2013-09-03 12:06:33 +00:00
Rui Ueyama
0e70a16419
Do not add entry symbol to the dead strip list. Partially revert r189776.
...
llvm-svn: 189778
2013-09-03 03:34:33 +00:00
Rui Ueyama
8cdbf525a9
Cosmetic changes
...
Differential Revision: http://llvm-reviews.chandlerc.com/D1577
llvm-svn: 189777
2013-09-03 01:25:21 +00:00
Rui Ueyama
504962f714
Partially revert r189718 to add entry symbol to dead strip root.
...
Also added a test to verify that entry symbol is not stripped even if
dead stripping is enabled.
llvm-svn: 189776
2013-09-03 01:00:01 +00:00
Rui Ueyama
4313451ba4
Resolver: Do not use assert() to notify user input error.
...
llvm-svn: 189775
2013-09-03 00:50:22 +00:00
Rui Ueyama
900a501bdd
Add llc to check-lld deps. We use the command in lit.cfg.
...
llvm-svn: 189774
2013-09-02 23:26:00 +00:00
Joerg Sonnenberger
37b08114bd
Typo.
...
llvm-svn: 189771
2013-09-02 19:36:15 +00:00