Ah, sorry, you mentioned that. Yes, I think you need it. On Wed, Sep 13, 2017 at 1:00 PM, Rui Ueyama <r...@google.com> wrote:
> 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. > > On Tue, Sep 12, 2017 at 7:16 PM, Martell Malone <martellmal...@gmail.com> > wrote: > >> Just to follow up, >> The test case here was added by yaron in https://reviews.llvm.org/rL253 >> 066 >> As a follow up to the original detection which I originally wrote and >> reid reviewed https://reviews.llvm.org/rL242121 >> Given that no other target does special checks except msvc for lld-link >> removing this test case might also be an option. >> >> On Wed, Sep 13, 2017 at 2:54 AM, Martell Malone <martellmal...@gmail.com> >> wrote: >> >>> Hey Reid, Rui, >>> >>> 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 >>> >>> Looking through the clang test directory I only se -fuse-ld=lld tested >>> in 4 locations >>> >>> 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 ? ) >>> test/Driver/cl-link.c which checks that for cl -fuse-ld=lld is converted >>> to lld-link and not ld.lld >>> test/Driver/cl-options.c just checks an error showing LTO that requires >>> -fuse-ld=lld >>> and in >>> test/Driver/mingw-useld.c where we run into our errors. >>> >>> 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). >>> >>> For the first error `error: invalid linker name in argument >>> '-fuse-ld=lld'` >>> 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. >>> but do you know where I would look to implement something like this? >>> `// REQUIRES: lld` >>> >>> As for the second issue. >>> >>> lld-link.exe: warning: ignoring unknown argument: -fuse-ld=lld >>> >>> I can't confirm but it seems like a configuration with the buildbot >>> itself. >>> Possibly related to setting LLD_SYMLINKS_TO_CREATE within the bot itself >>> or some bat file on the system itself for symlinking? >>> >>> 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. >>> cpp >>> and that is only for msvc targets with a testcase >>> in test/Driver/cl-link.c >>> >>> Best, >>> Martell >>> >>> >>> On Wed, Sep 13, 2017 at 1:57 AM, Martell Malone via cfe-commits < >>> cfe-commits@lists.llvm.org> wrote: >>> >>>> Author: martell >>>> Date: Tue Sep 12 17:57:50 2017 >>>> New Revision: 313104 >>>> >>>> URL: http://llvm.org/viewvc/llvm-project?rev=313104&view=rev >>>> Log: >>>> Revert "[Driver] MinGW: Remove custom linker detection" >>>> >>>> This reverts rL313102 because it still fails some build bot tests. >>>> >>>> On many linux bots it fails with the following error. >>>> error: invalid linker name in argument '-fuse-ld=lld' >>>> and on some windows bots also because there is no ld.lld.exe >>>> lld-link.exe: warning: ignoring unknown argument: -fuse-ld=lld >>>> >>>> Modified: >>>> cfe/trunk/lib/Driver/ToolChains/MinGW.cpp >>>> cfe/trunk/test/Driver/mingw-useld.c >>>> >>>> Modified: cfe/trunk/lib/Driver/ToolChains/MinGW.cpp >>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Too >>>> lChains/MinGW.cpp?rev=313104&r1=313103&r2=313104&view=diff >>>> ============================================================ >>>> ================== >>>> --- cfe/trunk/lib/Driver/ToolChains/MinGW.cpp (original) >>>> +++ cfe/trunk/lib/Driver/ToolChains/MinGW.cpp Tue Sep 12 17:57:50 2017 >>>> @@ -104,6 +104,14 @@ void tools::MinGW::Linker::ConstructJob( >>>> // handled somewhere else. >>>> Args.ClaimAllArgs(options::OPT_w); >>>> >>>> + StringRef LinkerName = Args.getLastArgValue(options::OPT_fuse_ld_EQ, >>>> "ld"); >>>> + if (LinkerName.equals_lower("lld")) { >>>> + CmdArgs.push_back("-flavor"); >>>> + CmdArgs.push_back("gnu"); >>>> + } else if (!LinkerName.equals_lower("ld")) { >>>> + D.Diag(diag::err_drv_unsupported_linker) << LinkerName; >>>> + } >>>> + >>>> if (!D.SysRoot.empty()) >>>> CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot)); >>>> >>>> @@ -233,7 +241,7 @@ void tools::MinGW::Linker::ConstructJob( >>>> >>>> if (Args.hasArg(options::OPT_static)) >>>> CmdArgs.push_back("--end-group"); >>>> - else >>>> + else if (!LinkerName.equals_lower("lld")) >>>> AddLibGCC(Args, CmdArgs); >>>> } >>>> >>>> @@ -244,7 +252,7 @@ void tools::MinGW::Linker::ConstructJob( >>>> CmdArgs.push_back(Args.MakeArgString(TC.GetFilePath("crtend >>>> .o"))); >>>> } >>>> } >>>> - const char *Exec = Args.MakeArgString(TC.GetLinkerPath()); >>>> + const char *Exec = Args.MakeArgString(TC.GetProgr >>>> amPath(LinkerName.data())); >>>> C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs, >>>> Inputs)); >>>> } >>>> >>>> >>>> Modified: cfe/trunk/test/Driver/mingw-useld.c >>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/mi >>>> ngw-useld.c?rev=313104&r1=313103&r2=313104&view=diff >>>> ============================================================ >>>> ================== >>>> --- cfe/trunk/test/Driver/mingw-useld.c (original) >>>> +++ cfe/trunk/test/Driver/mingw-useld.c Tue Sep 12 17:57:50 2017 >>>> @@ -1,19 +1,19 @@ >>>> -// RUN: %clang -### -target i686-pc-windows-gnu -fuse-ld=platform >>>> --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s 2>&1 | FileCheck >>>> -check-prefix=CHECK_LD_32 %s >>>> -// CHECK_LD_32: "{{[^"]*}}ld{{(.exe)?}}" >>>> +// RUN: %clang -### -target i686-pc-windows-gnu >>>> --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s 2>&1 | FileCheck >>>> -check-prefix=CHECK_LD_32 %s >>>> +// CHECK_LD_32: ld{{(.exe)?}}" >>>> // CHECK_LD_32: "i386pe" >>>> -// CHECK_LD_32-NOT: "{{[^"]*}}ld.lld{{(.exe)?}}" >>>> +// CHECK_LD_32-NOT: "-flavor" "gnu" >>>> >>>> -// RUN: %clang -### -target i686-pc-windows-gnu -fuse-ld=lld >>>> --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s 2>&1 | FileCheck >>>> -check-prefix=CHECK_LLD_32 %s >>>> +// RUN: %clang -### -target i686-pc-windows-gnu >>>> --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s -fuse-ld=lld 2>&1 | >>>> FileCheck -check-prefix=CHECK_LLD_32 %s >>>> // CHECK_LLD_32-NOT: invalid linker name in argument >>>> -// CHECK_LLD_32: "{{[^"]*}}ld.lld{{(.exe)?}}" >>>> +// CHECK_LLD_32: lld{{(.exe)?}}" "-flavor" "gnu" >>>> // CHECK_LLD_32: "i386pe" >>>> >>>> -// RUN: %clang -### -target x86_64-pc-windows-gnu -fuse-ld=lld >>>> --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s 2>&1 | FileCheck >>>> -check-prefix=CHECK_LLD_64 %s >>>> +// RUN: %clang -### -target x86_64-pc-windows-gnu >>>> --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s -fuse-ld=lld 2>&1 | >>>> FileCheck -check-prefix=CHECK_LLD_64 %s >>>> // CHECK_LLD_64-NOT: invalid linker name in argument >>>> -// CHECK_LLD_64: "{{[^"]*}}ld.lld{{(.exe)?}}" >>>> +// CHECK_LLD_64: lld{{(.exe)?}}" "-flavor" "gnu" >>>> // CHECK_LLD_64: "i386pep" >>>> >>>> -// RUN: %clang -### -target arm-pc-windows-gnu -fuse-ld=lld >>>> --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s 2>&1 | FileCheck >>>> -check-prefix=CHECK_LLD_ARM %s >>>> +// RUN: %clang -### -target arm-pc-windows-gnu >>>> --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s -fuse-ld=lld 2>&1 | >>>> FileCheck -check-prefix=CHECK_LLD_ARM %s >>>> // CHECK_LLD_ARM-NOT: invalid linker name in argument >>>> -// CHECK_LLD_ARM: "{{[^"]*}}ld.lld{{(.exe)?}}" >>>> +// CHECK_LLD_ARM: lld{{(.exe)?}}" "-flavor" "gnu" >>>> // CHECK_LLD_ARM: "thumb2pe" >>>> >>>> >>>> _______________________________________________ >>>> cfe-commits mailing list >>>> cfe-commits@lists.llvm.org >>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >>>> >>> >>> >> >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits