Document FF_SYMVER and attribute_used
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 16 Jun 2010 04:53:09 +0000 (04:53 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 16 Jun 2010 04:53:09 +0000 (04:53 +0000)
Originally committed as revision 23622 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavutil/internal.h

index b361f72..08a34a6 100644 (file)
 #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))
 #   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);  \