jlebar added a comment. Updated code; please have a look.
================ Comment at: include/clang/Driver/Options.td:1636 @@ -1635,1 +1635,3 @@ +def nocudalib : Flag<["-"], "nocudalib">, + HelpText<"Don't include libraries necessary for running CUDA (-L/path/to/cuda/lib{,64} -lcudart_static -lrt -lpthread -ldl)">; def nocudalibdevice : Flag<["-"], "nocudalibdevice">, ---------------- tra wrote: > include -> link with > > Perhaps less implementation details would be more appropriate for a help > string. > "Don't link with default CUDA runtime library"? > include -> link with Done. > Perhaps less implementation details would be more appropriate for a help > string. I'm not sure about that? Maybe if we were just including -lcudart_static, but given that we're pulling in other libraries and adding a library search path, I feel like we should tell users what we're doing? I mean, we should document it somewhere, and here's where people are actually going to find it... ================ Comment at: lib/Driver/ToolChains.cpp:4129-4137 @@ +4128,11 @@ + LDArgs.push_back("-L"); + LDArgs.push_back(DriverArgs.MakeArgString(CudaInstallation.getLibPath())); + auto AddIfNotPresent = [&](const char *Flag) { + llvm::StringRef FlagRef(Flag); + if (std::find_if(LDArgs.begin(), LDArgs.end(), [FlagRef](const char *A) { + return llvm::StringRef(A) == FlagRef; + }) == LDArgs.end()) { + LDArgs.push_back(DriverArgs.MakeArgString(Flag)); + } + }; + AddIfNotPresent("-lcudart_static"); ---------------- tra wrote: > Does this kick in before user's arguments have been added or after? > If user args have not been added yet, then you'll never find them and don't > need this check at all. > > Skipping -lFOO will also have problems if any of the libraries are static and > one of preceding libraries needs extra symbols that were not linked in by > this point yet. > > Link with required libraries unconditionally. Make sure to add these > libraries after user arguments have been added. > > Does this kick in before user's arguments have been added or after? After; I wrote tests. :) > Link with required libraries unconditionally. Done. ================ Comment at: lib/Driver/ToolChains.cpp:4142 @@ +4141,3 @@ + AddIfNotPresent("-lrt"); + AddIfNotPresent("-pthread"); +} ---------------- tra wrote: > -lpthread Oh, I see, -pthread is a compile-time flag, not a link-time flag. Thanks. http://reviews.llvm.org/D15596 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits