make/tests/scripts/variables
Paul Smith 9ae02b7916 [SV 45728] Detect changes in .VARIABLES more accurately.
For performance, we only recompute .VARIABLES when (a) it's expanded
and (b) when its value will change from a previous expansion.  To
determine (b) we were checking the number of entries in the hash
table which used to work until we started undefining entries: now if
you undefine and redefine the same number of entries in between
expanding .VARIABLES, it doesn't detect any change.  Instead, keep
an increasing change number.
* variables.c: Add variable_changenum.
(define_variable_in_set, merge_variable_sets): Increment
variable_changenum if adding a new variable to the global set.
(undefine_variable_in_set): Increment variable_changenum if
undefining a variable from the global set.
(lookup_special_var): Test variable_changenum not the hash table.
* tests/scripts/variables/special: Test undefining variables.
2016-03-13 18:23:20 -04:00
..
automatic
CURDIR
DEFAULT_GOAL Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines. 2012-03-04 00:24:20 +00:00
define Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines. 2012-03-04 00:24:20 +00:00
flavors Add support for "::=" simple assignment operator. 2012-01-30 00:21:57 +00:00
GNUMAKEFLAGS * GNUMAKEFLAGS: Remove -O so it passes in NO_OUTPUT_SYNC mode. 2013-10-19 12:05:58 -04:00
INCLUDE_DIRS
LIBPATTERNS Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines. 2012-03-04 00:24:20 +00:00
MAKE Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines. 2012-03-04 00:24:20 +00:00
MAKE_RESTARTS Enhance the output sync mode. 2013-09-12 04:07:52 -04:00
MAKECMDGOALS
MAKEFILES
MAKEFLAGS Enhance the output sync mode. 2013-09-12 04:07:52 -04:00
MAKELEVEL
MFILE_LIST
negative
private cosmetics: fix few innocuous typos 2013-05-05 20:50:37 -04:00
SHELL Solaris /bin/sh can't handle multiple options ("-e -c"). 2013-09-30 00:12:18 -04:00
special [SV 45728] Detect changes in .VARIABLES more accurately. 2016-03-13 18:23:20 -04:00
undefine