cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: ABI

From: Dan Fandrich <dan_at_coneharvesters.com>
Date: Thu, 11 Oct 2007 11:04:48 -0700

Daniel Stenberg wrote:
> The other day I noticed someone asking about what "guarantees"
> libcurl makes in regard to binary interface between releases etc,
> and I couldn't think of any decent document describing this.

About version numbers, the document states:

  In libcurl land, you really can't tell by the libcurl version number if that
  libcurl is binary compatible or not with another libcurl version.

which is true, but it's something I've felt could be fixed. Only the major
number is ever set on the libcurl library; the two minor numbers are always
zero. That means that it's impossible for someone looking at a libcurl
binary sitting on a disk to know if it's compatible with a given application
binary or not. Setting the minor number on each release would give
each libcurl a unique file name that could even be cross-referenced to a
source release.

The advice from the libtool docs contained in curl/lib/Makefile.am would
solve this, although I think one bit of advice contained there is a too
conservative: if any interfaces are added, then it recommends bumping the
SONAME. The danger, of course, is that you can't mix and match libcurl
versions with the same SONAME; you have to use a version no older than the
one the app was built with. But bumping a minor revision number when
an interface is added could help to reduce the incidence of an older,
incompatible libcurl being used by mistake.

>>> Dan

-- 
http://www.MoveAnnouncer.com              The web change of address service
          Let webmasters know that your web site has moved
Received on 2007-10-11