[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r111152: Simplify get_lim_data.
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r111152: Simplify get_lim_data. |
Date: |
Fri, 07 Dec 2012 22:56:26 -0800 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 111152
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Fri 2012-12-07 22:56:26 -0800
message:
Simplify get_lim_data.
* admin/CPP-DEFINES (ULIMIT_BREAK_VALUE): Remove.
* configure.ac (ULIMIT_BREAK_VALUE): Remove.
* src/vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
Remove USG and vlimit methods; no longer used these days.
Add #error catchall just in case.
modified:
ChangeLog
admin/CPP-DEFINES
admin/ChangeLog
configure.ac
src/ChangeLog
src/vm-limit.c
=== modified file 'ChangeLog'
--- a/ChangeLog 2012-12-08 02:30:51 +0000
+++ b/ChangeLog 2012-12-08 06:56:26 +0000
@@ -1,5 +1,8 @@
2012-12-08 Paul Eggert <address@hidden>
+ Simplify get_lim_data.
+ * configure.ac (ULIMIT_BREAK_VALUE): Remove.
+
Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
* configure.ac (PTY_OPEN, PTY_TTY_NAME_SPRINTF):
Use SIGCHLD rather than SIGCLD.
=== modified file 'admin/CPP-DEFINES'
--- a/admin/CPP-DEFINES 2012-12-08 02:30:51 +0000
+++ b/admin/CPP-DEFINES 2012-12-08 06:56:26 +0000
@@ -429,7 +429,6 @@
TIME_WITH_SYS_TIME
TIOCSIGSEND
TM_IN_SYS_TIME
-ULIMIT_BREAK_VALUE
UNIX98_PTYS
USE_TOOLKIT_SCROLL_BARS
USG_SUBTTY_WORKS
=== modified file 'admin/ChangeLog'
--- a/admin/ChangeLog 2012-12-08 02:30:51 +0000
+++ b/admin/ChangeLog 2012-12-08 06:56:26 +0000
@@ -1,3 +1,8 @@
+2012-12-08 Paul Eggert <address@hidden>
+
+ Simplify get_lim_data.
+ * CPP-DEFINES (ULIMIT_BREAK_VALUE): Remove.
+
2012-12-03 Paul Eggert <address@hidden>
Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
=== modified file 'configure.ac'
--- a/configure.ac 2012-12-08 02:30:51 +0000
+++ b/configure.ac 2012-12-08 06:56:26 +0000
@@ -3688,7 +3688,6 @@
esac
-AH_TEMPLATE(ULIMIT_BREAK_VALUE, [Undocumented.])
AH_TEMPLATE(TAB3, [Undocumented.])
case $opsys in
@@ -3700,14 +3699,6 @@
;;
gnu-linux | gnu-kfreebsd )
- dnl libc-linux/sysdeps/linux/i386/ulimit.c says that due to shared
- dnl library, we cannot get the maximum address for brk.
- AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
-#ifndef __i386__
-# error "not i386"
-#endif
- ]], [[]])], AC_DEFINE(ULIMIT_BREAK_VALUE, [(32*1024*1024)]), [])
-
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([[
#ifndef __ia64__
# error "not ia64"
@@ -3721,11 +3712,6 @@
AC_DEFINE(RUN_TIME_REMAP, 1, [Define if emacs.c needs to call
run_time_remap; for HPUX.])
;;
-
- irix6-5)
- dnl Ulimit(UL_GMEMLIM) is busted...
- AC_DEFINE(ULIMIT_BREAK_VALUE, [0x14000000])
- ;;
esac
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2012-12-08 02:30:51 +0000
+++ b/src/ChangeLog 2012-12-08 06:56:26 +0000
@@ -1,5 +1,10 @@
2012-12-08 Paul Eggert <address@hidden>
+ Simplify get_lim_data.
+ * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
+ Remove USG and vlimit methods; no longer used these days.
+ Add #error catchall just in case.
+
Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
=== modified file 'src/vm-limit.c'
--- a/src/vm-limit.c 2012-10-17 19:02:44 +0000
+++ b/src/vm-limit.c 2012-12-08 06:56:26 +0000
@@ -44,46 +44,26 @@
static size_t lim_data;
-#if defined (HAVE_GETRLIMIT) && defined (RLIMIT_AS)
+#ifdef HAVE_GETRLIMIT
+
+# ifndef RLIMIT_AS
+# define RLIMIT_AS RLIMIT_DATA
+# endif
+
static void
get_lim_data (void)
{
+ /* Set LIM_DATA to the minimum of the maximum object size and the
+ maximum address space. Don't bother to check for values like
+ RLIM_INFINITY since in practice they are not much less than SIZE_MAX. */
struct rlimit rlimit;
-
- getrlimit (RLIMIT_AS, &rlimit);
- if (rlimit.rlim_cur == RLIM_INFINITY)
- lim_data = -1;
- else
- lim_data = rlimit.rlim_cur;
-}
-
-#else /* not HAVE_GETRLIMIT */
-
-#ifdef USG
-
-static void
-get_lim_data (void)
-{
- extern long ulimit ();
-
- lim_data = -1;
-
- /* Use the ulimit call, if we seem to have it. */
-#if !defined (ULIMIT_BREAK_VALUE) || defined (GNU_LINUX)
- lim_data = ulimit (3, 0);
-#endif
-
- /* If that didn't work, just use the macro's value. */
-#ifdef ULIMIT_BREAK_VALUE
- if (lim_data == -1)
- lim_data = ULIMIT_BREAK_VALUE;
-#endif
-
- lim_data -= (long) data_space_start;
-}
-
-#else /* not USG */
-#ifdef WINDOWSNT
+ lim_data
+ = (getrlimit (RLIMIT_AS, &rlimit) == 0 && rlimit.rlim_cur <= SIZE_MAX
+ ? rlimit.rlim_cur
+ : SIZE_MAX);
+}
+
+#elif defined WINDOWSNT
#include "w32heap.h"
@@ -94,10 +74,8 @@
lim_data = reserved_heap_size;
}
-#else
-#if !defined (BSD4_2) && !defined (CYGWIN)
+#elif defined MSDOS
-#ifdef MSDOS
void
get_lim_data (void)
{
@@ -135,32 +113,9 @@
get_lim_data ();
return lim_data;
}
-#else /* not MSDOS */
-static void
-get_lim_data (void)
-{
- lim_data = vlimit (LIM_DATA, -1);
-}
-#endif /* not MSDOS */
-
-#else /* BSD4_2 || CYGWIN */
-
-static void
-get_lim_data (void)
-{
- struct rlimit XXrlimit;
-
- getrlimit (RLIMIT_DATA, &XXrlimit);
-#ifdef RLIM_INFINITY
- lim_data = XXrlimit.rlim_cur & RLIM_INFINITY; /* soft limit */
#else
- lim_data = XXrlimit.rlim_cur; /* soft limit */
+# error "get_lim_data not implemented on this machine"
#endif
-}
-#endif /* BSD4_2 */
-#endif /* not WINDOWSNT */
-#endif /* not USG */
-#endif /* not HAVE_GETRLIMIT */
/* Verify amount of memory available, complaining if we're near the end. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r111152: Simplify get_lim_data.,
Paul Eggert <=