[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