Makefile GNU在什么条件下改变堆栈大小,为什么?

Makefile GNU在什么条件下改变堆栈大小,为什么?,makefile,gnu-make,ulimit,Makefile,Gnu Make,Ulimit,考虑这个makefile: .PHONY: all all: dummy test ulimit -s include dummy dummy: test touch dummy 当我运行它时,我得到: $ make -v GNU Make 4.1 Built for x86_64-pc-linux-gnu Copyright (C) 1988-2014 Free Software Foundation, Inc. License GPLv3+: GNU GPL vers

考虑这个makefile:

.PHONY: all

all: dummy test
    ulimit -s

include dummy

dummy: test
    touch dummy
当我运行它时,我得到:

$ make -v
GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ touch test; make
touch dummy
ulimit -s
unlimited
$make-v
GNU Make 4.1
为x86_64-pc-linux-gnu构建
版权所有(C)1988年至2014年自由软件基金会。
许可证GPLv3+:GNU GPL版本3或更高版本
这是自由软件:您可以自由更改和重新发布它。
在法律允许的范围内,不存在任何担保。
触摸试验;制作
触摸假人
ulimit-s
无限的
但是,如果我删除
包含虚拟对象
或将
触摸虚拟对象
替换为
true
,则
ulimit-s
给出
8192
。发生了什么事?

这是GNU make 4.2.1中修复的。

这是GNU make 4.2.1中修复的