[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
Loren Merritt
lorenm
Sat Dec 1 23:00:01 CET 2007
On Sat, 1 Dec 2007, Uoti Urpala wrote:
> On Sat, 2007-12-01 at 11:57 -0700, Loren Merritt wrote:
>>
>> What is full visibility information?
>> Why does -fvisibility apply only to symbols uses in the same file, and
>> what is the alternative that applies to all symbols?
>
> -fvisibility cannot apply to declarations for things defined in other
> files because files will very likely include declarations for symbols
> which are NOT defined in the same library (such as libc functions). See
> http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2007-May/029197.html
>
>> AFAICT, x264's visibility situation is very simple: One pragma in x264.h
>> to mark the api as public, and gcc -fvisibility to mark everything else as
>> hidden.
>
> That'll mark all the symbols hidden, but the generated code still won't
> access them directly except those defined in the same translation unit.
Then -fvisibility works for functions (hidden functions get resolved at
link time even without -Bsymbolic). Only nonstatic global data needs
visibility info in the declaration. And x264 doesn't use nonstatic global
data, so my benchmark didn't show how much extra penalty that would cause
that full visibility would fix.
--Loren Merritt
More information about the ffmpeg-devel
mailing list