On Apr 26, 2018, at 01:03, Jan Stary wrote:

> BTW, what's with the version numbers in e.g.
> otool -L /opt/local/bin/openssl:
> /opt/local/lib/libssl.45.dylib (compatibility version 46.0.0, current version 
> 46.1.0)
> 
> libssl.45.dylib is what the vanilla tarball itself produces.
> Where exactly do the numbers 46.0.0 and 46.1.0 come from?

45, in the install_name, is the library's major version number. If the major 
version or any other part of the install_name changes, anything using the 
library must be rebuilt.

46.1.0 is the library's current minor version number. It need have no 
relationship to the major version number.

46.0.0 is the library's compatibility minor version number. If I have 
libssl.45.dylib 46.1.0 on my system and I compile a program, and I distribute 
it to you, and you have libssl.45.dylib 46.0.0 on your system, you can run the 
problem, because 46.1.0 is compatible with 46.0.0. If you have libssl.45.dylib 
with a compatibility version earlier than 46.0.0, you cannot run the program 
because your library is not compatible with mine.


Reply via email to