I noticed that the shared libraries coming with the installation have version information set on them. Also, very good. But I was very surprised to see how these versions were implemented in the names of the files.
[bash][Eowyn]:~ > ls -l /Applications/root_v6.20.00/lib/libCore*
-rwxr-xr-x 1 root wheel 4678540 Feb 26 22:38 /Applications/root_v6.20.00/lib/libCore.6.20.00.so
lrwxr-xr-x 1 root wheel 18 Mar 11 14:16 /Applications/root_v6.20.00/lib/libCore.6.20.so -> libCore.6.20.00.so
-rw-r--r-- 1 root wheel 15597 Feb 26 22:14 /Applications/root_v6.20.00/lib/libCore.rootmap
lrwxr-xr-x 1 root wheel 15 Mar 11 14:16 /Applications/root_v6.20.00/lib/libCore.so -> libCore.6.20.so
[bash][Eowyn]:~ >
Is Apple different in this as well? I would’ve expected the main library to be called libCore.so.6.20.00, and the “SOVERSION library” library to be called libCore.so.6.20. Is this something that I just never came across, or did the build (that produced the centrally placed binary) do something non-standard here?
Yes, on Mac library versions come before the extension instead of after it. You may want to take a look at https://autotools.io/libtool/version.html for further information on library versioning. Cheers,