Commit Graph

63 Commits

Author SHA1 Message Date
Shankar Easwaran 2302bd5568 [lld] rename member variable name.
This renames variable name to reflect initial undefined symbols that are
defined by the linker -u option.

This doesnot change any functionality in lld, and updates code to reflect
Nick's comment.

llvm-svn: 184682
2013-06-24 03:22:51 +00:00
Shankar Easwaran 53caafebdb [ELF] add -u/--undefined option, to define undefined symbols
llvm-svn: 184266
2013-06-19 00:31:09 +00:00
Shankar Easwaran a42a473893 [ELF] add NMAGIC/OMAGIC support
llvm-svn: 184055
2013-06-16 05:06:28 +00:00
Rui Ueyama 4a4079e839 [WinLink] Support /nxcompat command line option.
llvm-svn: 184050
2013-06-16 03:07:08 +00:00
Rafael Espindola 70d0c820ef Include Path.h instead of PathV2.h.
I am about to move PathV2.h to Path.h.

llvm-svn: 183796
2013-06-11 22:17:04 +00:00
Rui Ueyama daadcc59ad [WinLink] Add -force command line option to allow undefined symbols.
llvm-svn: 183724
2013-06-11 04:52:14 +00:00
Rui Ueyama 9dd08d912d [PECOFF][Driver] Add -heap command line option.
llvm-svn: 183622
2013-06-08 22:59:10 +00:00
Rui Ueyama eb0cc96e4b [PECOFF][Driver] Add -stack command line option.
llvm-svn: 183604
2013-06-08 03:59:00 +00:00
Rui Ueyama 7b5592bc0b [WinLink] Fix use-after-return.
llvm-svn: 183603
2013-06-08 03:39:35 +00:00
Rui Ueyama 911d60a1e4 [Driver][Core] Handle -mllvm option.
llvm-svn: 183347
2013-06-05 23:19:18 +00:00
Rui Ueyama feaa72a4b0 Fix typo in comment.
llvm-svn: 183050
2013-05-31 22:08:30 +00:00
Rui Ueyama 739730e299 [WinLink][Driver] Add -entry command line option.
llvm-svn: 183034
2013-05-31 19:34:29 +00:00
Rui Ueyama ce42bcc304 [WinLink][Driver] Add support for -subsystem optional OS version number.
llvm-svn: 182988
2013-05-31 06:30:10 +00:00
Rui Ueyama 5f037590de [lld][WinLink] Fix use-after-return and add unit tests.
llvm-svn: 182970
2013-05-30 23:17:58 +00:00
Rui Ueyama b33e8bcef8 [WinLink][Driver] Handle file extensions and defualt output file name.
llvm-svn: 182912
2013-05-30 06:00:10 +00:00
Shankar Easwaran a5008e3a63 [lld][elf] Add --dynamic-linker option to the ELF linker.
Users can override the default value of the dynamic linker to be set to the
one that appears in the command line. The path can even be empty!. 

Added a test for the option.

llvm-svn: 182889
2013-05-29 22:51:01 +00:00
Rui Ueyama 81247063bf [WinLink] Add -subsystem and -out command line option parsing.
The code to actually consume these flags will be added soon.

llvm-svn: 182824
2013-05-29 05:07:49 +00:00
Michael J. Spencer bd66d04f34 Instrument things.
llvm-svn: 182789
2013-05-28 18:55:39 +00:00
Michael J. Spencer e5b8fe1274 [Driver] Parallelize reading initial object files.
llvm-svn: 182786
2013-05-28 18:37:39 +00:00
Rui Ueyama 9e56839a83 [lld][PECOFF] Add WinLinkDriver and PECOFFTargetInfo.
Add WinLinkDriver and connect it to the existing COFF reader. Remaining
parts are still stubs, so while it can now read a COFF file, it still
cannot link or output PE/COFF files yet.

Reviewers: Bigcheese

CC: llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D865

llvm-svn: 182784
2013-05-28 18:13:31 +00:00
Rui Ueyama deb979bf7a [lld] Add help text for -flavor option.
llvm-svn: 181655
2013-05-11 01:24:38 +00:00
Rui Ueyama 4689326d4c [lld] Fix wrong comment.
llvm-svn: 181547
2013-05-09 21:14:02 +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 dfe85483d5 [Driver] Fix symlinked universal driver behavior and add a test.
llvm-svn: 178798
2013-04-04 22:04:16 +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
Michael J. Spencer 1067ff61e6 [Driver] Don't open files multiple times.
llvm-svn: 178268
2013-03-28 18:58:35 +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
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
Shankar Easwaran 8962feb915 [lld] remove trailing whitespace
llvm-svn: 177079
2013-03-14 16:09:49 +00:00
Michael J. Spencer 9b5e8da3b4 [Driver][GNU] Accept and ignore more options.
llvm-svn: 176749
2013-03-09 01:41:37 +00:00
Michael J. Spencer 2139795dfa [Driver][GNULD] Lookup .so files and default to dynamic output.
llvm-svn: 175572
2013-02-19 23:05:36 +00:00
Michael J. Spencer be03e2a861 [Core,Driver,ELF] Differentiate static and dynamic executables.
This also adds a simple relocation change for dynamic executables to
x86-64 ELF.

llvm-svn: 175208
2013-02-14 20:32:00 +00:00
Shankar Easwaran 96d594b14e add merge strings option, this temporarily fixes the problem bringing up helloworld with glibc on x86_64
llvm-svn: 175038
2013-02-13 06:12:52 +00:00
Michael J. Spencer 7799d15f6e [Driver] Add -L and -l support.
llvm-svn: 174590
2013-02-07 06:47:17 +00:00
Michael J. Spencer cfe59fd0d3 [Driver] Replace Target with TargetInfo. Simplify LinkerInput.
This removes Target and moves the functionality it had over to TargetInfo.

This also simplifies LinkerInput by removing the InputKind. This will be handled elsewhere.

llvm-svn: 174589
2013-02-07 06:46:48 +00:00
Michael J. Spencer 990ec2b223 [ELF] Use entry point from LinkerOptions.
Patch by Ahmed Bougacha!

llvm-svn: 173655
2013-01-28 04:15:44 +00:00
Shankar Easwaran 3256d4ff62 add elf targethandler
llvm-svn: 173430
2013-01-25 07:39:18 +00:00
Michael J. Spencer 88f4d24e4a [Driver] Run the pass manager.
llvm-svn: 173381
2013-01-24 22:52:42 +00:00
Michael J. Spencer 563d33a6f1 [ELF] Read IFUNC symbols correctly as typeResolver.
llvm-svn: 173299
2013-01-23 22:08:46 +00:00
Michael J. Spencer 64afcb4c6b Move everything over to TargetInfo.
I really would have liked to split this patch up, but it would greatly
complicate the lld-core and lld drivers having to deal with both
{Reader,Writer}Option and TargetInfo.

llvm-svn: 173217
2013-01-23 01:18:43 +00:00
Michael J. Spencer 4586fbcbad [Core] Move Resolver and SymbolTable over to TargetInfo.
No functionality change.

llvm-svn: 173192
2013-01-22 20:49:42 +00:00
Michael J. Spencer d68d6196af Add {,ELF,MachO}TargetInfo.
llvm-svn: 173117
2013-01-22 02:15:30 +00:00
Chandler Carruth b5f3bd956c Replace the 'final' keyword with 'LLVM_FINAL' as GCC 4.6 doesn't support
the keyword.

If anyone cares deeply about the final optimizations with GCC, we might
want to add a version test to the LLVM definition, but I'm perfectly
happy with this just only firing under Clang and modern MSVC builds.

llvm-svn: 172898
2013-01-19 09:57:51 +00:00
Shankar Easwaran 7381db059a add noinhibit exec option
llvm-svn: 172204
2013-01-11 15:11:47 +00:00
Shankar Easwaran d127d8169a add hexagon target to lld
llvm-svn: 172202
2013-01-11 15:01:04 +00:00
Shankar Easwaran 2ca8e7d733 support for adding linker defined symbols
llvm-svn: 172040
2013-01-10 03:16:27 +00:00
Michael J. Spencer 6047163a24 [lld] Add support for -mllvm.
There is no way to test this at the moment because the options are not
processed until the link starts, and we can't pass an empty file.

llvm-svn: 171910
2013-01-08 22:59:27 +00:00