[FFmpeg-devel] incorrect compatibility_version of libpostproc.dylib (libav*.dylib too?) on OS X

Hanspeter Niederstrasser fink
Thu Oct 14 15:18:12 CEST 2010


At some point between ffmpeg-0.4-20071217 and ffmpeg-0.5 (I know this 
was a long time ago, but the issue persists through svn tip), 
libpostprocess.dylib went from having a compatability_version of 51.1.0 
to 51.0.0 (which is being set by libpostproc/postprocess.h).  On OS X, 
this will break packages that used to link to old libpostprocess.dylib 
because on OS X, the compat_version of the shared library is hardcoded 
into the linking program, and so this appears as a downgrade and dyld 
will complain.  postprocess.h indicates that LIBPOSTPROC_VERSION_MINOR 
has been bumped to 2 for a while now, but this appears to not be being 
used to set compat_version inside the shared library file.

In fact, it looks like $LIBMAJOR is the only thing being used to set 
compat_version on OS X (based on my reading of config.mak), but this is 
only currently affecting libpostproc.dylib because all the other libav* 
have bumped their major version in the meantime (51.1.0 < 52.0.0).  Can 
a fix be done on libpostproc?  Or would it be useful to add $LIBMINOR 
(or change to $LIBVERSION) to the linker flags (SHFLAGS) in config.mak? 
  Or would this break future updates going forward...?

Below is the output of otool -L on libpostproc.dylib from the various 
versions mentioned:
otool -L libpostproc.51.1.0.dylib (from 0.4-20071217):
     /sw/lib/libpostproc.51.dylib (compatibility version 51.1.0, current 
version 51.1.0)

otool -L /sw/lib/libpostproc.51.dylib (from 0.6):
     /sw/lib/libpostproc.51.dylib (compatibility version 51.0.0, current 
version 51.2.0)

otool -L /src/ffmpeg/build/libpostproc/libpostproc.51.dylib (from svn tip):
     /usr/local/lib/libpostproc.dylib (compatibility version 51.0.0, 
current version 51.2.0)

Hanspeter



More information about the ffmpeg-devel mailing list