make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: sync_Path_environment issue


From: Eli Zaretskii
Subject: Re: sync_Path_environment issue
Date: Tue, 21 May 2013 20:32:47 +0300

> Date: Tue, 21 May 2013 09:02:57 -0400
> From: LM <address@hidden>
> 
> I'm trying to build make 3.82 using MinGW (32 bit) in an msys environment.
> When I test the results out by attempting to rebuild autoconf with this
> version of make                              ^^^^^^^^^^^^^^^^^^^^^^^^^^
>  ^^^^^^^^^^^^^^^

This is your problem, right there: The MinGW Make is not supposed to
run in the MSYS environment.  Use the MSYS provided Make instead.
Even if this problem is somehow solved, you will hit others further
down the road.  The main problem is that the MSYS Bash wants to see
and outputs /d/foo/bar file names that the MinGW Make does not
understand.

The _only_ sane way to build packages under MSYS is to use the MSYS
Make.

> The line that's causing the trouble for make is:
> export PATH = $(shell echo "`pwd`/tests:$$PATH")
> 
> It's not that there are two instances of PATH in the command.  I can change
> the second PATH to any variable name I want and I still get the error.  I
> can change PATH = to PATH := and I don't get the error.

I actually wonder why Autoconf doesn't use := to begin with.  It is
the right way.

> It looks like when make sees PATH =, it assumes it's working with a
> variable it needs to expand (with f_recursive not f_simple).  To get
> the rest of the variable, it tries to call the shell and run the
> echo command.  For Windows only, before calling CreateProcess to run
> anything (such as the shell command), there's a call to
> sync_Path_environment.

That call is required, because the "normal" environment used by the C
runtime library is separate from the environment block used by
CreateProcess.  That call synchronizes them.  Without it, we will have
much more serious problems.

> Not sure of the best fix for this.

If you find a fix that doesn't remove the call to
sync_Path_environment, I will review it and see if it can be
accepted.  But please note that you are trying to solve a problem you
shouldn't bump into in the first place.  Just use MSYS Make.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]