From e8ca9b8eb1caaa43703f6ce505af78c6e7b9e60b Mon Sep 17 00:00:00 2001 From: Paul Smith Date: Wed, 16 Feb 2005 05:03:42 +0000 Subject: 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. --- ChangeLog | 9 +++++++++ configure.in | 6 +++--- doc/make.texi | 6 ++++-- main.c | 22 ++++++++++++++++++++++ 4 files changed, 38 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index dc4c899..108cbc0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1334,6 +1334,15 @@ * i18n/ja.po: Installed an updated translation. +2001-09-06 Paul Eggert + + * configure.in (AC_CHECK_HEADERS): Add sys/resource.h. + (AC_CHECK_FUNCS): Add getrlimit, setrlimit. + + * main.c: Include if it, getrlimit, and setrlimit + are available. + (main): Get rid of any avoidable limit on stack size. + 2001-09-04 Paul D. Smith * i18n/da.po: Installed an updated translation. diff --git a/configure.in b/configure.in index 4bad3e2..a8c35ec 100644 --- a/configure.in +++ b/configure.in @@ -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 diff --git a/doc/make.texi b/doc/make.texi index 8c367ba..9b6f9d8 100644 --- a/doc/make.texi +++ b/doc/make.texi @@ -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 diff --git a/main.c b/main.c index 726729b..33c15b4 100644 --- a/main.c +++ b/main.c @@ -46,6 +46,14 @@ MA 02111-1307, USA. */ # include #endif +#if defined(HAVE_SYS_RESOURCE_H) && defined(HAVE_GETRLIMIT) && defined(HAVE_SETRLIMIT) +# define SET_STACK_SIZE +#endif + +#ifdef SET_STACK_SIZE +# include +#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); -- cgit v1.2.3