Mercurial > libavutil.hg
comparison internal.h @ 963:bb7159d1f769 libavutil
Improve FF_SYMVER documentation
author | mru |
---|---|
date | Wed, 30 Jun 2010 20:09:55 +0000 |
parents | e34e8d654ded |
children | bbe201fb5a98 |
comparison
equal
deleted
inserted
replaced
962:399b530e8fb2 | 963:bb7159d1f769 |
---|---|
202 # define NULL_IF_CONFIG_SMALL(x) x | 202 # define NULL_IF_CONFIG_SMALL(x) x |
203 #endif | 203 #endif |
204 | 204 |
205 | 205 |
206 /** | 206 /** |
207 * Create a non default alias for a function with specified version. | 207 * Define a function with only the non-default version specified. |
208 * This is needed when symbols are moved from a lib to a dependancy of the lib | 208 * |
209 * because the gnu linker as of 2010 is buggy and fails to dynamicaly link if a symbol | 209 * On systems with ELF shared libraries, all symbols exported from |
210 * is not found in the lib in which it was during link time with enabled versioning | 210 * FFmpeg libraries are tagged with the name and major version of the |
211 * even if a correctly versioned and matching symbol exists in another lib and | 211 * library to which they belong. If a function is moved from one |
212 * even if it did find that would it not contain an explicit check to fail | 212 * library to another, a wrapper must be retained in the original |
213 * location to preserve binary compatibility. | |
214 * | |
215 * Functions defined with this macro will never be used to resolve | |
216 * symbols by the build-time linker. | |
217 * | |
218 * @param type return type of function | |
219 * @param name name of function | |
220 * @param args argument list of function | |
221 * @param ver version tag to assign function | |
213 */ | 222 */ |
214 #if HAVE_SYMVER_ASM_LABEL | 223 #if HAVE_SYMVER_ASM_LABEL |
215 # define FF_SYMVER(type, name, args, ver) \ | 224 # define FF_SYMVER(type, name, args, ver) \ |
216 type ff_##name args __asm__ (EXTERN_PREFIX #name "@" ver); \ | 225 type ff_##name args __asm__ (EXTERN_PREFIX #name "@" ver); \ |
217 type ff_##name args | 226 type ff_##name args |