Date: Fri, 20 Feb 2009 18:03:18 -0600 From: "Jeremy Messenger" <mezz7@cox.net> To: "Thomas Schmitt" <scdbackup@gmx.net> Cc: freebsd-ports@freebsd.org Subject: Re: Problem with .so numbering on FreeBSD in contrast to Linux Message-ID: <op.upoc4gz09aq2h7@localhost> In-Reply-To: <1027221507572@212.46.126.165> References: <1027221507572@212.46.126.165>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 20 Feb 2009 13:23:43 -0600, Thomas Schmitt <scdbackup@gmx.net> wrote: > Hi, > > i am trying to provide libraries for FreeBSD > and Linux via a build system based on autotools. > My problem is that the .so numbers get produced > differently on both systems. > E.g. > libburn.so.31 on FreeBSD > libburn.so.4.27.0 on Linux > > This has the consequence that on Linux older > applications can work with the newest libraries > whereas on FreeBSD the application has to > be re-built for that. > > Is that intentional on FreeBSD ? > Shall there be no backward compatibility > with .so ? > > > The numbers stem from ./configure.ac > LT_CURRENT=31 > LT_AGE=27 > LT_REVISION=0 > They are handed over to ./libtool as > -version-info 31:0:27 > on both systems. > > The libburnia libraries have evolving ABIs > which are backward compatible. Applications > can inquire the library version at run time in > order to check whether the feature set suffices. > > So i would prefer to produce > libburn.so.4 > with every new release. > But i also want to obey the conventions of > the operating systems. On Linux that means to > increase both LT_CURRENT and LT_AGE. > On FreeBSD one would obviously have to leave > LT_CURRENT unchanged. > > How do other projects solve that dilemma ? > > Should i strive for constant libburn.so.4 > on FreeBSD at all ? http://people.freebsd.org/~mezz/libtool.txt You can use ports/Mk/bsd.gnome.mk's hack in libtool to correct the version. You can add in ports's Makefile like this: ------------------------------ USE_AUTOTOOLS= libtool:15 USE_GNOME= ltverhack ------------------------------ If for some reason, this library bumped for no reason and doesn't need to be. You can custom number of version like this: ------------------------------ USE_AUTOTOOLS= libtool:15 USE_GNOME= ltverhack:6 ------------------------------ Then it will be libfoo.so.6. All GNOME ports are using ltverhack such as gtk20, glib20, pango and etc without custom number. I think it's fixed in libtool2 for FreeBSD, but someone might want to check in libtool repo to make sure. > (libtool is the expert. Possibly it is smarter > than me.) Since you are able to figure it out. You are smart already. ;-) Cheers, Mezz > Have a nice day :) > > Thomas -- mezz7@cox.net - mezz@FreeBSD.org FreeBSD GNOME Team http://www.FreeBSD.org/gnome/ - gnome@FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.upoc4gz09aq2h7>