aboutsummaryrefslogtreecommitdiff
path: root/docs/windows_support.rst
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2015-12-30 11:57:38 +0000
committerDimitry Andric <dim@FreeBSD.org>2015-12-30 11:57:38 +0000
commit5a5c549fe9a3fef595297bd21d36bed8409dc37d (patch)
treea964c8f5ac85b7b641cac022c5f9bf4eed3d2b9b /docs/windows_support.rst
parentfb911942f1434f3d1750f83f25f5e42c80e60638 (diff)
downloadsrc-5a5c549fe9a3fef595297bd21d36bed8409dc37d.tar.gz
src-5a5c549fe9a3fef595297bd21d36bed8409dc37d.zip
Vendor import of lld trunk r256633:vendor/lld/lld-trunk-r256633
Notes
Notes: svn path=/vendor/lld/dist/; revision=292934 svn path=/vendor/lld/lld-trunk-r256633/; revision=292935; tag=vendor/lld/lld-trunk-r256633
Diffstat (limited to 'docs/windows_support.rst')
-rw-r--r--docs/windows_support.rst31
1 files changed, 5 insertions, 26 deletions
diff --git a/docs/windows_support.rst b/docs/windows_support.rst
index d9906a72ea1e..c4c338a0fba1 100644
--- a/docs/windows_support.rst
+++ b/docs/windows_support.rst
@@ -14,14 +14,14 @@
Windows support
===============
-LLD has some experimental Windows support. When invoked as ``link.exe`` or with
+LLD supports Windows operating system. When invoked as ``lld-link.exe`` or with
``-flavor link``, the driver for Windows operating system is used to parse
command line options, and it drives further linking processes. LLD accepts
almost all command line options that the linker shipped with Microsoft Visual
C++ (link.exe) supports.
-The current status is that LLD can link itself on Windows x86 using Visual C++
-2012 or 2013 as the compiler.
+The current status is that LLD can link itself on Windows x86/x64
+using Visual C++ 2013 as the compiler.
Development status
==================
@@ -55,17 +55,12 @@ Windows resource files support
COFF object file section. Both tools are shipped with MSVC.
Safe Structured Exception Handler (SEH)
- :good:`Done` for x86. :partial:`Work in progress` for x64.
+ :good:`Done` for both x86 and x64.
Module-definition file
:partial:`Partially done`. LLD currently recognizes these directives:
``EXPORTS``, ``HEAPSIZE``, ``STACKSIZE``, ``NAME``, and ``VERSION``.
-x64 (x86-64)
- :partial:`Work in progress`. LLD can create PE32+ executable but the generated
- file does not work unless source object files are very simple because of the
- lack of SEH handler table.
-
Debug info
:none:`No progress has been made`. Microsoft linker can interpret the CodeGen
debug info (old-style debug info) and PDB to emit an .pdb file. LLD doesn't
@@ -86,7 +81,7 @@ Using Visual Studio IDE/MSBuild
Alternatively, you can use msbuild if you don't like to work in an IDE::
msbuild LLVM.sln /m /target:"lld executables\lld"
-
+
MSBuild.exe had been shipped as a component of the .NET framework, but since
2013 it's part of Visual Studio. You can find it at "C:\\Program Files
(x86)\\msbuild".
@@ -100,19 +95,3 @@ Using Ninja
1. Check out LLVM and LLD from the LLVM SVN repository (or Git mirror),
#. run ``cmake -G ninja <llvm-source-dir>`` from VS command prompt,
#. run ``ninja lld``
-
-Known issues
-============
-
-Note that LLD is still in early stage in development, so there are still many
-bugs. Here is a list of notable bugs.
-
-* Symbol name resolution from library files sometimes fails. On Windows, the
- order of library files in command line does not matter, but LLD sometimes
- fails to simulate the semantics. A workaround for it is to explicitly add
- library files to command line with ``/DEFAULTLIB``.
-
-* Subsystem inference is not very reliable. Linker is supposed to set
- ``subsystem`` field in the PE/COFF header according to entry function name,
- but LLD sometimes ended up with ``unknown`` subsystem type. You need to give
- ``/SUBSYSTEM`` option if it fails to infer it.