[FFmpeg-devel] Stack variables alignment check in libavcodec/dsputil.c
Sun Aug 12 11:09:52 CEST 2007
On Sat, Aug 11, 2007 at 08:14:45PM -0300, Ramiro Polla wrote:
> > why is the realignment not always done?
> If ffmpeg.c is compiled with gcc, it will align main() to 16 bytes and
> maintain alignment everywhere. If libavcodec is called from MSVC++,
> these functions will be called with 4-byte alignment. The same happens
> for threads (both in w32threads and pthreads-win32).
how do you know during compilation how libavcodec will be called?
> > what effect does it have on object size?
> .text: unpatched patched
> dsputil.o 0004e270 0004e280
> pthread.o 000003c0 000003d0
> utils.o 000029d0 00002a30
128 bytes difference
please add the realignment unconditionally! 128 bytes arent worth the
time users might end up spending due to some random crash (as well as the
number of bugreports we might get) and as someone else already said
the ABI does not gurantee 16byte alignment so the realignment is needed
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
No snowflake in an avalanche ever feels responsible. -- Voltaire
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: Digital signature
More information about the ffmpeg-devel