Add a patch from Paul Eggert that's been lying around in my directory for

a long time, disabling stack size limits where possible.

Update version to beta2.
This commit is contained in:
Paul Smith 2005-02-16 05:03:42 +00:00
parent c90f47e832
commit e8ca9b8eb1
4 changed files with 38 additions and 5 deletions

View File

@ -1334,6 +1334,15 @@
* i18n/ja.po: Installed an updated translation.
2001-09-06 Paul Eggert <eggert@twinsun.com>
* configure.in (AC_CHECK_HEADERS): Add sys/resource.h.
(AC_CHECK_FUNCS): Add getrlimit, setrlimit.
* main.c: Include <sys/resource.h> if it, getrlimit, and setrlimit
are available.
(main): Get rid of any avoidable limit on stack size.
2001-09-04 Paul D. Smith <psmith@gnu.org>
* i18n/da.po: Installed an updated translation.

View File

@ -1,6 +1,6 @@
# Process this file with autoconf to produce a configure script.
AC_INIT([GNU make],[3.81beta1],[bug-make@gnu.org])
AC_INIT([GNU make],[3.81beta2],[bug-make@gnu.org])
AC_PREREQ(2.59)
AC_REVISION([[$Id$]])
@ -50,7 +50,7 @@ AC_HEADER_DIRENT
AC_HEADER_STAT
AC_HEADER_TIME
AC_CHECK_HEADERS(stdlib.h locale.h unistd.h limits.h fcntl.h string.h \
memory.h sys/param.h sys/time.h sys/timeb.h)
memory.h sys/param.h sys/resource.h sys/time.h sys/timeb.h)
# Set a flag if we have an ANSI C compiler
if test "$ac_cv_prog_cc_stdc" != no; then
@ -136,7 +136,7 @@ fi
AC_CHECK_FUNCS( memcpy memmove strchr strdup mkstemp mktemp fdopen \
bsd_signal dup2 getcwd realpath sigsetmask sigaction \
getgroups seteuid setegid setlinebuf setreuid setregid \
setvbuf pipe strerror strsignal)
getrlimit setrlimit setvbuf pipe strerror strsignal)
AC_FUNC_SETVBUF_REVERSED

View File

@ -2423,8 +2423,10 @@ prog3 : prog3.o sort.o utils.o
@end example
@noindent
Now you can say just @samp{make} to remake all three programs, or specify
as arguments the ones to remake (as in @samp{make prog1 prog3}).
Now you can say just @samp{make} to remake all three programs, or
specify as arguments the ones to remake (as in @samp{make prog1
prog3}). Phoniness is not inherited: the prerequisites of a phony
target are not themselves phony, unless explicitly declared to be so.
When one phony target is a prerequisite of another, it serves as a subroutine
of the other. For example, here @samp{make cleanall} will delete the

22
main.c
View File

@ -46,6 +46,14 @@ MA 02111-1307, USA. */
# include <fcntl.h>
#endif
#if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT)
# define SET_STACK_SIZE
#endif
#ifdef SET_STACK_SIZE
# include <sys/resource.h>
#endif
#ifdef _AMIGA
int __stack = 20000; /* Make sure we have 20K of stack space */
#endif
@ -881,6 +889,20 @@ main (int argc, char **argv, char **envp)
no_default_sh_exe = 1;
#endif
#ifdef SET_STACK_SIZE
/* Get rid of any avoidable limit on stack size. */
{
struct rlimit rlim;
/* Set the stack limit huge so that alloca does not fail. */
if (getrlimit (RLIMIT_STACK, &rlim) == 0)
{
rlim.rlim_cur = rlim.rlim_max;
setrlimit (RLIMIT_STACK, &rlim);
}
}
#endif
/* Needed for OS/2 */
initialize_main(&argc, &argv);