--- - branch: MAIN date: Tue Dec 29 01:45:06 UTC 2020 files: - new: '1.1000' old: '1.999' path: src/distrib/sets/lists/tests/mi pathrev: src/distrib/sets/lists/tests/mi@1.1000 type: modified - new: '1.258' old: '1.257' path: src/usr.bin/make/unit-tests/Makefile pathrev: src/usr.bin/make/unit-tests/Makefile@1.258 type: modified - new: '1.1' old: '0' path: src/usr.bin/make/unit-tests/directive-export-impl.exp pathrev: src/usr.bin/make/unit-tests/directive-export-impl.exp@1.1 type: added - new: '1.1' old: '0' path: src/usr.bin/make/unit-tests/directive-export-impl.mk pathrev: src/usr.bin/make/unit-tests/directive-export-impl.mk@1.1 type: added id: 20201229T014506Z.3515a0c3662d9c657f832650c5b1e43d7adde94a log: | make(1): add test that explains how variables are exported Exporting the variables at the right time and with the correct values is a subtle issue. The current implementation carefully marks variables as ready to be exported, then exports them and at the same time tries to export as few variables as possible, to avoid memory leaks. This test describes and explains how all this works in detail. This test also justifies that the call to Var_ReexportVars happens in the make process itself, not in the child processes, no matter whether these are created with vfork or (only theoretically) with plain fork. This has changed in compat.c 1.217, job.c 1.390 and main.c 1.504 from 2020-12-27. module: src subject: 'CVS commit: src' unixtime: '1609206306' user: rillig