tools/lld
~~~~~~~~~

Driver
------

lld needs a driver that supports gnu-ld_, ld64_, and link.exe_ arguments.  It
would be nice to refactor the argument parsing parts of `Clang's`_ driver support
out to LLVM's Support library.

.. _gnu-ld: http://sourceware.org/binutils/docs-2.22/ld/Options.html#Options
.. _ld64: https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/Xcode-3.2.5/man1/ld.1.html
.. _link.exe: http://msdn.microsoft.com/en-us/library/y0zzbyt4(v=vs.110).aspx
.. _Clang's: http://clang.llvm.org/docs/DriverInternals.html

tools/lld
~~~~~~~~~

Driver
------

lld needs a driver that supports gnu-ld_, ld64_, and link.exe_ arguments.  It
would be nice to refactor the argument parsing parts of `Clang's`_ driver support
out to LLVM's Support library.

.. _gnu-ld: http://sourceware.org/binutils/docs-2.22/ld/Options.html#Options
.. _ld64: https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/Xcode-3.2.5/man1/ld.1.html
.. _link.exe: http://msdn.microsoft.com/en-us/library/y0zzbyt4(v=vs.110).aspx
.. _Clang's: http://clang.llvm.org/docs/DriverInternals.html

Driver Requirements
*******************

The following are the different types of arguments that the driver will need to
support for compatibility with each linker.

link.exe
^^^^^^^^

Output: Default output filename is the name of the first file with .obj on the
        command line with .exe or .dll appended. Override with /OUT.

Options are case insensitive and can begin with - or /.

Types of options:

* @response_file
* {-/}flag
* {-/}flag[:number]
* {-/}flag[:string]
* {-/}flag:string
* {-/}flag:string[,[string][,string]]
* {-/}flag:string[,number]
* {-/}flag:@string,string
* {-/}flag:string[,@string[,string]][,string]
* {-/}flag:[string\]string
* {-/}flag:[string | string=string]
* {-/}flag:string,[[!]{DEKPRSW}][,ALIGN=#]

When options conflict, the last one wins.

ld64
^^^^

gnuld
^^^^^

Add some docs on the type of flags link.exe has that our driver will need to support.
Add some docs on the type of flags link.exe has that our driver will need to support.

git-svn-id: f6089bf0e6284f307027cef4f64114ee9ebb0424@155861 91177308-0d34-0410-b5e6-96231b3b80d8
