aboutsummaryrefslogtreecommitdiff
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 2e45fc0..893a3b1 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. */