<div dir="ltr">Ah, sorry, you mentioned that. Yes, I think you need it.</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 13, 2017 at 1:00 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">This is a wild guess, but don't you need to add `REQUIRES: lld` to your test if your test depends on lld? I don't think all bots have lld, and if `ld.lld` is not found, clang prints out that error message.</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 12, 2017 at 7:16 PM, Martell Malone <span dir="ltr"><<a href="mailto:martellmalone@gmail.com" target="_blank">martellmalone@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Just to follow up,<br>The test case here was added by yaron in <a href="https://reviews.llvm.org/rL253066" target="_blank">https://reviews.llvm.org/rL253<wbr>066</a><br>As a follow up to the original detection which I originally wrote and reid reviewed <a href="https://reviews.llvm.org/rL242121" target="_blank">https://reviews.llvm.org/rL242<wbr>121</a><br>Given that no other target does special checks except msvc for lld-link removing this test case might also be an option.<br></div><div class="m_1632425863163058870HOEnZb"><div class="m_1632425863163058870h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 13, 2017 at 2:54 AM, Martell Malone <span dir="ltr"><<a href="mailto:martellmalone@gmail.com" target="_blank">martellmalone@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hey Reid, Rui,<br><br>I had to revert this twice. I'm not sure where the configurations for the build bots are but there are 2 issues as I mentioned in the commit message<br><br>Looking through the clang test directory I only se -fuse-ld=lld tested in 4 locations<br><br>test/Driver/windows-cross.c does some really old tests like `-fuse-ld=lld-link2` which was back when Rui had just started the new COFF linker. (maybe we should remove / update these ? )<br>test/Driver/cl-link.c which checks that for cl -fuse-ld=lld is converted to lld-link and not ld.lld<br>test/Driver/cl-options.c just checks an error showing LTO that requires -fuse-ld=lld<br>and in<br><span style="font-size:12.8px">test/Driver/mingw-</span><span style="font-size:12.8px">useld.c where we run into our errors.<br></span><br>So to begin there does not seem to be any checking for lld in the test suite because it is not properly tested anywhere (from a clang perspective).<br><br>For the first error `error: invalid linker name in argument '-fuse-ld=lld'`<br>I'm not sure exactly how to add requirements to the lit tooling, I did a few greps build only came up with target checks.<br>but do you know where I would look to implement something like this?<br>`// REQUIRES: lld`<br><br>As for the second issue.<span><br><br>lld-link.exe: warning: ignoring unknown argument: -fuse-ld=lld<br><br></span>I can't confirm but it seems like a configuration with the buildbot itself.<br>Possibly related to setting LLD_SYMLINKS_TO_CREATE within the bot itself or some bat file on the system itself for symlinking?<br><br>I don't think it is clang itself that is doing this because the only place where lld is remapped to lld-link is in lib/Driver/ToolChains/MSVC.<wbr>cpp<br>and that is only for msvc targets with a testcase in test/Driver/cl-link.c<br><br>Best,<br>Martell<div><div class="m_1632425863163058870m_7755352619613446283h5"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 13, 2017 at 1:57 AM, Martell Malone via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Author: martell<br>
Date: Tue Sep 12 17:57:50 2017<br>
New Revision: 313104<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=313104&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=313104&view=rev</a><br>
Log:<br>
Revert "[Driver] MinGW: Remove custom linker detection"<br>
<br>
This reverts rL313102 because it still fails some build bot tests.<br>
<br>
On many linux bots it fails with the following error.<br>
error: invalid linker name in argument '-fuse-ld=lld'<br>
and on some windows bots also because there is no ld.lld.exe<br>
lld-link.exe: warning: ignoring unknown argument: -fuse-ld=lld<br>
<br>
Modified:<br>
    cfe/trunk/lib/Driver/ToolChain<wbr>s/MinGW.cpp<br>
    cfe/trunk/test/Driver/mingw-us<wbr>eld.c<br>
<br>
Modified: cfe/trunk/lib/Driver/ToolChain<wbr>s/MinGW.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains/MinGW.cpp?rev=313104&r1=313103&r2=313104&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/cfe/trunk/lib/Driver/Too<wbr>lChains/MinGW.cpp?rev=313104&r<wbr>1=313103&r2=313104&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- cfe/trunk/lib/Driver/ToolChain<wbr>s/MinGW.cpp (original)<br>
+++ cfe/trunk/lib/Driver/ToolChain<wbr>s/MinGW.cpp Tue Sep 12 17:57:50 2017<br>
@@ -104,6 +104,14 @@ void tools::MinGW::Linker::Construc<wbr>tJob(<br>
   // handled somewhere else.<br>
   Args.ClaimAllArgs(options::OP<wbr>T_w);<br>
<br>
+  StringRef LinkerName = Args.getLastArgValue(options::<wbr>OPT_fuse_ld_EQ, "ld");<br>
+  if (LinkerName.equals_lower("lld"<wbr>)) {<br>
+    CmdArgs.push_back("-flavor");<br>
+    CmdArgs.push_back("gnu");<br>
+  } else if (!LinkerName.equals_lower("ld"<wbr>)) {<br>
+    D.Diag(diag::err_drv_unsupport<wbr>ed_linker) << LinkerName;<br>
+  }<br>
+<br>
   if (!D.SysRoot.empty())<br>
     CmdArgs.push_back(Args.MakeAr<wbr>gString("--sysroot=" + D.SysRoot));<br>
<br>
@@ -233,7 +241,7 @@ void tools::MinGW::Linker::Construc<wbr>tJob(<br>
<br>
       if (Args.hasArg(options::OPT_stat<wbr>ic))<br>
         CmdArgs.push_back("--end-grou<wbr>p");<br>
-      else<br>
+      else if (!LinkerName.equals_lower("lld<wbr>"))<br>
         AddLibGCC(Args, CmdArgs);<br>
     }<br>
<br>
@@ -244,7 +252,7 @@ void tools::MinGW::Linker::Construc<wbr>tJob(<br>
       CmdArgs.push_back(Args.MakeAr<wbr>gString(TC.GetFilePath("crtend<wbr>.o")));<br>
     }<br>
   }<br>
-  const char *Exec = Args.MakeArgString(TC.GetLinke<wbr>rPath());<br>
+  const char *Exec = Args.MakeArgString(TC.GetProgr<wbr>amPath(LinkerName.data()));<br>
   C.addCommand(llvm::make_uniqu<wbr>e<Command>(JA, *this, Exec, CmdArgs, Inputs));<br>
 }<br>
<br>
<br>
Modified: cfe/trunk/test/Driver/mingw-us<wbr>eld.c<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/mingw-useld.c?rev=313104&r1=313103&r2=313104&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/cfe/trunk/test/Driver/mi<wbr>ngw-useld.c?rev=313104&r1=3131<wbr>03&r2=313104&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- cfe/trunk/test/Driver/mingw-us<wbr>eld.c (original)<br>
+++ cfe/trunk/test/Driver/mingw-us<wbr>eld.c Tue Sep 12 17:57:50 2017<br>
@@ -1,19 +1,19 @@<br>
-// RUN: %clang -### -target i686-pc-windows-gnu -fuse-ld=platform --sysroot=%S/Inputs/mingw_clan<wbr>g_tree/mingw32 %s 2>&1 | FileCheck -check-prefix=CHECK_LD_32 %s<br>
-// CHECK_LD_32: "{{[^"]*}}ld{{(.exe)?}}"<br>
+// RUN: %clang -### -target i686-pc-windows-gnu --sysroot=%S/Inputs/mingw_clan<wbr>g_tree/mingw32 %s 2>&1 | FileCheck -check-prefix=CHECK_LD_32 %s<br>
+// CHECK_LD_32: ld{{(.exe)?}}"<br>
 // CHECK_LD_32: "i386pe"<br>
-// CHECK_LD_32-NOT: "{{[^"]*}}ld.lld{{(.exe)?}}"<br>
+// CHECK_LD_32-NOT: "-flavor" "gnu"<br>
<br>
-// RUN: %clang -### -target i686-pc-windows-gnu -fuse-ld=lld --sysroot=%S/Inputs/mingw_clan<wbr>g_tree/mingw32 %s 2>&1 | FileCheck -check-prefix=CHECK_LLD_32 %s<br>
+// RUN: %clang -### -target i686-pc-windows-gnu --sysroot=%S/Inputs/mingw_clan<wbr>g_tree/mingw32 %s -fuse-ld=lld 2>&1 | FileCheck -check-prefix=CHECK_LLD_32 %s<br>
 // CHECK_LLD_32-NOT: invalid linker name in argument<br>
-// CHECK_LLD_32: "{{[^"]*}}ld.lld{{(.exe)?}}"<br>
+// CHECK_LLD_32: lld{{(.exe)?}}" "-flavor" "gnu"<br>
 // CHECK_LLD_32: "i386pe"<br>
<br>
-// RUN: %clang -### -target x86_64-pc-windows-gnu -fuse-ld=lld --sysroot=%S/Inputs/mingw_clan<wbr>g_tree/mingw32 %s 2>&1 | FileCheck -check-prefix=CHECK_LLD_64 %s<br>
+// RUN: %clang -### -target x86_64-pc-windows-gnu --sysroot=%S/Inputs/mingw_clan<wbr>g_tree/mingw32 %s -fuse-ld=lld 2>&1 | FileCheck -check-prefix=CHECK_LLD_64 %s<br>
 // CHECK_LLD_64-NOT: invalid linker name in argument<br>
-// CHECK_LLD_64: "{{[^"]*}}ld.lld{{(.exe)?}}"<br>
+// CHECK_LLD_64: lld{{(.exe)?}}" "-flavor" "gnu"<br>
 // CHECK_LLD_64: "i386pep"<br>
<br>
-// RUN: %clang -### -target arm-pc-windows-gnu -fuse-ld=lld --sysroot=%S/Inputs/mingw_clan<wbr>g_tree/mingw32 %s 2>&1 | FileCheck -check-prefix=CHECK_LLD_ARM %s<br>
+// RUN: %clang -### -target arm-pc-windows-gnu --sysroot=%S/Inputs/mingw_clan<wbr>g_tree/mingw32 %s -fuse-ld=lld 2>&1 | FileCheck -check-prefix=CHECK_LLD_ARM %s<br>
 // CHECK_LLD_ARM-NOT: invalid linker name in argument<br>
-// CHECK_LLD_ARM: "{{[^"]*}}ld.lld{{(.exe)?}}"<br>
+// CHECK_LLD_ARM: lld{{(.exe)?}}" "-flavor" "gnu"<br>
 // CHECK_LLD_ARM: "thumb2pe"<br>
<br>
<br>
______________________________<wbr>_________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>