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

İsmail Dönmez ismail at donmez.ws
Tue Jul 14 02:28:04 PDT 2015


One more thing, correct spelling is openSUSE with a small o.

On Tue, Jul 14, 2015 at 12:26 PM, İsmail Dönmez <ismail at donmez.ws> wrote:
> Hi,
>
> This patch works fine after fixing one minor issue:
>
> +#ifdef LLVM_ON_UNIX
> +  // For OpenSUSE.
> +  addSystemInclude(DriverArgs, CC1Args,
> +                   " /usr/x86_64-w64-mingw32/sys-root/mingw/include");
> +#endif
>
> There is a space before /usr. With this patch everything works out of the box.
>
> Thank you!
>
>
> On Mon, Jul 13, 2015 at 6:54 PM, Yaron Keren <yaron.keren at gmail.com> wrote:
>> OK, there are sys-root include and library directories.
>> Try the attached patch which adds both of them.
>>
>>
>> 2015-07-13 8:57 GMT+03:00 İsmail Dönmez <ismail at donmez.ws>:
>>>
>>> Hi,
>>>
>>> Please see the attached log files:
>>>
>>> try2.log.txt: Looks like /usr/include is in include path messing
>>> everything
>>>
>>> try3.log.txt: /usr/x86_64-w64-mingw32/sys-root/mingw/include must be
>>> added as C include path
>>>
>>> try4.log.txt: Even after adding
>>> /usr/x86_64-w64-mingw32/sys-root/mingw/include as include path it
>>> doesn't find most libraries.
>>>
>>>
>>>
>>> On Sun, Jul 12, 2015 at 9:20 PM, Yaron Keren <yaron.keren at gmail.com>
>>> wrote:
>>> > It should just work... on non-Windows the patch makes the mingw
>>> > toolchain in
>>> > clang use /usr/lib64/gcc/$ARCH/$VER and /usr as the base paths instead
>>> > of
>>> > searching. This makes more sense on Linux then the Windows logic of
>>> > looking
>>> > for gcc.exe.
>>> >
>>> > You can still override this with --sysroot but should not be required.
>>> >
>>> >
>>> >
>>> >
>>> > 2015-07-12 21:12 GMT+03:00 İsmail Dönmez <ismail at donmez.ws>:
>>> >>
>>> >> Building it now, how shall I test it? With gcc in $PATH or with
>>> >> --sysroot
>>> >> ?
>>> >>
>>> >> On Sun, Jul 12, 2015 at 9:05 PM, Yaron Keren <yaron.keren at gmail.com>
>>> >> wrote:
>>> >> > 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 <ismail at donmez.ws>:
>>> >> >>
>>> >> >> Hi,
>>> >> >>
>>> >> >> See the attached log.
>>> >> >>
>>> >> >> On Sun, Jul 12, 2015 at 6:15 PM, Yaron Keren <yaron.keren at 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 <ismail at 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!
>>> >> >> >
>>> >> >> >
>>> >> >
>>> >> >
>>> >
>>> >
>>
>>




More information about the cfe-commits mailing list