[PATCH] libio: Add small optimization on fmemopen

Florian Weimer fw@deneb.enyo.de
Fri Sep 23 20:38:00 GMT 2016


* Ondřej Bílka:

> On Fri, Sep 23, 2016 at 07:34:24AM +0200, Florian Weimer wrote:
>> On 09/23/2016 07:17 AM, Ondřej Bílka wrote:
>> >>  size_t clen = sizeof (fmemopen_cookie_t);
>> >>  if (FLEXMEMBER_NEEDS_ALIGNMENT)
>> >>    clen += _Alignof (fmemopen_cookie_t) - 1;
>> >
>> >Couldn't you just use __attribute__((aligned(16))) or is that also
>> >buggy?
>> 
>> Buggy in what sense?
>> 
>> malloc isn't guaranteed to provide 16-byte alignment on all glibc
>> architectures.
>> 
> Buggy in sense that some gcc version would ignore it. I picked 16 to
> have same alignment as malloc does as 16 is max granularity of malloc.

malloc granularity can be as low as 2 (on m68k) without impacting C
conformance, and an interposed malloc implementation might provide
just that.

On most 32-bit platforms, glibc's own malloc provides only 8-byte
alignment.



More information about the Libc-alpha mailing list