Wow, mingw-w64 distributions has endless variations of include and library locations. On base of the current SVN (without any previous patches I sent), try the attached patch.
2015-07-12 18:33 GMT+03:00 İsmail Dönmez <ism...@donmez.ws>: > Hi, > > See the attached log. > > On Sun, Jul 12, 2015 at 6:15 PM, Yaron Keren <yaron.ke...@gmail.com> > wrote: > > On Ubuntu 14.04 it's not the same location, it's in /usr/lib/gcc and not > > /usr/lib64/gcc > > > > #include <...> search starts here: > > /usr/include/c++/4.8 > > /usr/include/c++/4.8/x86_64-w64-mingw32 > > /usr/include/c++/4.8/backward > > /usr/lib/gcc/x86_64-w64-mingw32/4.8/include > > /usr/lib/gcc/x86_64-w64-mingw32/4.8/include-fixed > > > /usr/lib/gcc/x86_64-w64-mingw32/4.8/../../../../x86_64-w64-mingw32/include > > End of search list. > > GNU C++ (GCC) version 4.8.2 (x86_64-w64-mingw32) > > > > Can you send the full output of > > > > /usr/bin/x86_64-w64-mingw32-g++ -c -v a.cpp > > > > where a.cpp is some source file? > > > > > > > > 2015-07-12 16:47 GMT+03:00 İsmail Dönmez <ism...@donmez.ws>: > >> > >> [snip] > >> > >> > P.S: The problem on Cygwin side seems to be that my toolchain is > >> > missing libgcc_s.a and this seems to be working fine since I build the > >> > whole toolchain as static. Do you think its reasonable to > >> > conditionally add -lgcc_s depending on it exists or not? > >> > >> Honestly though this is non-standard and not worth adding code for. > >> The situation on Linux is still a regression though :/ > >> > >> Thanks a lot! > > > > >
Index: tools/clang/lib/Driver/MinGWToolChain.cpp =================================================================== --- tools/clang/lib/Driver/MinGWToolChain.cpp (revision 241540) +++ tools/clang/lib/Driver/MinGWToolChain.cpp (working copy) @@ -25,8 +25,10 @@ : ToolChain(D, Triple, Args) { getProgramPaths().push_back(getDriver().getInstalledDir()); + llvm::SmallString<1024> LibDir; if (getDriver().SysRoot.size()) Base = getDriver().SysRoot; +#ifdef LLVM_ON_WIN32 else if (llvm::ErrorOr<std::string> GPPName = llvm::sys::findProgramByName("gcc")) Base = llvm::sys::path::parent_path( @@ -34,8 +36,14 @@ else Base = llvm::sys::path::parent_path(getDriver().getInstalledDir()); Base += llvm::sys::path::get_separator(); - llvm::SmallString<1024> LibDir(Base); + LibDir = Base; llvm::sys::path::append(LibDir, "lib", "gcc"); +#else + else + Base = "/usr/"; + LibDir = Base; + llvm::sys::path::append(LibDir, "lib64", "gcc"); +#endif LibDir += llvm::sys::path::get_separator(); // First look for mingw-w64. @@ -133,6 +141,7 @@ // mingw-w64 mingw-builds: $sysroot/i686-w64-mingw32/include/c++. // mingw-w64 msys2: $sysroot/include/c++/4.9.2 // mingw.org: GccLibDir/include/c++ + // OpenSUSE: GccLibDir/include/c++ llvm::SmallVector<llvm::SmallString<1024>, 3> CppIncludeBases; CppIncludeBases.emplace_back(Base); llvm::sys::path::append(CppIncludeBases[0], Arch, "include", "c++");
_______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits