[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