[FFmpeg-devel] Round 2: Symbol versioning

Michael Niedermayer michaelni
Sun Dec 27 14:38:31 CET 2009


On Sun, Dec 27, 2009 at 10:35:14AM +0100, Reinhard Tartler wrote:
[...]
> diff --git a/libavcodec/libavcodec.v b/libavcodec/libavcodec.v
> new file mode 100644
> index 0000000..2be912f
> --- /dev/null
> +++ b/libavcodec/libavcodec.v
> @@ -0,0 +1,3 @@
> +LIBAVCODEC_52 {
> +	global: *;
> +};

this is fine but note that to introduce symbol versioning you can only
do above the first time. Subsequent sonames need a dummy entry like
X{};

This is because ld.so slightly favors the first version for binding
unversioned references
(in unchanged gnu ld.so the effect is limited to libs that define
 multiple symbols with the same name)
in my patched version though this is essential so unversioned references
are bound to the correct versioned definition if no unversioned definition
exists across libraries.
(its a ugly hack but ld.so already uses this check and i didnt want to
 introduce another different approuch)
also the empty X version does no harm ...

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I am the wisest man alive, for I know one thing, and that is that I know
nothing. -- Socrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20091227/481df4ca/attachment.pgp>



More information about the ffmpeg-devel mailing list