Subject: Re: bug#19989: 25.0.50; Build instructions on Windows

From: Ilya Zakharevich <[email-masked]>
Date: Fri, 6 Mar 2015 17:35:02 -0800

On Fri, Mar 06, 2015 at 12:08:00PM +0200, Eli Zaretskii wrote:
> > So that's the problem: you installed the MSYS GCC (and probably the
> > whole MSYS development environment), something one shouldn't do for
> > building MinGW programs.
> 
> Or maybe I again misunderstood, and the GCC found first on PATH was
> the Cygwin GCC?  Then that'd be the "don't mix Cygwin with MinGW in
> the same session" part of my advice again.

Yes, you again misunderstood.  But the last paragraph of yours is
irrelevant.  The issue of another gcc on PATH is not important.  What
IS important is the fact that the PATH of
   bash --login
won’t find the INSTALLED mingw.  Let me repeat the same stuff again:

  • mingw-get installs mingw into
      FOO/bin
    (here FOO is the install path set in mingw-get)
  • /etc/profile’s PATH contains
       /mingw/bin
       /bin
    (among others) — but /mingw/bin is actually resolved (AFAICS) to
       FOO/msys/1.0/mingw/bin
    (and /bin to FOO/msys/1.0/bin).

  • Therefore, /mingw/bin is on PATH, but it is a non-existing
    directory (even after mangling).

  • Now there are two cases of the PATH at start of `bash --login´:
       ∘ If PATH contains some other gcc, then the other gcc will be
       	 used by ./configure — with hard-to-explain failures;
       ∘ If PATH does not contain gcc, then ./configure will quickly
         fail, reporting not finding gcc.
 
(After discovering this — which stole a couple of hours of my time) I
needed to fix this.  Because the way of MSYS mangling of paths is not
easily found, (and one cannot easily find MSYS’s /etc/profile),
instead of editing PATH, I just modified the filesystem, linking
  FOO/msys/1.0/mingw
to
  FOO/mingw
(experiments show that this must be a Windows’ style link — made with
sysinternal’s mklink, as reported).

Ilya