summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2005-02-16 05:03:42 +0000
committerPaul Smith <psmith@gnu.org>2005-02-16 05:03:42 +0000
commite8ca9b8eb1caaa43703f6ce505af78c6e7b9e60b (patch)
tree06c563611aef3116a6f2de2844082f4609982039
parentc90f47e8320b41e3a5bfeb654543d9474f763e5d (diff)
downloadgunmake-e8ca9b8eb1caaa43703f6ce505af78c6e7b9e60b.tar.gz
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.
-rw-r--r--ChangeLog9
-rw-r--r--configure.in6
-rw-r--r--doc/make.texi6
-rw-r--r--main.c22
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 <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.
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 <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);