[FFmpeg-devel] [FFmpeg-cvslog] r11100 - in trunk/libavcodec/i386: cavsdsp_mmx.c dsputil_mmx.c dsputil_mmx.h h264dsp_mmx.c mpegvideo_mmx.c vc1dsp_mmx.c
Uoti Urpala
uoti.urpala
Mon Dec 3 02:15:17 CET 2007
On Sun, 2007-12-02 at 14:26 -0500, Rich Felker wrote:
> > f2:
> > pushl %ebx
> > call __i686.get_pc_thunk.bx
> > addl $_GLOBAL_OFFSET_TABLE_, %ebx
> > subl $8, %esp
> > call e2 at PLT
> > addl $8, %esp
> > popl %ebx
> > ret
> >
> > -fvisibility makes no difference as it cannot affect the external
> > declaration for e2, and the linker cannot change the already generated
> > code for f2.
>
> Well this is gcc being idiotic. There is absolutely no reason for a
> PIC function call to look any different from a non-PIC one to the
> caller. The fixup belongs entirely in the PLT. The call and jmp
More precisely the issue is that any access to symbols that might be in
a different library triggers the addition of the function prologue that
sets %ebx, independently of whether those symbols are functions or data
variables.
More information about the ffmpeg-devel
mailing list