bug-make
[Top][All Lists]
Advanced

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

Re: [bug #60538] Environment variable overrides explicit assignment


From: Martin Dorey
Subject: Re: [bug #60538] Environment variable overrides explicit assignment
Date: Thu, 6 May 2021 17:11:25 +0000

The manual doesn't actually say that MAKEOVERRIDES is exported like MAKEFLAGS but I assume it is.

I was going to just say that MAKEFLAGS would be expanded before being exported, and indeed it is, but, having tried it, the results aren't quite what I would have expected, even having just skimmed the section on MAKEOVERRIDES that Paul just cited.

$ make TESTNAME=badger 2>&1 | grep MAKE
MAKEFLAGS= -- TESTNAME=badger
... eliding mentions of MAKE in my environment already...
MAKEOVERRIDES=${-*-command-variables-*-}
MAKELEVEL=1
$

So MAKEOVERRIDES is exported, though perhaps it doesn't need to be, but isn't expanded before being exported.


From: David Boyce <david.s.boyce@gmail.com>
Sent: Thursday, May 6, 2021 09:48
To: Paul D. Smith <psmith@gnu.org>
Cc: Shareef Jalloq <shareef@jalloq.co.uk>; Martin Dorey <Martin.Dorey@hitachivantara.com>; Boris Kolpackov <boris@kolpackov.net>; bug-make <bug-make@gnu.org>
Subject: Re: [bug #60538] Environment variable overrides explicit assignment
 
***** EXTERNAL EMAIL *****
Most likely he thinks/thought that since there are two different make processes with a python process in between the command line override wouldn't leak to the child make. But (from the manual):

> Likewise variables defined on the command line are passed to the sub-make through MAKEFLAGS. (5.7.3)

> The special variable MAKEFLAGS is always exported (unless you unexport it). (5.7.2)

The manual doesn't actually say that MAKEOVERRIDES is exported like MAKEFLAGS but I assume it is.

On Thu, May 6, 2021 at 9:07 AM Paul D. Smith <INVALID.NOREPLY@gnu.org> wrote:
Update of bug #60538 (project make):

                  Status:                    None => Not A Bug             
             Open/Closed:                    Open => Closed                 

    _______________________________________________________

Follow-up Comment #5:

As Martin says, if the variable is set ON THE COMMAND LINE, it will absolutely
take precedence over the setting in a makefile variable (unless overridden
with override).

But, you said you has set this IN THE ENVIRONMENT which is very different;
values set in the environment should not take precedence over values set in
the makefile (as long as -e is not set).

So, you'll have to investigate why/how this variable assignment is appearing
in your command line (in MAKEFLAGS).

I'm going to close this; you can continue to post here but better would be to
discuss on the mailing list, until/unless we discover a bug.

Cheers!

    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?60538>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/



reply via email to

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