|
@@ -700,7 +700,7 @@ index eef2bfd..a21d2ac 100644
|
|
|
#define OUT \
|
|
|
for (map = MAPS; map != NULL; map = map->l_next) \
|
|
|
diff --git a/malloc/arena.c b/malloc/arena.c
|
|
|
-index 5088a25..b3b0e1c 100644
|
|
|
+index 5088a25..33a3879 100644
|
|
|
--- a/malloc/arena.c
|
|
|
+++ b/malloc/arena.c
|
|
|
@@ -21,6 +21,27 @@
|
|
@@ -731,7 +731,7 @@ index 5088a25..b3b0e1c 100644
|
|
|
#define HEAP_MIN_SIZE (32 * 1024)
|
|
|
#ifndef HEAP_MAX_SIZE
|
|
|
# ifdef DEFAULT_MMAP_THRESHOLD_MAX
|
|
|
-@@ -545,33 +566,7 @@ new_heap (size_t size, size_t top_pad)
|
|
|
+@@ -545,17 +566,6 @@ new_heap (size_t size, size_t top_pad)
|
|
|
mapping (on Linux, this is the case for all non-writable mappings
|
|
|
anyway). */
|
|
|
p2 = MAP_FAILED;
|
|
@@ -746,36 +746,18 @@ index 5088a25..b3b0e1c 100644
|
|
|
- p2 = MAP_FAILED;
|
|
|
- }
|
|
|
- }
|
|
|
-- if (p2 == MAP_FAILED)
|
|
|
-- {
|
|
|
-- p1 = (char *) MMAP (0, HEAP_MAX_SIZE << 1, PROT_NONE, MAP_NORESERVE);
|
|
|
-- if (p1 != MAP_FAILED)
|
|
|
-- {
|
|
|
-- p2 = (char *) (((unsigned long) p1 + (HEAP_MAX_SIZE - 1))
|
|
|
-- & ~(HEAP_MAX_SIZE - 1));
|
|
|
-- ul = p2 - p1;
|
|
|
-- if (ul)
|
|
|
-- __munmap (p1, ul);
|
|
|
+ if (p2 == MAP_FAILED)
|
|
|
+ {
|
|
|
+ p1 = (char *) MMAP (0, HEAP_MAX_SIZE << 1, PROT_NONE, MAP_NORESERVE);
|
|
|
+@@ -566,8 +576,6 @@ new_heap (size_t size, size_t top_pad)
|
|
|
+ ul = p2 - p1;
|
|
|
+ if (ul)
|
|
|
+ __munmap (p1, ul);
|
|
|
- else
|
|
|
- aligned_heap_area = p2 + HEAP_MAX_SIZE;
|
|
|
-- __munmap (p2 + HEAP_MAX_SIZE, HEAP_MAX_SIZE - ul);
|
|
|
-- }
|
|
|
-- else
|
|
|
-- {
|
|
|
-+
|
|
|
- /* Try to take the chance that an allocation of only HEAP_MAX_SIZE
|
|
|
- is already aligned. */
|
|
|
- p2 = (char *) MMAP (0, HEAP_MAX_SIZE, PROT_NONE, MAP_NORESERVE);
|
|
|
-@@ -583,8 +578,7 @@ new_heap (size_t size, size_t top_pad)
|
|
|
- __munmap (p2, HEAP_MAX_SIZE);
|
|
|
- return 0;
|
|
|
- }
|
|
|
-- }
|
|
|
-- }
|
|
|
-+
|
|
|
- if (__mprotect (p2, size, PROT_READ | PROT_WRITE) != 0)
|
|
|
- {
|
|
|
- __munmap (p2, HEAP_MAX_SIZE);
|
|
|
+ __munmap (p2 + HEAP_MAX_SIZE, HEAP_MAX_SIZE - ul);
|
|
|
+ }
|
|
|
+ else
|
|
|
diff --git a/nptl/Makefile b/nptl/Makefile
|
|
|
index 57cc8c6..81f1bf4 100644
|
|
|
--- a/nptl/Makefile
|