diff options
| author | David Lamparter <equinox@opensourcerouting.org> | 2018-08-08 16:33:13 +0200 |
|---|---|---|
| committer | David Lamparter <equinox@opensourcerouting.org> | 2018-08-08 20:17:55 +0200 |
| commit | fa896a1d807248b8bd3343b77f8668d80de1ec98 (patch) | |
| tree | b0c55bc77bc108b1f6b25d4b6dbb5b4d53b47eea | |
| parent | 09890489cc002de1901df3b12328b562c9fcd573 (diff) | |
build: rework mallinfo test & find malloc_size
Signed-off-by: David Lamparter <equinox@diac24.net>
| -rwxr-xr-x | configure.ac | 61 | ||||
| -rw-r--r-- | lib/memory_vty.c | 7 |
2 files changed, 57 insertions, 11 deletions
diff --git a/configure.ac b/configure.ac index f65b1640d2..370b3bab58 100755 --- a/configure.ac +++ b/configure.ac @@ -1811,15 +1811,58 @@ dnl order to check no alternative allocator dnl has been specified, which might not provide dnl mallinfo, e.g. such as Umem on Solaris. dnl ----------------------------------------- -AC_CHECK_HEADER([malloc.h], - [AC_MSG_CHECKING(whether mallinfo is available) - AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <malloc.h>]], - [[struct mallinfo ac_x; ac_x = mallinfo ();]])], - [AC_MSG_RESULT(yes) - AC_DEFINE(HAVE_MALLINFO,,mallinfo)], - AC_MSG_RESULT(no) - ) - ], [], FRR_INCLUDES) +AC_CHECK_HEADERS([malloc.h malloc/malloc.h],,, [FRR_INCLUDES]) + +AC_MSG_CHECKING(whether mallinfo is available) +AC_LINK_IFELSE([AC_LANG_PROGRAM([FRR_INCLUDES [ +#ifdef HAVE_MALLOC_H +#include <malloc.h> +#endif +#ifdef HAVE_MALLOC_MALLOC_H +#include <malloc/malloc.h> +#endif +]], [[ +struct mallinfo ac_x; ac_x = mallinfo (); +]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_MALLINFO,,mallinfo) +], [ + AC_MSG_RESULT(no) +]) + +AC_MSG_CHECKING(whether malloc_usable_size is available) +AC_LINK_IFELSE([AC_LANG_PROGRAM([FRR_INCLUDES [ +#ifdef HAVE_MALLOC_H +#include <malloc.h> +#endif +#ifdef HAVE_MALLOC_MALLOC_H +#include <malloc/malloc.h> +#endif +]], [[ +size_t ac_x; ac_x = malloc_usable_size(NULL); +]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_MALLOC_USABLE_SIZE,,malloc_usable_size) +], [ + AC_MSG_RESULT(no) + + AC_MSG_CHECKING(whether malloc_size is available) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#ifdef HAVE_MALLOC_H +#include <malloc.h> +#endif +#ifdef HAVE_MALLOC_MALLOC_H +#include <malloc/malloc.h> +#endif +]], [[ +size_t ac_x; ac_x = malloc_size(NULL); +]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_MALLOC_SIZE,,malloc_size) + ], [ + AC_MSG_RESULT(no) + ]) +]) dnl ------ dnl ZeroMQ diff --git a/lib/memory_vty.c b/lib/memory_vty.c index 972914bf24..388273128e 100644 --- a/lib/memory_vty.c +++ b/lib/memory_vty.c @@ -21,9 +21,12 @@ #include <zebra.h> /* malloc.h is generally obsolete, however GNU Libc mallinfo wants it. */ -#if (defined(GNU_LINUX) && defined(HAVE_MALLINFO)) +#ifdef HAVE_MALLOC_H #include <malloc.h> -#endif /* HAVE_MALLINFO */ +#endif +#ifdef HAVE_MALLOC_MALLOC_H +#include <malloc/malloc.h> +#endif #include <dlfcn.h> #include <link.h> |
