summaryrefslogtreecommitdiff
path: root/bootstrap.conf
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2022-06-18 20:25:30 -0400
committerPaul Smith <psmith@gnu.org>2022-07-09 10:44:21 -0400
commit98da874c43035a490cdca81331724f233a3d0c9a (patch)
tree1894a4e883fd03ff762dfcfe4357cf1d68de483f /bootstrap.conf
parent88d6c22a487cc45b6d615d5c055ced5c9d5cb56d (diff)
downloadmake-git-98da874c43035a490cdca81331724f233a3d0c9a.tar.gz
[SV 10593] Export variables to $(shell ...) commands
Export all variables, including exported makefile variables, when invoking a shell for the $(shell ...) function. If we detect a recursive variable expansion, silently ignore that variable and do not export it. We do print a debug message. * NEWS: Announce the potential backward-incompatibility. * doc/make.texi (Shell Function): Document the export behavior. * src/main.c (main): Add "shell-export" to .FEATURES. * src/job.h: New function to free struct childbase. * src/job.c (free_childbase): Implement it; call from free_child. * src/function.c (func_shell_base): Use target_environment() to obtain the proper environment for the shell function. Use free_childbase() to free memory. (windows32_openpipe): Don't reset the environment: the caller already provided a proper PATH variable in envp. * src/variable.c (target_environment): If we detect a recursive expansion and we're called from func_shell, ignore the variable. (sync_Path_environment): Simplify and reduce memory allocation. * tests/scripts/functions/shell: Add tests for this.
Diffstat (limited to 'bootstrap.conf')
0 files changed, 0 insertions, 0 deletions