summary refs log tree commit diff
path: root/elf/dl-minimal.c
diff options
context:
space:
mode:
Diffstat (limited to 'elf/dl-minimal.c')
-rw-r--r--elf/dl-minimal.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c
index 2e45fc0a65..893a3b1f2e 100644
--- a/elf/dl-minimal.c
+++ b/elf/dl-minimal.c
@@ -46,8 +46,9 @@ extern unsigned long int weak_function strtoul (const char *nptr,
 						char **endptr, int base);
 
 
+/* Allocate an aligned memory block.  */
 void * weak_function
-malloc (size_t n)
+__libc_memalign (size_t align, size_t n)
 {
 #ifdef MAP_ANON
 #define	_dl_zerofd (-1)
@@ -70,8 +71,8 @@ malloc (size_t n)
     }
 
   /* Make sure the allocation pointer is ideally aligned.  */
-  alloc_ptr = (void *) 0 + (((alloc_ptr - (void *) 0) + sizeof (double) - 1)
-			    & ~(sizeof (double) - 1));
+  alloc_ptr = (void *) 0 + (((alloc_ptr - (void *) 0) + align - 1)
+			    & ~(align - 1));
 
   if (alloc_ptr + n >= alloc_end)
     {
@@ -91,6 +92,12 @@ malloc (size_t n)
   return alloc_last_block;
 }
 
+void * weak_function
+malloc (size_t n)
+{
+  return __libc_memalign (sizeof (double), n);
+}
+
 /* We use this function occasionally since the real implementation may
    be optimized when it can assume the memory it returns already is
    set to NUL.  */
@@ -124,15 +131,6 @@ realloc (void *ptr, size_t n)
   assert (new == ptr);
   return new;
 }
-
-/* Return alligned memory block.  */
-void * weak_function
-__libc_memalign (size_t align, size_t n)
-{
-  void *newp = malloc (n + align - 1);
-
-  return (void *) roundup ((uintptr_t) newp, align);
-}
 
 /* Avoid signal frobnication in setjmp/longjmp.  Keeps things smaller.  */