Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 May 2002 14:36:34 +0200
From:      Stijn Hoop <stijn@win.tue.nl>
To:        GB Clark <gclarkii@vsservices.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: shared library versioning in FreeBSD
Message-ID:  <20020506143634.A56935@pcwin002.win.tue.nl>
In-Reply-To: <20020506073021.48a59f9e.gclarkii@vsservices.com>; from gclarkii@vsservices.com on Mon, May 06, 2002 at 07:30:21AM -0500
References:  <20020506121059.A89646@pcwin002.win.tue.nl> <20020506073021.48a59f9e.gclarkii@vsservices.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--G4iJoqBmSsgzjUCe
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Mon, May 06, 2002 at 07:30:21AM -0500, GB Clark wrote:
> On Mon, 6 May 2002 12:10:59 +0200 Stijn Hoop <stijn@win.tue.nl> wrote:
> > I was reading http://abicheck.sourceforge.net/intro.html, and I was
> > wondering why FreeBSD doesn't keep the double digits for dynamic
> > libraries (eg .so.1.2 instead of .so.1). Is there an online reference to
> > a discussion about that somewhere?
>=20
> I would say it is because FreeBSD does not change interfaces between major
> versions.  In otherwords, if you have a libc.so.4 it will work for all
> programs that require a version 4 library.  The internals may change, but=
 the
> interface does not.  If the interface changes, they do a major version bu=
mp.

Yes, that's the idea of course. But as described in the URL above, the
Linux & Solaris guys bump the minor number if the library is still ABI
compatible, but some additions have been made to the interface. Old
applications should of course still work in that case, but new applications
can make the distinction between the newer and the older version. I can't
find an equivalent 'marker' for that in FreeBSD.

> > Furthermore, is the mechanism to record public symbols between library
> > releases, as described in the URL above, also used in FreeBSD?
> >=20
> > I'm referring to the
> >=20
> > PUBLIC_2: {
> > 	symbol1, symbol2
> > } PUBLIC_1;
> >=20
> > versioning, which somehow should be in the .so. I can't find it with ob=
jdump
> > and friends.
>=20
> Not that I know of.  As far as I know FreeBSD stores the library version =
in
> the binary and supports the concept of compatiability libraries.  In other
> words if your application is linked with libc.so.3, FreeBSD will look in
> /usr/lib/compat for this library.

Yes.

> FreeBSD does not change interfaces willy-nilly

Which is A Good Thing(TM). And something that some library authors
would want to remember...

> (Unlike GNOME...:(  Sometimes they don't even bump the minor when they
> change a interface.  I've had to update code even when the library version
> has stayed the same, NEVER had this problem with FreeBSD).

It's a commonly known problem that the above project (abicheck) is trying
to solve. It's a SUN-sponsored effort to make an automatic tool for
keeping ABI compatability. Which is why I was interested for FreeBSD purpos=
es.
However it seems (to me) that FreeBSD lacks the granularity in versioning t=
hat
the tool requires. But I would be glad to be corrected :)

> If I'm wrong about any of this, then I'm sure that Terry will be by to
> correct me...:)

Heh :)

Thanks for the response,

--Stijn

--=20
I wish there was a knob on the TV to turn up the intelligence.  There's a k=
nob
called `brightness', but it doesn't work."
		-- Gallagher

--G4iJoqBmSsgzjUCe
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (FreeBSD)

iD8DBQE81njSY3r/tLQmfWcRAtJxAKCIojmWQnoolyutwFOxatAOE4u/QgCeJhJn
tvOVbfXnakrhi8mZkvGWVsE=
=3dV0
-----END PGP SIGNATURE-----

--G4iJoqBmSsgzjUCe--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020506143634.A56935>