From b6afd0bf1aee1abcf71ff48e223e9ff627d56092 Mon Sep 17 00:00:00 2001 From: Thomas Graf Date: Thu, 24 Jan 2013 14:34:22 +0100 Subject: [PATCH] Provide better help text when bumping CURRENT,AGE,REVISION Signed-off-by: Thomas Graf --- configure.ac | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/configure.ac b/configure.ac index 9599476..7654b70 100644 --- a/configure.ac +++ b/configure.ac @@ -16,23 +16,23 @@ m4_define([libnl_minor_version], [2]) m4_define([libnl_micro_version], [20]) -# If either revision or age are omitted, they default to 0. Also note that age -# must be less than or equal to the current interface number. +# The following explanation may help to understand the above rules a bit +# better: consider that there are three possible kinds of reactions from +# users of your library to changes in a shared library: # -# Here are a set of rules to help you update your library version information: +# 1. Programs using the previous version may use the new version as drop-in +# replacement, and programs using the new version can also work with the +# previous one. In other words, no recompiling nor relinking is needed. +# In this case, bump revision only, don't touch current nor age. # -# 1. Start with version information of `0:0:0' for each libtool library. -# 2. Update the version information only immediately before a public release -# of your software. More frequent updates are unnecessary, and only -# guarantee that the current interface number gets larger faster. -# 3. If the library source code has changed at all since the last update, then -# increment revision (`c:r:a' becomes `c:r+1:a'). -# 4. If any interfaces have been added, removed, or changed since the last -# update, increment current, and set revision to 0. -# 5. If any interfaces have been added since the last public release, then -# increment age. -# 6. If any interfaces have been removed since the last public release, then -# set age to 0. +# 2. Programs using the previous version may use the new version as drop-in +# replacement, but programs using the new version may use APIs not +# present in the previous one. In other words, a program linking against +# the new version may fail with “unresolved symbols” if linking against +# the old version at runtime: set revision to 0, bump current and age. +# +# 3. Programs may need to be changed, recompiled, relinked in order to use +# the new version. Bump current, set revision and age to 0. m4_define([libnl_lt_current], [216]) m4_define([libnl_lt_revision], [0])