make/tests/scripts/options
Sergei Trofimovich 621d3196fa [SV 62100] Add '--shuffle' option support
Introduce non-deterministic ordering into goal and prerequisite
traversal to help tease out inconsistent failures that may happen
when running in parallel build mode.

Introduce second order into each dependency chain:
1. Existing order is syntactic order reachable via 'dep->next'
2. New order is shuffled order stored as 'dep->shuf' in each 'dep'

When updating goals and prerequisites and '--shuffle' is provided,
use the shuffled order to walk the graph.  When automatic variable
are set always use the syntactic order of parameters.

* Makefile.am: Add new src/shuffle.c and src/shuffle.h file.
* build_w32.bat: Ditto.
* builddos.bat: Ditto.
* makefile.com: Ditto.
* po/POTFILES.in: Ditto.
* doc/make.texi: Add documentation for --shuffle.
* doc/make.1: Ditto.
* src/dep.h (DEP): Add the shuf pointer.
* src/filedef.h (struct file): Add was_shuffled flag.
* src/main.c: (shuffle_mode): Global flag for the shuffle mode.
(usage): Add the --shuffle option.
(switches): Ditto.
(main): Set shuffle_mode based on the command line parameter.
Reshuffle prerequisites if requested.
* src/remake.c (update_goal_chain): Walk the shuffled list if enabled.
(update_file_1): Ditto.
* src/shuffle.h: Provide an interface for shuffling prerequisites.
* src/shuffle.c: Implement option parsing and prerequisite shuffling.
* tests/scripts/options/shuffle: Test shuffle option and modes.
2022-06-04 19:04:37 -04:00
..
dash-B [SV 102] Don't show unnecessary include file errors. 2016-04-09 20:06:46 -04:00
dash-C Refresh the test suite framework implementation. 2019-09-16 08:25:33 -04:00
dash-d * src/main.c (decode_debug_flags): [SV 607777] Preserve -d options 2021-09-06 20:36:15 -04:00
dash-e tests: Simplify customization of %ENV 2020-04-01 02:02:57 -04:00
dash-f * tests/scripts/options/dash-f: [SV 62118] Close STDIN 2022-04-24 13:48:03 -04:00
dash-I tests: Enhance output to contain filename/line number info 2021-11-27 14:03:44 -05:00
dash-k [SV 60595] Restart whenever any makefile is rebuilt 2021-09-03 12:08:11 -04:00
dash-l * tests/scripts/options/dash-l: [SV 62172] Skip if not available 2022-04-24 10:39:32 -04:00
dash-n * tests/run_make_test.pl: Fix support for valgrind. 2019-09-21 15:13:24 -04:00
dash-q [SV 47151] Exit with 1 when checking recursive make -q 2016-02-29 01:33:50 -05:00
dash-r [SV 62356] If -R is set in the makefile, disable -r 2022-04-24 10:39:32 -04:00
dash-s * main.c (switches): Add --no-silent to undo -s options. 2016-12-28 09:25:34 -05:00
dash-t Commit fix for bug #1418. 2003-03-25 00:15:25 +00:00
dash-W [SV 102] Don't show unnecessary include file errors. 2016-04-09 20:06:46 -04:00
eval Add test suite support to Windows 2017-06-04 18:37:20 -04:00
general Add test suite support to Windows 2017-06-04 18:37:20 -04:00
print-directory Obey order of multiple print/no-print directory options 2020-03-31 00:17:49 -04:00
shuffle [SV 62100] Add '--shuffle' option support 2022-06-04 19:04:37 -04:00
symlinks * tests: Convert from File::Spec::Functions to File::Spec. 2019-09-21 16:37:56 -04:00
warn-undefined-variables Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines. 2012-03-04 00:24:20 +00:00