http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56726



--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> 2013-03-25 22:07:18 
UTC ---

(In reply to comment #2)

> I'm a bit skeptical of that.  Glibc malloc alignment is 2 * sizeof(void*), and

> void* in X32 is 32 bits.  Unless X32 code uses the x86_64 libc, I am confused.

> 

> PS: Hi, HJ



Hi Chip,



The current glibc has



#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

#endif

Reply via email to