ROOT library (so)versions

Dear All,

I’ve done something just now that I didn’t do in quite some time, and was a bit surprised…

I downloaded the binary version of ROOT 6.20/00 from https://root.cern/download/root_v6.20.00.macosx64-10.15-clang110.pkg and installed it. So far, so good.

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? :confused: 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?

Cheers,
Attila


Please read tips for efficient and successful posting and posting code

ROOT Version: 6.20/00
Platform: macosx64-10.15
Compiler: Clang 11


Never mind… Apparently Apple is “special” in this as well. :confused: On a Linux machine, I get from CMake what I’m used to:

[bash][thor]:build > ls -l
total 40
-rw-rw-r-- 1 krasznaa krasznaa 11128 Mar 11 15:42 CMakeCache.txt
drwxrwxr-x 5 krasznaa krasznaa  4096 Mar 11 15:42 CMakeFiles
-rw-rw-r-- 1 krasznaa krasznaa  1531 Mar 11 15:42 cmake_install.cmake
lrwxrwxrwx 1 krasznaa krasznaa    19 Mar 11 15:42 libTestLibrary.so -> libTestLibrary.so.1
lrwxrwxrwx 1 krasznaa krasznaa    23 Mar 11 15:42 libTestLibrary.so.1 -> libTestLibrary.so.1.0.0
-rwxrwxr-x 1 krasznaa krasznaa  8552 Mar 11 15:42 libTestLibrary.so.1.0.0
-rw-rw-r-- 1 krasznaa krasznaa  4937 Mar 11 15:42 Makefile
[bash][thor]:build >

But on macOS I get:

[bash][Eowyn]:build > ls -l
total 112
-rw-r--r--   1 krasznaa  staff  13402 11 Mar 15:39 CMakeCache.txt
drwxr-xr-x  12 krasznaa  staff    384 11 Mar 15:39 CMakeFiles
-rw-r--r--   1 krasznaa  staff   5037 11 Mar 15:39 Makefile
-rw-r--r--   1 krasznaa  staff   1394 11 Mar 15:39 cmake_install.cmake
-rwxr-xr-x   1 krasznaa  staff  27064 11 Mar 15:39 libTestLibrary.1.0.0.dylib
lrwxr-xr-x   1 krasznaa  staff     26 11 Mar 15:39 libTestLibrary.1.dylib -> libTestLibrary.1.0.0.dylib
lrwxr-xr-x   1 krasznaa  staff     22 11 Mar 15:39 libTestLibrary.dylib -> libTestLibrary.1.dylib
[bash][Eowyn]:build >

Sorry for the noise…

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,

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.