[Ffmpeg-devel] Re: [Ffmpeg-cvslog] r8420 - trunk/libavcodec/dv.c

Roman Shaposhnik rvs
Sun Mar 25 20:15:15 CEST 2007


On Sun, 2007-03-25 at 15:40 +0300, Uoti Urpala wrote:
> On Sun, 2007-03-25 at 12:06 +0100, Guillaume POIRIER wrote:
> > On 3/25/07, Roman Shaposhnik <rvs at sun.com> wrote:
> > > On Fri, 2007-03-16 at 00:45 +0100, gpoirier wrote:
> > > > -    assert((((int)block) & 7) == 0);
> > > > +    assert((((int)block) & 15) == 0);
> > >
> > >   Are you sure this works? I see no way of aligning anything on the
> > > x86 stack for more than 8. And even that is kind of iffy, given
> > > that the x86 ABI mandates an alignment of 4.
> 
> The de facto ABI on current Linux is 16 byte stack alignment. On OS X
> the 16 byte alignment requirement has been in the official ABI from the
> start AFAIK.

  Two things:
    * that would be just TWO of platforms libavcodec supports.
    * could you, please, send me a pointer to Mac OSX ABI 
      mandating 16 byte alignment ?

> I think the only sane way to work with the current gcc is to assume that
> the stack _will_ be 16-byte aligned inside FFmpeg. 

  I still think it is a dangerous assumption. And I still think if
the code relies on compiler magic that is clearly broken we shouldn't be
using it. But it isn't my call.

Thanks,
Roman.





More information about the ffmpeg-devel mailing list