Mercurial > libavutil.hg
changeset 943:da95a329a6b5 libavutil
Document FF_SYMVER and attribute_used
author | michael |
---|---|
date | Wed, 16 Jun 2010 04:53:09 +0000 |
parents | c8b09f0c66a0 |
children | 90651a771549 |
files | internal.h |
diffstat | 1 files changed, 15 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/internal.h Tue Jun 15 15:24:28 2010 +0000 +++ b/internal.h Wed Jun 16 04:53:09 2010 +0000 @@ -46,6 +46,12 @@ #endif #endif + +/** + * Marks a variable as used and prevents the compiler from optimizing it away. + * This is usefull for asm that accesses varibles in ways that the compiler doesnt + * understand + */ #ifndef attribute_used #if AV_GCC_VERSION_AT_LEAST(3,1) # define attribute_used __attribute__((used)) @@ -196,6 +202,15 @@ # define NULL_IF_CONFIG_SMALL(x) x #endif + +/** + * Create a non default alias for a function with specified version. + * This is needed when symbols are moved from a lib to a dependancy of the lib + * because the gnu linker as of 2010 is buggy and fails to dynamicaly link if a symbol + * is not found in the lib in which it was during link time with enabled versioning + * even if a correctly versioned and matching symbol exists in another lib and + * even if it did find that would it not contain an explicit check to fail + */ #if HAVE_SYMVER_ASM_LABEL # define FF_SYMVER(type, name, args, ver) \ type ff_##name args __asm__ (EXTERN_PREFIX #name "@" ver); \