diff --git a/Documentation/internals/contributing/libopenvswitch-abi.rst b/Documentation/internals/contributing/libopenvswitch-abi.rst index 845d90898..8fa24db96 100644 --- a/Documentation/internals/contributing/libopenvswitch-abi.rst +++ b/Documentation/internals/contributing/libopenvswitch-abi.rst @@ -87,16 +87,18 @@ ABI Policy ---------- Open vSwitch will export the ABI version at the time of release, such that the -library name will be the major version, and the rest of the release version -information will be conveyed with a libtool interface version. +library name will be the major.minor version, and the rest of the release +version information will be conveyed with a libtool interface version. The intent is for Open vSwitch to maintain an ABI stability for each minor revision only (so that Open vSwitch release 2.5 carries a guarantee for all -2.5.ZZ micro-releases). This means that any porting effort to stable branches -must take not to disrupt the existing ABI. Each new 'minor-level' release -bumps the libtool 'current' version, which informs the linker of a backwards -incompatible interface, signaling that libraries exposed by Open vSwitch 2.6 -will not maintain ABI stability with Open vSwitch 2.5. +2.5.ZZ micro-releases). This means that any porting effort to stable branches +must take not to disrupt the existing ABI. + +In the event that a bug must be fixed in a backwards-incompatible way, +developers must bump the libtool 'current' version to inform the linker of the +ABI breakage. This will signal that libraries exposed by the subsequent release +will not maintain ABI stability with the previous version. Coding ------- diff --git a/m4/openvswitch.m4 b/m4/openvswitch.m4 index 48892f9f7..648750ab5 100644 --- a/m4/openvswitch.m4 +++ b/m4/openvswitch.m4 @@ -614,9 +614,9 @@ AC_DEFUN([OVS_LIBTOOL_VERSIONS], OVS_MAJOR=`echo "$PACKAGE_VERSION" | sed -e 's/[[.]].*//'` OVS_MINOR=`echo "$PACKAGE_VERSION" | sed -e "s/^$OVS_MAJOR//" -e 's/^.//' -e 's/[[.]].*//'` OVS_MICRO=`echo "$PACKAGE_VERSION" | sed -e "s/^$OVS_MAJOR.$OVS_MINOR//" -e 's/^.//' -e 's/[[^0-9]].*//'` - OVS_LT_RELINFO="-release $OVS_MAJOR" - OVS_LT_VERINFO="-version-info $OVS_MINOR:$OVS_MICRO" + OVS_LT_RELINFO="-release $OVS_MAJOR.$OVS_MINOR" + OVS_LT_VERINFO="-version-info $LT_CURRENT:$OVS_MICRO" OVS_LTINFO="$OVS_LT_RELINFO $OVS_LT_VERINFO" - AC_MSG_RESULT([libX-$OVS_MAJOR.so.$OVS_MINOR.0.$OVS_MICRO)]) + AC_MSG_RESULT([libX-$OVS_MAJOR.$OVS_MINOR.so.$LT_CURRENT.0.$OVS_MICRO)]) AC_SUBST(OVS_LTINFO) ])