I think you've got the wrong Phabricator link in the commit log. On 18 April 2017 at 15:27, Martell Malone via cfe-commits < cfe-commits@lists.llvm.org> wrote:
> Author: martell > Date: Tue Apr 18 09:27:36 2017 > New Revision: 300555 > > URL: http://llvm.org/viewvc/llvm-project?rev=300555&view=rev > Log: > Driver: Better detection of mingw-gcc > > Stop blindly searching for "gcc.exe" on windows. > Stop assuming "/usr" on unix, fixes cross compiling. > > Reviewers: mati865, yaron.keren > > Subscribers: ismail, rnk > > Differential revision: https://reviews.llvm.org/D15005 > > Modified: > cfe/trunk/lib/Driver/ToolChains/MinGW.cpp > cfe/trunk/lib/Driver/ToolChains/MinGW.h > > Modified: cfe/trunk/lib/Driver/ToolChains/MinGW.cpp > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ > ToolChains/MinGW.cpp?rev=300555&r1=300554&r2=300555&view=diff > ============================================================ > ================== > --- cfe/trunk/lib/Driver/ToolChains/MinGW.cpp (original) > +++ cfe/trunk/lib/Driver/ToolChains/MinGW.cpp Tue Apr 18 09:27:36 2017 > @@ -285,28 +285,30 @@ void toolchains::MinGW::findGccLibDir() > } > } > > +llvm::ErrorOr<std::string> toolchains::MinGW::findGcc() { > + llvm::SmallVector<llvm::SmallString<32>, 2> Gccs; > + Gccs.emplace_back(getTriple().getArchName()); > + Gccs[0] += "-w64-mingw32-gcc"; > + Gccs.emplace_back("mingw32-gcc"); > + // Please do not add "gcc" here > + for (StringRef CandidateGcc : Gccs) > + if (llvm::ErrorOr<std::string> GPPName = llvm::sys::findProgramByName( > CandidateGcc)) > + return GPPName; > + return make_error_code(std::errc::no_such_file_or_directory); > +} > + > toolchains::MinGW::MinGW(const Driver &D, const llvm::Triple &Triple, > const ArgList &Args) > : ToolChain(D, Triple, Args), CudaInstallation(D, Triple, Args) { > getProgramPaths().push_back(getDriver().getInstalledDir()); > > -// In Windows there aren't any standard install locations, we search > -// for gcc on the PATH. In Linux the base is always /usr. > -#ifdef LLVM_ON_WIN32 > if (getDriver().SysRoot.size()) > Base = getDriver().SysRoot; > - else if (llvm::ErrorOr<std::string> GPPName = > - llvm::sys::findProgramByName("gcc")) > + else if (llvm::ErrorOr<std::string> GPPName = findGcc()) > Base = llvm::sys::path::parent_path( > llvm::sys::path::parent_path(GPPName.get())); > else > Base = llvm::sys::path::parent_path(getDriver().getInstalledDir()); > -#else > - if (getDriver().SysRoot.size()) > - Base = getDriver().SysRoot; > - else > - Base = "/usr"; > -#endif > > Base += llvm::sys::path::get_separator(); > findGccLibDir(); > > Modified: cfe/trunk/lib/Driver/ToolChains/MinGW.h > URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ > ToolChains/MinGW.h?rev=300555&r1=300554&r2=300555&view=diff > ============================================================ > ================== > --- cfe/trunk/lib/Driver/ToolChains/MinGW.h (original) > +++ cfe/trunk/lib/Driver/ToolChains/MinGW.h Tue Apr 18 09:27:36 2017 > @@ -93,6 +93,7 @@ private: > mutable std::unique_ptr<tools::gcc::Preprocessor> Preprocessor; > mutable std::unique_ptr<tools::gcc::Compiler> Compiler; > void findGccLibDir(); > + llvm::ErrorOr<std::string> findGcc(); > }; > > } // end namespace toolchains > > > _______________________________________________ > 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