>From 34a992bf8faa8abb66e8666d76f47b685642918f Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 29 Oct 2017 14:33:52 +0100 Subject: [PATCH 4/7] get-rusage-as: Avoid crash on Haiku. --- ChangeLog | 5 +++++ lib/get-rusage-as.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9bfd408..96a2f85 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2017-10-29 Bruno Haible + get-rusage-as: Avoid crash on Haiku. + * lib/get-rusage-as.c: Avoid the setlimit-based implementation. + +2017-10-29 Bruno Haible + ilogbl: Ensure replacement on Haiku. * m4/ilogbl.m4 (gl_FUNC_ILOGBL): Invoke gl_FUNC_ILOGBL_WORKS and set REPLACE_ILOGBL if ilogbl does not work. diff --git a/lib/get-rusage-as.c b/lib/get-rusage-as.c index 5de4e4e..eed2673 100644 --- a/lib/get-rusage-as.c +++ b/lib/get-rusage-as.c @@ -112,7 +112,7 @@ BeOS, Haiku: a) On BeOS, there is no setrlimit function. - On Haiku, setrlimit exists. RLIMIT_AS is defined but unsupported. + On Haiku, setrlimit exists. RLIMIT_AS is defined but setrlimit fails. b) There is a specific BeOS API: get_next_area_info(). */ @@ -150,7 +150,7 @@ #include "vma-iter.h" -#if HAVE_SETRLIMIT && defined RLIMIT_AS && HAVE_SYS_MMAN_H && HAVE_MPROTECT +#if HAVE_SETRLIMIT && defined RLIMIT_AS && HAVE_SYS_MMAN_H && HAVE_MPROTECT && !defined __HAIKU__ static uintptr_t get_rusage_as_via_setrlimit (void) @@ -365,7 +365,7 @@ get_rusage_as (void) /* get_rusage_as_via_setrlimit() does not work. Prefer get_rusage_as_via_iterator(). */ return get_rusage_as_via_iterator (); -#elif HAVE_SETRLIMIT && defined RLIMIT_AS && HAVE_SYS_MMAN_H && HAVE_MPROTECT +#elif HAVE_SETRLIMIT && defined RLIMIT_AS && HAVE_SYS_MMAN_H && HAVE_MPROTECT && !defined __HAIKU__ /* Prefer get_rusage_as_via_setrlimit() if it succeeds, because the caller may want to use the result with setrlimit(). */ uintptr_t result; -- 2.7.4