Hi Douglas,
I wasn't able to reproducd the issue myself, but I think I know what the
issue was, and I committed a fix attempt.
// Martin
On Wed, 18 Apr 2018, Martin Storsjö via cfe-commits wrote:
Hi Douglas,
Yes, I saw it - trying to look into it right now.
// Martin
On Wed, 18 Apr 2018, douglas.y...@sony.com wrote:
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
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits