+2017-04-22 Bruno Haible <bruno@clisp.org>
+
+ get-rusage-data: Avoid warnings on Mac OS X.
+ * lib/get-rusage-data.c: On Mac OS X, don't define
+ get_rusage_data_via_setrlimit nor get_rusage_data_via_iterator.
+ (get_rusage_data) [Mac OS X]: Just return 0.
+
2017-04-22 Bruno Haible <bruno@clisp.org>
xbinary-io: Fix build error.
#include "vma-iter.h"
-#if HAVE_SETRLIMIT && defined RLIMIT_DATA
+#if !(defined __APPLE__ && defined __MACH__) || defined TEST
+/* Implement get_rusage_data_via_setrlimit(). */
-# ifdef _AIX
-# define errno_expected() (errno == EINVAL || errno == EFAULT)
-# else
-# define errno_expected() (errno == EINVAL)
-# endif
+# if HAVE_SETRLIMIT && defined RLIMIT_DATA
+
+# ifdef _AIX
+# define errno_expected() (errno == EINVAL || errno == EFAULT)
+# else
+# define errno_expected() (errno == EINVAL)
+# endif
static uintptr_t
get_rusage_data_via_setrlimit (void)
struct rlimit orig_limit;
-# ifdef __hpux
+# ifdef __hpux
/* On HP-UX 11.00, setrlimit() RLIMIT_DATA of does not work: It cannot
restore the previous limits.
On HP-UX 11.11, setrlimit() RLIMIT_DATA of does not work: It sometimes
|| strcmp (buf.release + strlen (buf.release) - 5, "11.11") == 0))
return 0;
}
-# endif
+# endif
/* Record the original limit. */
if (getrlimit (RLIMIT_DATA, &orig_limit) < 0)
return result;
}
-#else
+# else
static uintptr_t
get_rusage_data_via_setrlimit (void)
return 0;
}
+# endif
+
#endif
-#if VMA_ITERATE_SUPPORTED
+#if !(defined __APPLE__ && defined __MACH__) || defined TEST
+/* Implement get_rusage_data_via_iterator(). */
+
+# if VMA_ITERATE_SUPPORTED
struct locals
{
static uintptr_t
get_rusage_data_via_iterator (void)
{
-# if ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __BEOS__ || defined __HAIKU__
+# if ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || defined __BEOS__ || defined __HAIKU__
/* On native Windows, there is no sbrk() function.
On Haiku, sbrk(0) always returns 0. */
static void *brk_value;
if (brk_value == NULL)
return 0;
}
-# else
+# else
void *brk_value;
brk_value = sbrk (0);
if (brk_value == (void *)-1)
return 0;
-# endif
+# endif
{
struct locals l;
}
}
-#else
+# else
static uintptr_t
get_rusage_data_via_iterator (void)
return 0;
}
+# endif
+
#endif
uintptr_t
get_rusage_data (void)
{
-#if (defined __APPLE__ && defined __MACH__) || defined __CYGWIN__ /* Mac OS X, Cygwin */
+#if (defined __APPLE__ && defined __MACH__) /* Mac OS X */
+ /* get_rusage_data_via_setrlimit() does not work: it always returns 0.
+ get_rusage_data_via_iterator() does not work: it always returns 0x400000.
+ And sbrk() is deprecated. */
+ return 0;
+#elif defined __CYGWIN__ /* Cygwin */
/* get_rusage_data_via_setrlimit() does not work.
Prefer get_rusage_data_via_iterator(). */
return get_rusage_data_via_iterator ();