Add HAVE_MREMAP for mremap usage

Introduce (only on Linux) and use a HAVE_MREMAP symbol to advertize mremap
availability.

Move the malloc-sysdep.h include from arena.c to malloc.c, since what is
provided by malloc-sysdep.h is needed earlier in malloc.c, before the inclusion
of arena.c.
This commit is contained in:
Pino Toscano 2013-01-17 21:08:12 +01:00
parent d542f8ed21
commit 2a26ef3a01
4 changed files with 13 additions and 11 deletions

View File

@ -1,3 +1,10 @@
2013-01-17 Pino Toscano <toscano.pino@tiscali.it>
* sysdeps/unix/sysv/linux/malloc-sysdep.h (HAVE_MREMAP): New define.
* malloc/malloc.c: Include <unistd.h> and <malloc-sysdep.h>.
[!HAVE_MREMAP]: Remove [defined linux] case.
* malloc/arena.c: Do not include <malloc-sysdep.h>.
2013-01-17 Siddhesh Poyarekar <siddhesh@redhat.com> 2013-01-17 Siddhesh Poyarekar <siddhesh@redhat.com>
* sysdeps/ieee754/dbl-64/mpa.c: Fix header comment. * sysdeps/ieee754/dbl-64/mpa.c: Fix header comment.

View File

@ -19,9 +19,6 @@
#include <stdbool.h> #include <stdbool.h>
/* Get the implementation for check_may_shrink_heap. */
#include <malloc-sysdep.h>
/* Compile-time constants. */ /* Compile-time constants. */
#define HEAP_MIN_SIZE (32*1024) #define HEAP_MIN_SIZE (32*1024)

View File

@ -168,7 +168,7 @@
Compilation Environment options: Compilation Environment options:
HAVE_MREMAP 0 unless linux defined HAVE_MREMAP 0
Changing default word sizes: Changing default word sizes:
@ -214,8 +214,10 @@
#include <stddef.h> /* for size_t */ #include <stddef.h> /* for size_t */
#include <stdlib.h> /* for getenv(), abort() */ #include <stdlib.h> /* for getenv(), abort() */
#include <unistd.h> /* for __libc_enable_secure */
#include <malloc-machine.h> #include <malloc-machine.h>
#include <malloc-sysdep.h>
#include <atomic.h> #include <atomic.h>
#include <_itoa.h> #include <_itoa.h>
@ -490,19 +492,13 @@ void *(*__morecore)(ptrdiff_t) = __default_morecore;
/* /*
Define HAVE_MREMAP to make realloc() use mremap() to re-allocate Define HAVE_MREMAP to make realloc() use mremap() to re-allocate
large blocks. This is currently only possible on Linux with large blocks.
kernel versions newer than 1.3.77.
*/ */
#ifndef HAVE_MREMAP #ifndef HAVE_MREMAP
#ifdef linux
#define HAVE_MREMAP 1
#else
#define HAVE_MREMAP 0 #define HAVE_MREMAP 0
#endif #endif
#endif /* HAVE_MREMAP */
/* /*
This version of malloc supports the standard SVID/XPG mallinfo This version of malloc supports the standard SVID/XPG mallinfo

View File

@ -55,3 +55,5 @@ check_may_shrink_heap (void)
return may_shrink_heap; return may_shrink_heap;
} }
#define HAVE_MREMAP 1