[cfe-dev] MinGW include directories [RFC]

Yaron Keren yaron.keren at gmail.com
Sun Mar 23 07:14:24 PDT 2014


Hi Takumi,

Do you mean to create a new MinGWToolChain in driver?

I am trying to solve the situation on host Windows where the install
directory is not standard and different between the distributions and
between 32 and 64 bit.
I'd like clang to handle at least MinGW.org and mingw-builds 32,64 bit
automatically for any install directory as long as gcc.exe is on the PATH.

This scheme should work running under host CygWin as well just the same.

Under host Linux it's not MinGW but gcc and clang already knows to find
include directory since they are standard.

Yaron



Yaron



2014-03-23 15:05 GMT+02:00 NAKAMURA Takumi <geek4civic at gmail.com>:

> Yaron,
>
> At first, we may implement the driver instead of twiddling
> InitHeaderSearch.
> By the way, did you consider cross tools on other hosts, like cygwin and
> linux?
>
> ...Takumi
>
> 2014-03-23 19:36 GMT+09:00 Yaron Keren <yaron.keren at gmail.com>:
> > Hi,
> >
> > The current setup of MinGW include directories in InitHeaderSearch.cpp
> has
> > several problems:
> >
> > * New versions are added manually to the code.
> > * All existing versions of MinGW directories are added regardless of
> what is
> > actually installed (and pruned later), wasted work.
> > * Two MinGW.org C includes are missing.
> > * If multiple MinGW versions are installed clang will add directories for
> > all of them leading to unpredictable results.
> >
> > I'd like to suggest that clang will add include directories only for the
> > gcc.exe which is on the system PATH based on the list below for both
> > distributions.
> > This way:
> > * clang will not add include diectories for every possible version, only
> for
> > this one.
> > * clang  will correctly hanlde multiple based on the dveloper choice
> which
> > gcc.exe is on the path
> > * We won't have to manually update new versions in InitHeaderSearch.cpp.
> >
> > What do you think?
> >
> > Yaron
> >
> > mingw.org
> > ---------
> > gcc location
> > BASEPATH\bin\gcc.exe
> >
> > C32 includes
> > BASEPATH\lib\gcc\mingw32\X.Y.Z\include
> > BASEPATH\lib\gcc\mingw32\X.Y.Z\include-fixed
> > BASEPATH\include
> >
> > C++32 includes
> > BASEPATH\lib\gcc\mingw32\X.Y.Z\include\c++
> > BASEPATH\lib\gcc\mingw32\X.Y.Z\include\c++\mingw32
> > BASEPATH\lib\gcc\mingw32\X.Y.Z\include\c++\backward
> >
> > mingw-w64
> > ---------
> > gcc includes
> > BASEPATH\bin\gcc.exe
> >
> > C32 includes
> > BASEPATH\lib\gcc\i686-w64-mingw32\X.Y.Z\include
> > BASEPATH\lib\gcc\i686-w64-mingw32\X.Y.Z\include-fixed
> > BASEPATH\i686-w64-mingw32\include
> >
> > C64 includes
> > BASEPATH\lib\gcc\x86_64-w64-mingw32\X.Y.Z\include
> > BASEPATH\lib\gcc\x86_64-w64-mingw32\X.Y.Z\include-fixed
> > BASEPATH\x86_64-w64-mingw32\include
> >
> > C++32 includes
> > BASEPATH\i686-w64-mingw32\include\c++
> >
> > C++64 includes
> > BASEPATH\x86_64-w64-mingw32\include\c++
> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140323/a862f706/attachment.html>


More information about the cfe-dev mailing list