[CMake] Mostly O.T. Need advice on Mac OS X compatibility version for libraries

Alan W. Irwin irwin at beluga.phys.uvic.ca
Wed Apr 2 20:31:14 EDT 2008


We have generally adopted a zero initial major version (SOVERSION in CMake
terms) for PLplot libraries, and that major version persists for many
of our smaller libraries because there have been no API changes for those
libraries since their inception.

However, it has just come to my attention from a fink developer who very
much disliked zero major version numbers and from reading
http://www.finkproject.org/doc/porting/shared.php?phpLang=en that the major
version number must be non-zero for Mac OS X libraries.  Otherwise, it
appears to be interpreted as "some kind of wildcard value".  (Whatever that
means.)

Note, I don't have access to a Mac OS X platform to do any testing of what
happens for a SOVERSION specified as zero, but I assume from the fink
developer's response that CMake simply translates it to an invalid
(according to the above URL) zero major version number for Mac OS X
libraries which in turn causes some kind of linking issue for that platform.

I don't really have any understanding of Mac OS X linking requirements so I
would appreciate comments on this issue from those who do have such
understanding. I realize this issue is mostly off-topic, but there are a lot
of Mac OS X experts here who presumably know about this issue, and the issue
is important for deciding what the minimum SOVERSION should be on
cross-platform (Mac OS X) libraries that are built with CMake.  For example,
if this does turn out to be a serious issue for Mac OS X, should CMake
give a warning if SOVERSION is ever less than 1?

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


More information about the CMake mailing list