1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

elf: dl-minimal malloc needs to respect fundamental alignment

The dynamic linker currently uses __libc_memalign for TLS-related
allocations.  The goal is to switch to malloc instead.  If the minimal
malloc follows the ABI fundamental alignment, we can assume that malloc
provides this alignment, and thus skip explicit alignment in a few
cases as an optimization.

It was requested on libc-alpha that MALLOC_ALIGNMENT should be used,
although this results in wasted space if MALLOC_ALIGNMENT is larger
than the fundamental alignment.  (The dynamic linker cannot assume
that the non-minimal malloc will provide an alignment of
MALLOC_ALIGNMENT; the ABI provides _Alignof (max_align_t) only.)
This commit is contained in:
Florian Weimer
2016-08-03 16:11:01 +02:00
parent e7516580ec
commit 5bc17330eb
4 changed files with 62 additions and 64 deletions

View File

@ -27,6 +27,7 @@
#include <sys/types.h>
#include <ldsodefs.h>
#include <_itoa.h>
#include <malloc/malloc-internal.h>
#include <assert.h>
@ -90,7 +91,7 @@ __libc_memalign (size_t align, size_t n)
void * weak_function
malloc (size_t n)
{
return __libc_memalign (sizeof (double), n);
return __libc_memalign (MALLOC_ALIGNMENT, n);
}
/* We use this function occasionally since the real implementation may