From fa896a1d807248b8bd3343b77f8668d80de1ec98 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Wed, 8 Aug 2018 16:33:13 +0200 Subject: [PATCH] build: rework mallinfo test & find malloc_size Signed-off-by: David Lamparter --- configure.ac | 61 +++++++++++++++++++++++++++++++++++++++++------- lib/memory_vty.c | 7 ++++-- 2 files changed, 57 insertions(+), 11 deletions(-) diff --git a/configure.ac b/configure.ac index f65b1640d..370b3bab5 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 ]], - [[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 +#endif +#ifdef HAVE_MALLOC_MALLOC_H +#include +#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 +#endif +#ifdef HAVE_MALLOC_MALLOC_H +#include +#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 +#endif +#ifdef HAVE_MALLOC_MALLOC_H +#include +#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 972914bf2..388273128 100644 --- a/lib/memory_vty.c +++ b/lib/memory_vty.c @@ -21,9 +21,12 @@ #include /* malloc.h is generally obsolete, however GNU Libc mallinfo wants it. */ -#if (defined(GNU_LINUX) && defined(HAVE_MALLINFO)) +#ifdef HAVE_MALLOC_H #include -#endif /* HAVE_MALLINFO */ +#endif +#ifdef HAVE_MALLOC_MALLOC_H +#include +#endif #include #include -- 2.39.2