r241432 - Teach mingw toolchain the msys2 mingw-w64 distribution C++ dirs.

Yaron Keren yaron.keren at gmail.com
Tue Jul 7 08:19:02 PDT 2015


Here is a patch honoring sysroot for ld, let me know if it works for you.

2015-07-07 12:13 GMT+03:00 Yaron Keren <yaron.keren at gmail.com>:

> Hi,  Please see if the attached patch works on opensuse.
>
> I'll look at the cygnus ld issue later.
>
>
> 2015-07-07 10:38 GMT+03:00 İsmail Dönmez <ismail at donmez.ws>:
>
>> Hi,
>>
>> On Mon, Jul 6, 2015 at 10:40 AM, Yaron Keren <yaron.keren at gmail.com>
>> wrote:
>> > Author: yrnkrn
>> > Date: Mon Jul  6 02:40:10 2015
>> > New Revision: 241432
>> >
>> > URL: http://llvm.org/viewvc/llvm-project?rev=241432&view=rev
>> > Log:
>> > Teach mingw toolchain the msys2 mingw-w64 distribution C++ dirs.
>> >
>> >
>> > Modified:
>> >     cfe/trunk/lib/Driver/MinGWToolChain.cpp
>> >     cfe/trunk/lib/Driver/ToolChains.h
>>
>> I tried this revision on openSUSE MinGW toolchain and its missing one
>> include path, which is $GCC_ROOT/nclude/c++/x86_64-w64-mingw32 which
>> contains "bits" and "ext" directories. Would you mind adding that to
>> the list too?
>>
>> Thanks!
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150707/8825dae2/attachment.html>
-------------- next part --------------
Index: tools/clang/lib/Driver/MinGWToolChain.cpp
===================================================================
--- tools/clang/lib/Driver/MinGWToolChain.cpp	(revision 241594)
+++ tools/clang/lib/Driver/MinGWToolChain.cpp	(working copy)
@@ -22,10 +22,14 @@
 
 MinGW::MinGW(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
     : ToolChain(D, Triple, Args) {
-  getProgramPaths().push_back(getDriver().getInstalledDir());
+  StringRef SysRoot = getDriver().SysRoot;
+  if (SysRoot.size())
+    getProgramPaths().push_back(SysRoot);
+  else
+    getProgramPaths().push_back(getDriver().getInstalledDir());
 
-  if (getDriver().SysRoot.size())
-    Base = getDriver().SysRoot;
+  if (SysRoot.size())
+    Base = SysRoot;
   else if (llvm::ErrorOr<std::string> GPPName =
                llvm::sys::findProgramByName("gcc"))
     Base = llvm::sys::path::parent_path(


More information about the cfe-commits mailing list