diff --git a/src/acconfig.h b/src/acconfig.h index 4a6db15a320db5d77eb0d934354a519ca0c8a38f..9ed6da30e769f9dd5a864491af928504692c4cd8 100644 --- a/src/acconfig.h +++ b/src/acconfig.h @@ -647,6 +647,31 @@ /* dlmalloc has mallinfo. */ #if defined(USE_DL_MALLOC) && !defined(HAVE_MALLINFO) #define HAVE_MALLINFO + +#if defined (HAVE_MALLOC_H) && defined (HAVE_STRUCT_MALLINFO) +#include <malloc.h> +#else /* HAVE_MALLOC_H && HAVE_STRUCT_MALLINFO */ + +#ifndef MALLINFO_FIELD_TYPE +#define MALLINFO_FIELD_TYPE size_t +#endif /* MALLINFO_FIELD_TYPE */ + +/* dlmalloc definition of struct mallinfo. */ +struct mallinfo { + MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */ + MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */ + MALLINFO_FIELD_TYPE smblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblks; /* always 0 */ + MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */ + MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */ + MALLINFO_FIELD_TYPE fsmblks; /* always 0 */ + MALLINFO_FIELD_TYPE uordblks; /* total allocated space */ + MALLINFO_FIELD_TYPE fordblks; /* total free space */ + MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */ +}; + +#endif /* HAVE_USR_INCLUDE_MALLOC_H */ + #endif #endif /* MACHINE_H */ diff --git a/src/malloc.c b/src/malloc.c index 034e644204d1b84825b451713d56d79f8d7693a2..2cec7b1062cf39383c14ffb9c3d6be3386c0cd83 100644 --- a/src/malloc.c +++ b/src/malloc.c @@ -625,30 +625,13 @@ DEFAULT_MMAP_THRESHOLD default: 256K /* #define HAVE_USR_INCLUDE_MALLOC_H */ -#ifdef HAVE_USR_INCLUDE_MALLOC_H -#include "/usr/include/malloc.h" - /* PIKE change start */ -#elif defined (HAVE_MALLOC_H) && defined (HAVE_STRUCT_MALLINFO) -#include <malloc.h> -/* PIKE change end */ -#else /* HAVE_USR_INCLUDE_MALLOC_H */ - -struct mallinfo { - MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */ - MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */ - MALLINFO_FIELD_TYPE smblks; /* always 0 */ - MALLINFO_FIELD_TYPE hblks; /* always 0 */ - MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */ - MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */ - MALLINFO_FIELD_TYPE fsmblks; /* always 0 */ - MALLINFO_FIELD_TYPE uordblks; /* total allocated space */ - MALLINFO_FIELD_TYPE fordblks; /* total free space */ - MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */ -}; +/* This is handled by global.h (aka acconfig.h) included + * at the top of the file. + */ -#endif /* HAVE_USR_INCLUDE_MALLOC_H */ +/* PIKE change end */ #endif /* NO_MALLINFO */ #ifdef __cplusplus