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.