GMAKE更改堆栈大小限制(gmake change the stack size limit)

2019-09-28 17:21发布

如果我的当前环境下,

$ ulimit -s
10240

但是,如果我通过使用gmake运行过程中,堆栈大小是无限的。 对于实例(;:是让使用gmake使用shell执行命令,否则它会试图找到这个名字的可执行文件)

$ cat Makefile
default:
        ulimit -s; :
$ gmake
ulimit -s; :
unlimited
  • 是有可能得到使用gmake不改变限制?

  • 如果没有,是否有可能重新设定什么限制我想对所有的规则,而无需修改它们(虽然我可能改变主Makefile中,一些规则来源于其产生和不断变化的生成逻辑开始把自己的问题包括文件)。

编辑:@MadScientist了解到我,这是与3.81的一个问题是固定在3.82。 但我仍然希望周围的工作。

Answer 1:

这听起来像https://savannah.gnu.org/bugs/?22010固定在GNU使3.82。

如果不能更新您的GNU版本使(3.82是一样,超过3岁了......),你不能反向移植的补丁,你可以尝试这样的事情(未经测试); 创建一个shell脚本来修改堆栈:

$ cat stacksh
#!/bin/sh
ulimit -s ...
exec /bin/sh "$@"

$ chmod 755 stacksh

然后,在你的makefile,重新SHELL使用你的脚本:

SHELL := /path/to/stacksh

现在让将调用你的shell脚本来运行命令,而不是/bin/sh



Answer 2:

这是一个BUG,这是在3.82得到解决,但3.82有其他错误。

看来,做有一个(非常可疑的,恕我直言)只,每4年更新策略。 我想大多数Linux发行版将不前2014年年底更新自己的化妆品。

我看了这个博客约在3.82的断裂缺陷,这是固定在这个叉 。



文章来源: gmake change the stack size limit