You are here: Home Support Coin FAQ Other Hows and Whys version numbers
Navigation
Log in


Forgot your password?
 

Why is the .so-version 20 for Coin 1.0 and 40 for Coin 2.0?

This was done to keep the artificial mapping we have constructed between the release version number and ABI interface version of Coin as simple as possible. We have this mapping because we plan to do parallell development of Coin 1.0 and Coin 2.0 at the same time because Coin 1.0 has special status as the Open Inventor 2.1 compatibility release.

Keep in mind that .so-version numbers and release version numbers really do not have anything to do with each other in the first place.

When you release a new major version of a library, you usually break compatibility with earlier versions of the library. When you change the API/ABI of a library, you increment the interface number to indicate that the library has a new interface. Since we want to continue development of Coin 1.0 after Coin 2.0 is released, we need to reserve space for future Coin 1.x releases, and set the Coin 2.0 interface number after the reserved space. We decided 20 interface- numbers would suffice for each major version of the Coin library, and the simplest equation for finding the interface number became major*20+minor.

Incidentally, a lot of platforms (Linux included) calculate the .so-number by taking the interface number and subtracting the age, and the age is the same as the minor release version number for Coin. This will make the .so-number stay at 20 for the whole 1.x series and similarly stay at 40 for the whole 2.x series, which of course looks silly, but that's the way it is.

See also the Libtool manual, section about Versioning. It's the same system, except that we have added reserved space in our scheme.

Other Hows and Whys
Resources