aboutsummaryrefslogtreecommitdiff
path: root/malloc/malloc.c
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2016-05-24 08:05:15 +0200
committerFlorian Weimer <fweimer@redhat.com>2016-05-24 08:05:15 +0200
commitdea39b13e2958a7f0e75b5594a06d97d61cc439f (patch)
tree09260fd3d3ac770d9f4ee34ce02d070b1688b4cd /malloc/malloc.c
parentdb1fa6b8d32a0c7155dcaed2f5f9388511613595 (diff)
downloadglibc-dea39b13e2958a7f0e75b5594a06d97d61cc439f.tar
glibc-dea39b13e2958a7f0e75b5594a06d97d61cc439f.tar.gz
glibc-dea39b13e2958a7f0e75b5594a06d97d61cc439f.tar.bz2
glibc-dea39b13e2958a7f0e75b5594a06d97d61cc439f.zip
malloc: Correct malloc alignment on 32-bit architectures [BZ #6527]
After the heap rewriting added in commit 4cf6c72fd2a482e7499c29162349810029632c3f (malloc: Rewrite dumped heap for compatibility in __malloc_set_state), we can change malloc alignment for new allocations because the alignment of old allocations no longer matters. We need to increase the malloc state version number, so that binaries containing dumped heaps of the new layout will not try to run on previous versions of glibc, resulting in obscure crashes. This commit addresses a failure of tst-malloc-thread-fail on the affected architectures (32-bit ppc and mips) because the test checks pointer alignment.
Diffstat (limited to 'malloc/malloc.c')
-rw-r--r--malloc/malloc.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/malloc/malloc.c b/malloc/malloc.c
index 44524ff984..ead9a21d81 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -352,20 +352,8 @@ __malloc_assert (const char *assertion, const char *file, unsigned int line,
#ifndef MALLOC_ALIGNMENT
-# if !SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_16)
-/* This is the correct definition when there is no past ABI to constrain it.
-
- Among configurations with a past ABI constraint, it differs from
- 2*SIZE_SZ only on powerpc32. For the time being, changing this is
- causing more compatibility problems due to malloc_get_state and
- malloc_set_state than will returning blocks not adequately aligned for
- long double objects under -mlong-double-128. */
-
-# define MALLOC_ALIGNMENT (2 *SIZE_SZ < __alignof__ (long double) \
- ? __alignof__ (long double) : 2 *SIZE_SZ)
-# else
-# define MALLOC_ALIGNMENT (2 *SIZE_SZ)
-# endif
+# define MALLOC_ALIGNMENT (2 * SIZE_SZ < __alignof__ (long double) \
+ ? __alignof__ (long double) : 2 * SIZE_SZ)
#endif
/* The corresponding bit mask value */