#include "mem-limits.h"
+#ifdef HAVE_GETRLIMIT
+#include <sys/resource.h>
+#endif
+
/*
Level number of warnings already issued.
0 -- no warnings issued.
unsigned long five_percent;
unsigned long data_size;
+#ifdef HAVE_GETRLIMIT
+ struct rlimit {
+ rlim_t rlim_cur;
+ rlim_t rlim_max;
+ } rlimit;
+
+ getrlimit (RLIMIT_DATA, &rlimit);
+
+ five_percent = rlimit.rlim_max / 20;
+ data_size = rlimit.rlim_cur;
+
+#else /* not HAVE_GETRLIMIT */
+
if (lim_data == 0)
get_lim_data ();
five_percent = lim_data / 20;
cp = (char *) (*__morecore) (0);
data_size = (char *) cp - (char *) data_space_start;
+#endif /* not HAVE_GETRLIMIT */
+
if (warn_function)
switch (warnlevel)
{