xfs
[Top] [All Lists]

Re: [PATCH 08/11] xfsprogs: replace obsolete memalign with posix_memalig

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [PATCH 08/11] xfsprogs: replace obsolete memalign with posix_memalign
From: Jan Tulak <jtulak@xxxxxxxxxx>
Date: Tue, 18 Aug 2015 09:04:24 +0200
Cc: xfs-oss <xfs@xxxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <20150817193624.GA8444@xxxxxxxxxxxxx>
References: <1439828606-7886-1-git-send-email-jtulak@xxxxxxxxxx> <1439828606-7886-9-git-send-email-jtulak@xxxxxxxxxx> <20150817193624.GA8444@xxxxxxxxxxxxx>


On Mon, Aug 17, 2015 at 9:36 PM, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
On Mon, Aug 17, 2015 at 06:23:23PM +0200, Jan Tulak wrote:
> Memalign from <malloc.h> was marked obsolete in favor of a posix
> variant from <stdlib.h>. So replace all calls and remove <malloc.h>
> includes. This also enhances support on other posix platforms,
> which doesn't have <malloc.h>.
>
> Because posix_memalign returns any error as a return code, not in
> errno, change relevant checks in code (and add a missing one).

I have to say I hate the posix_memalign calling convention. Any chance
you could just provide a memalign impementation using posix_memalign for
MacOS?

I thought about it. However, with memalign from malloc marked obsolete
(and with posix_memalign having guaranteed alignment restrictions [1]), I saw it better
to use the posix variant everywhere.

I could make a wrapper simulating the old memalign behaviour, but I don't
think it would make sense.

I searched for this, but didn't find any reasonable answer:
How long can be things in standard libraries marked obsolete before removing?

Cheers,
Jan

[1] man memalign:
   ÂOn many systems there are alignment restrictions, for example, on Âbufâ
   Âfers Âused Âfor Âdirect Âblock Âdevice ÂI/O. POSIX specifies the pathâ
   Âconf(path,_PC_REC_XFER_ALIGN) call that tells what alignment is needed.
   ÂNow one can use posix_memalign() to satisfy this requirement.

   Âposix_memalign() Âverifies Âthat Âalignment Âmatches Âthe Ârequirements
   Âdetailed above. Âmemalign() may not check that the Âalignment Âargument
   Âis correct.

--
<Prev in Thread] Current Thread [Next in Thread>