GNU Make 在什么情况下会更改堆栈大小,为什么?
Under what conditions does GNU Make change the stack size, and why?
考虑这个 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
但是,如果我删除 include dummy
或将 touch dummy
替换为 true
,则 ulimit -s
会得到 8192
。怎么回事?
这是 GNU make 4.2.1 中修复的 bug 48009。
考虑这个 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
但是,如果我删除 include dummy
或将 touch dummy
替换为 true
,则 ulimit -s
会得到 8192
。怎么回事?
这是 GNU make 4.2.1 中修复的 bug 48009。