Follow-up Comment #1, bug #64803 (project make): Variables inherited from env have incorrect origin 'environment' when -e is set and the makefile does not modify the variable.
$ ls makefile $ cat makefile $(info at parse time hello=$(hello), origin = $(origin hello)) all:; $(info at build time hello=$(hello), origin = $(origin hello)) $ # this is the latest make from master $ hello=world ~/src/make/m64/make -e at parse time hello=world, origin = environment at build time hello=world, origin = environment make: 'all' is up to date. $ hello=world make-4.3 -e at parse time hello=world, origin = environment at build time hello=world, origin = environment make-4.3: 'all' is up to date. This happens because make goes through env variables and defines related make variables before the command line switches are processed and make has not figured out yet that -e is specified. This patch reads command line switches and sets global variable 'env_overrides' before going through env variables. This fix is split into 2 patches. The patches are supposed to be applied in order, part1 before part2. This split keeps logically independent changes in separate commits. Hopefully, this will make review easier and allows to refer to or revert individual commits. _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?64803> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/