aboutsummaryrefslogtreecommitdiff
path: root/MinGW
diff options
context:
space:
mode:
authorMartin Storsjo <martin@martin.st>2019-01-05 10:43:59 +0000
committerMartin Storsjo <martin@martin.st>2019-01-05 10:43:59 +0000
commit11fc40469c8b7c4274dfa0b996e4e9765a3d984a (patch)
tree8a5ebfb46aa148dd9ddaf657759dd1d80ff55c26 /MinGW
parentc39558c126387a523dca6d20b256591e236886a6 (diff)
[MinGW] Expand comment for MinGW driver. NFC.
Originally authored by Rui Ueyama. Differential Revision: https://reviews.llvm.org/D53031 git-svn-id: https://llvm.org/svn/llvm-project/lld/trunk@350464 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'MinGW')
-rw-r--r--MinGW/Driver.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/MinGW/Driver.cpp b/MinGW/Driver.cpp
index d682baf59..def769bb9 100644
--- a/MinGW/Driver.cpp
+++ b/MinGW/Driver.cpp
@@ -6,9 +6,27 @@
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
-///
-/// GNU ld style linker driver for COFF currently supporting mingw-w64.
-///
+//
+// MinGW is a GNU development environment for Windows. It consists of GNU
+// tools such as GCC and GNU ld. Unlike Cygwin, there's no POSIX-compatible
+// layer, as it aims to be a native development toolchain.
+//
+// lld/MinGW is a drop-in replacement for GNU ld/MinGW.
+//
+// Being a native development tool, a MinGW linker is not very different from
+// Microsoft link.exe, so a MinGW linker can be implemented as a thin wrapper
+// for lld/COFF. This driver takes Unix-ish command line options, translates
+// them to Windows-ish ones, and then passes them to lld/COFF.
+//
+// When this driver calls the lld/COFF driver, it passes a hidden option
+// "-lldmingw" along with other user-supplied options, to run the lld/COFF
+// linker in "MinGW mode".
+//
+// There are subtle differences between MS link.exe and GNU ld/MinGW, and GNU
+// ld/MinGW implements a few GNU-specific features. Such features are directly
+// implemented in lld/COFF and enabled only when the linker is running in MinGW
+// mode.
+//
//===----------------------------------------------------------------------===//
#include "lld/Common/Driver.h"