aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2012-05-21 11:13:10 -0700
committerRoland McGrath <roland@hack.frob.com>2012-05-21 11:13:10 -0700
commitcbc00a03986c5890f0a9d2c7cdac26b7606fe98c (patch)
tree864ed2965fbee17dabb6483a0359921fed969cf0
parent478143fa1706a0212366dfa4d9bcf3d8334ca131 (diff)
downloadglibc-cbc00a03986c5890f0a9d2c7cdac26b7606fe98c.zip
glibc-cbc00a03986c5890f0a9d2c7cdac26b7606fe98c.tar.gz
glibc-cbc00a03986c5890f0a9d2c7cdac26b7606fe98c.tar.bz2
Set MALLOC_ALIGNMENT to at least __alignof__ (long double) for new ABIs.
-rw-r--r--ChangeLog9
-rw-r--r--malloc/malloc.c24
2 files changed, 22 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 8b4c591..2e2beed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2012-05-21 Roland McGrath <roland@hack.frob.com>
+
+ * malloc/malloc.c [!SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_16)]
+ (MALLOC_ALIGNMENT): Set it to the greater of 2 * SIZE_SZ and
+ __alignof__ (long double).
+
2012-05-21 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* sysdeps/powerpc/fpu/libm-test-ulps: Update.
@@ -22,7 +28,8 @@
* sysdeps/sparc/sysdep.h: ... here. Include it.
* sysdeps/unix/sysv/linux/s390/bits/hwcap.h: New file.
* sysdeps/unix/sysv/linux/i386/nptl/libc.abilist: Update.
- * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist: Update.
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/nptl/libc.abilist:
+ Update.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/nptl/libc.abilist: Update.
* sysdeps/unix/sysv/linux/s390/s390-32/nptl/libc.abilist: Update.
* sysdeps/unix/sysv/linux/s390/s390-64/nptl/libc.abilist: Update.
diff --git a/malloc/malloc.c b/malloc/malloc.c
index abe3872..c216d26 100644
--- a/malloc/malloc.c
+++ b/malloc/malloc.c
@@ -337,16 +337,20 @@ __malloc_assert (const char *assertion, const char *file, unsigned int line,
#ifndef MALLOC_ALIGNMENT
-/* XXX This is the correct definition. 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/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)
-*/
-#define MALLOC_ALIGNMENT (2 * SIZE_SZ)
+# 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
#endif
/* The corresponding bit mask value */