Hi Martin, Your commit is causing a few test failures on the PS4 Windows bot, can you take a look?
http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/16544 Failing Tests (13): Clang :: CodeGenCXX/mingw-w64-exceptions.c Clang :: Driver/clang-translation.c Clang :: Driver/cxa-atexit.cpp Clang :: Driver/default-image-name.c Clang :: Driver/fsjlj-exceptions.c Clang :: Driver/incremental-linker-compatible.c Clang :: Driver/mingw-libgcc.c Clang :: Driver/mingw-msvcrt.c Clang :: Driver/no-integrated-as-win.c Clang :: Driver/pic.c Clang :: Driver/windows-pic.cpp Clang :: Index/index-attrs.c Clang :: Index/index-attrs.cpp Douglas Yung > -----Original Message----- > From: cfe-commits [mailto:cfe-commits-boun...@lists.llvm.org] On Behalf Of > Martin Storsjo via cfe-commits > Sent: Wednesday, April 18, 2018 1:47 > To: cfe-commits@lists.llvm.org > Subject: r330244 - [MinGW] Look for a cross sysroot relative to the clang > binary > > Author: mstorsjo > Date: Wed Apr 18 01:47:26 2018 > New Revision: 330244 > > URL: http://llvm.org/viewvc/llvm-project?rev=330244&view=rev > Log: > [MinGW] Look for a cross sysroot relative to the clang binary > > If found, prefer this over looking for a similar gcc later in the > system path. > > Differential Revision: https://reviews.llvm.org/D45504 > > 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=330244&r1=330243&r2=3302 > 44&view=diff > ============================================================================== > --- cfe/trunk/lib/Driver/ToolChains/MinGW.cpp (original) > +++ cfe/trunk/lib/Driver/ToolChains/MinGW.cpp Wed Apr 18 01:47:26 2018 > @@ -275,7 +275,8 @@ void toolchains::MinGW::findGccLibDir() > Archs.emplace_back(getTriple().getArchName()); > Archs[0] += "-w64-mingw32"; > Archs.emplace_back("mingw32"); > - Arch = Archs[0].str(); > + if (Arch.empty()) > + Arch = Archs[0].str(); > // lib: Arch Linux, Ubuntu, Windows > // lib64: openSUSE Linux > for (StringRef CandidateLib : {"lib", "lib64"}) { > @@ -302,6 +303,24 @@ llvm::ErrorOr<std::string> toolchains::M > return make_error_code(std::errc::no_such_file_or_directory); > } > > +llvm::ErrorOr<std::string> toolchains::MinGW::findClangRelativeSysroot() { > + llvm::SmallVector<llvm::SmallString<32>, 2> Subdirs; > + Subdirs.emplace_back(getTriple().str()); > + Subdirs.emplace_back(getTriple().getArchName()); > + Subdirs[1] += "-w64-mingw32"; > + Twine ClangRoot = > + llvm::sys::path::parent_path(getDriver().getInstalledDir()) + > + llvm::sys::path::get_separator(); > + for (StringRef CandidateSubdir : Subdirs) { > + Twine Subdir = ClangRoot + CandidateSubdir; > + if (llvm::sys::fs::is_directory(Subdir)) { > + Arch = CandidateSubdir; > + return Subdir.str(); > + } > + } > + 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) { > @@ -309,6 +328,10 @@ toolchains::MinGW::MinGW(const Driver &D > > if (getDriver().SysRoot.size()) > Base = getDriver().SysRoot; > + // Look for <clang-bin>/../<triplet>; if found, use <clang-bin>/.. as the > + // base as it could still be a base for a gcc setup with libgcc. > + else if (llvm::ErrorOr<std::string> TargetSubdir = > findClangRelativeSysroot()) > + Base = llvm::sys::path::parent_path(TargetSubdir.get()); > else if (llvm::ErrorOr<std::string> GPPName = findGcc()) > Base = llvm::sys::path::parent_path( > llvm::sys::path::parent_path(GPPName.get())); > > Modified: cfe/trunk/lib/Driver/ToolChains/MinGW.h > URL: http://llvm.org/viewvc/llvm- > project/cfe/trunk/lib/Driver/ToolChains/MinGW.h?rev=330244&r1=330243&r2=330244 > &view=diff > ============================================================================== > --- cfe/trunk/lib/Driver/ToolChains/MinGW.h (original) > +++ cfe/trunk/lib/Driver/ToolChains/MinGW.h Wed Apr 18 01:47:26 2018 > @@ -96,6 +96,7 @@ private: > mutable std::unique_ptr<tools::gcc::Compiler> Compiler; > void findGccLibDir(); > llvm::ErrorOr<std::string> findGcc(); > + llvm::ErrorOr<std::string> findClangRelativeSysroot(); > }; > > } // 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