aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPino Toscano <toscano.pino@tiscali.it>2013-01-17 21:08:12 +0100
committerPino Toscano <toscano.pino@tiscali.it>2013-01-17 21:08:12 +0100
commit2a26ef3a012cc29623423ca52c1cc8001d847d54 (patch)
tree5453e1b7f8268bec96e7f640b8194a0f827ca926
parentd542f8ed21474035990eddbf9dfdf11660692335 (diff)
downloadglibc-2a26ef3a012cc29623423ca52c1cc8001d847d54.zip
glibc-2a26ef3a012cc29623423ca52c1cc8001d847d54.tar.gz
glibc-2a26ef3a012cc29623423ca52c1cc8001d847d54.tar.bz2
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.
-rw-r--r--ChangeLog7
-rw-r--r--malloc/arena.c3
-rw-r--r--malloc/malloc.c12
-rw-r--r--sysdeps/unix/sysv/linux/malloc-sysdep.h2
4 files changed, 13 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 885176a..e7cfb64 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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>
* sysdeps/ieee754/dbl-64/mpa.c: Fix header comment.
diff --git a/malloc/arena.c b/malloc/arena.c
index 0c77802..7d51a9d 100644
--- a/malloc/arena.c
+++ b/malloc/arena.c
@@ -19,9 +19,6 @@
#include <stdbool.h>
-/* Get the implementation for check_may_shrink_heap. */
-#include <malloc-sysdep.h>
-
/* Compile-time constants. */
#define HEAP_MIN_SIZE (32*1024)
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 9188d4e..bbb0353 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -168,7 +168,7 @@
Compilation Environment options:
- HAVE_MREMAP 0 unless linux defined
+ HAVE_MREMAP 0
Changing default word sizes:
@@ -214,8 +214,10 @@
#include <stddef.h> /* for size_t */
#include <stdlib.h> /* for getenv(), abort() */
+#include <unistd.h> /* for __libc_enable_secure */
#include <malloc-machine.h>
+#include <malloc-sysdep.h>
#include <atomic.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
- large blocks. This is currently only possible on Linux with
- kernel versions newer than 1.3.77.
+ large blocks.
*/
#ifndef HAVE_MREMAP
-#ifdef linux
-#define HAVE_MREMAP 1
-#else
#define HAVE_MREMAP 0
#endif
-#endif /* HAVE_MREMAP */
-
/*
This version of malloc supports the standard SVID/XPG mallinfo
diff --git a/sysdeps/unix/sysv/linux/malloc-sysdep.h b/sysdeps/unix/sysv/linux/malloc-sysdep.h
index 0a876df..737ca0e 100644
--- a/sysdeps/unix/sysv/linux/malloc-sysdep.h
+++ b/sysdeps/unix/sysv/linux/malloc-sysdep.h
@@ -55,3 +55,5 @@ check_may_shrink_heap (void)
return may_shrink_heap;
}
+
+#define HAVE_MREMAP 1