[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
Fri Nov 30 18:04:42 CET 2007


On Fri, 2007-11-30 at 12:26 +0100, Michael Niedermayer wrote:
> On Thu, Nov 29, 2007 at 03:53:47PM -0700, Loren Merritt wrote:
> > (1) static (like it was before)
> > (2) #pragma GCC visibility ...
> > (3) ld -Bsymbolic
> > (4) ld --version-script ...
> > (5) implement full PIC access (double deference, not just rip-relative).
> > 
> > (2) obvisouly requires gcc. (3) and (4) require GNU ld. (5) makes the 
> > shared library slower (I have no idea how much).

Would (3) or (4) actually fix compilation in this case? I think the
addressing mode generated by the compiler causes the problems and AFAIK
the linker wouldn't change that.

> id accept a patch with (3) as well as (1) and reject (5) dunno about the
> others
> 
> also i suspect (3) could lead to some speedups for shared libs ...

Any linker stuff like (3) or (4) cannot give the full available speedup;
for that the addressing mode needs to be known at compile time. As I
wrote in another message the visibility should be marked in the headers
with either a pragma changing default visibility or a per-symbol macro.
Those produce identical results but differ in code maintenance
qualities.





More information about the ffmpeg-devel mailing list