about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--malloc/malloc.c2
-rw-r--r--math/libm-test.inc5
3 files changed, 12 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index c3daa748ef..ede6492b5d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2001-02-14  Wolfram Gloger  <wg@malloc.de>
+
+	* malloc/malloc.c (new_heap): When allocating large chunk aligned
+	to HEAP_MAX_SIZE, prefer one with lower address, to avoid `holes'
+	between the heaps.
+
 2001-02-14  Ulrich Drepper  <drepper@redhat.com>
 
 	* math/libm-test.inc (j0_test): Check whether sincos is available.
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 311fd174a4..37249b0c7a 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -2026,7 +2026,7 @@ new_heap(size) size_t size;
      anyway). */
   p1 = (char *)MMAP(0, HEAP_MAX_SIZE<<1, PROT_NONE, MAP_PRIVATE|MAP_NORESERVE);
   if(p1 != MAP_FAILED) {
-    p2 = (char *)(((unsigned long)p1 + HEAP_MAX_SIZE) & ~(HEAP_MAX_SIZE-1));
+    p2 = (char *)(((unsigned long)p1 + (HEAP_MAX_SIZE-1)) & ~(HEAP_MAX_SIZE-1));
     ul = p2 - p1;
     munmap(p1, ul);
     munmap(p2 + HEAP_MAX_SIZE, HEAP_MAX_SIZE - ul);
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 89a21d37cc..867efcd493 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -2857,6 +2857,7 @@ j0_test (void)
 static void
 j1_test (void)
 {
+  FLOAT s, c;
   errno = 0;
   FUNC (sincos) (0, &s, &c);
   if (errno == ENOSYS)
@@ -2890,6 +2891,7 @@ j1_test (void)
 static void
 jn_test (void)
 {
+  FLOAT s, c;
   errno = 0;
   FUNC (sincos) (0, &s, &c);
   if (errno == ENOSYS)
@@ -4014,6 +4016,7 @@ trunc_test (void)
 static void
 y0_test (void)
 {
+  FLOAT s, c;
   errno = 0;
   FUNC (sincos) (0, &s, &c);
   if (errno == ENOSYS)
@@ -4047,6 +4050,7 @@ y0_test (void)
 static void
 y1_test (void)
 {
+  FLOAT s, c;
   errno = 0;
   FUNC (sincos) (0, &s, &c);
   if (errno == ENOSYS)
@@ -4079,6 +4083,7 @@ y1_test (void)
 static void
 yn_test (void)
 {
+  FLOAT s, c;
   errno = 0;
   FUNC (sincos) (0, &s, &c);
   if (errno == ENOSYS)