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