Index: lld/tools/lld/lld.cpp
--- lld/tools/lld/lld.cpp.orig
+++ lld/tools/lld/lld.cpp
@@ -70,6 +70,7 @@ static Flavor getFlavor(StringRef s) {
       .Default(Invalid);
 }
 
+#ifdef LLD_ENABLE_MINGW
 static cl::TokenizerCallback getDefaultQuotingStyle() {
   if (Triple(sys::getProcessTriple()).getOS() == Triple::Win32)
     return cl::TokenizeWindowsCommandLine;
@@ -106,6 +107,7 @@ static bool isPETarget(std::vector<const char *> &v) {
   return false;
 #endif
 }
+#endif
 
 static Flavor parseProgname(StringRef progname) {
   // Use GNU driver for "ld" by default.
@@ -149,16 +151,26 @@ static int lldMain(int argc, const char **argv, llvm::
   std::vector<const char *> args(argv, argv + argc);
   auto link = [&args]() {
     Flavor f = parseFlavor(args);
+#ifdef LLD_ENABLE_MINGW
     if (f == Gnu && isPETarget(args))
       return mingw::link;
     else if (f == Gnu)
+#else
+    if (f == Gnu)
+#endif
       return elf::link;
+#ifdef LLD_ENABLE_COFF
     else if (f == WinLink)
       return coff::link;
+#endif
+#ifdef LLD_ENABLE_MACHO
     else if (f == Darwin)
       return macho::link;
+#endif
+#ifdef LLD_ENABLE_WASM
     else if (f == Wasm)
       return lld::wasm::link;
+#endif
     else
       die("lld is a generic driver.\n"
           "Invoke ld.lld (Unix), ld64.lld (macOS), lld-link (Windows), wasm-ld"
