This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 2/2] manual/memory.texi: Document aligned_alloc.

On Thu, Nov 07, 2013 at 05:37:59PM +0000, Will Newton wrote:
> On 7 November 2013 17:06, Paul Eggert <> wrote:
> > On 11/07/2013 12:33 AM, Will Newton wrote:
> >> The majority of
> >> code out there seems to be using posix_memalign and it is not
> >> deprecated (i.e. it remains in currently applicable standards).
> >> aligned_alloc seems pretty much unused AFAICT.
> >
> > This is mainly because posix_memalign has been there for
> > years and aligned_alloc is new.  The newer interface is clearly better,
> > and the documentation shouldn't recommend the worse interface.
> True, but the question of which is "better" also involves which is
> more portable to currently deployed systems IMO, and I do not have a
> feel for whether aligned_alloc is actually out there and usable on a
> wide variety of systems. C11 is only a couple of years old and only in
> the last few years have we seen a widespread push to use C99 idioms
> and even now there are projects that avoid C99.
Portability depends on tools available. As one can by configure script

#define aligned_alloc memalign

portability is not issue here.

As heretic thougth issue here is that changing configure scripts takes
time and skill and most of time is duplication of work.

Somebody should create and maintain a autoautoconf project that would
generate header with compatibility definitions of functions that are not

Second part is that converting to new interfaces also should be easy but
is not. Converting from obsolete functions to new ones is a repetive
task so there should be a program to do it.

These transformations should be easily done by coccinelle (example for
bzero is below), it is matter of writing collection of transformations,
put it in one place and propagate it to get used.

@@ expression e1, e2; @@

- bzero (e1, e2)
+ memset (e1, 0, e2)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]