Re: libgailutil.so.16 -> libgailutil.so.17



Jon,

Thanks for your help on this.

I logged bug 89327 yesterday and I have attached the patch I propose to apply 
for that bug.

I believe that this patch will solve the problem going forward as I increment 
the micro version.

Padraig

> Subject: Re: libgailutil.so.16 -> libgailutil.so.17
> To: "Padraig O'Briain" <Padraig Obriain sun com>
> Cc: desktop-devel-list gnome org
> Content-Transfer-Encoding: 7bit
> Mime-Version: 1.0
> 
> On Mon, 2002-07-29 at 11:01, Padraig O'Briain wrote:
> > Jon,
> > I have sen a long thread on this which I have not studied closely yet.
> > I would like to clarify exactly what the complaint is.
> > I am not concious of making any changes to libgailutil between versions 16 
and 
> > 17.
> > If using libgailutil, I would expect you to link with libgailutil.so, i.e. 
> > -llibgailutil.
> 
> Ah, but libraries store something called the soname, which is the name
> that will be written into the file when linking. When linking against
> different instances of the same library, such as the .so symbolic link,
> the name written as the soname will be used instead.
> 
> So when linking in the way you suggest, one gets the following
> behaviour:
> 
> js fig:~$ cat << EOF > testgailutil.c 
> > int main () { return 0; }
> > EOF
> js fig:~$ gcc -o testgailutil testgailutil.c -lgailutil
> js fig:~$ ldd testgailutil|grep gailutil
> 	libgailutil.so.17 => /usr/lib/libgailutil.so.17 (0x40022000)
> 
> libtool is supposed to "do the right thing" in this regard if you keep
> track of a few variables regarding binary age and interface age and
> whatnot, but you should ask Havoc about that, he seemed to know how it
> worked.
> 
> The main point is that you want to use the soname to keep track of
> incompatible changes. As long as compatibility remains you want to let
> it remain the same, and then change it when you introduce something
> incompatible.
> 
> Hope this clarifies,
> Jon
> 
Index: configure.in
===================================================================
RCS file: /cvs/gnome/gail/configure.in,v
retrieving revision 1.29
diff -u -p -r1.29 configure.in
--- configure.in	22 Jul 2002 08:32:36 -0000	1.29
+++ configure.in	29 Jul 2002 10:57:53 -0000
@@ -4,34 +4,35 @@ AC_INIT(ChangeLog)
 
 AM_CONFIG_HEADER(config.h)
 
-GAIL_MAJOR_VERSION=0
+GAIL_MAJOR_VERSION=1
 GAIL_MINOR_VERSION=0
-GAIL_MICRO_VERSION=17
-GAIL_INTERFACE_AGE=0
-GAIL_BINARY_AGE=0
-
+GAIL_MICRO_VERSION=0
 ## with 1.0 you'd insert MINOR_VERSION in here, i.e. 0.3->1.0.0->1.0.1->1.0.2
 ## note that micro version has to go in the libtool stuff below
-GAIL_VERSION=$GAIL_MAJOR_VERSION.$GAIL_MICRO_VERSION
-AM_INIT_AUTOMAKE(gail, $GAIL_VERSION)
+GAIL_VERSION=$GAIL_MAJOR_VERSION.$GAIL_MINOR_VERSION.$GAIL_MICRO_VERSION
+
+GAIL_INTERFACE_AGE=0
+GAIL_BINARY_AGE=$GAIL_MICRO_VERSION
 
 AC_SUBST(GAIL_MAJOR_VERSION)
 AC_SUBST(GAIL_MINOR_VERSION)
 AC_SUBST(GAIL_MICRO_VERSION)
 AC_SUBST(GAIL_VERSION)
+AC_SUBST(GAIL_INTERFACE_AGE)
+AC_SUBST(GAIL_BINARY_AGE)
 
 # libtool versioning
-LT_RELEASE=$GAIL_MAJOR_VERSION.$GAIL_MINOR_VERSION
-LT_CURRENT=`expr $GAIL_MICRO_VERSION - $GAIL_INTERFACE_AGE`
-LT_REVISION=$GAIL_INTERFACE_AGE
-LT_AGE=`expr $GAIL_BINARY_AGE - $GAIL_INTERFACE_AGE`
-LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
-AC_SUBST(LT_RELEASE)
-AC_SUBST(LT_CURRENT)
-AC_SUBST(LT_REVISION)
-AC_SUBST(LT_AGE)
+lt_current=`expr $GAIL_MICRO_VERSION - $GAIL_INTERFACE_AGE`
+lt_revision=$GAIL_INTERFACE_AGE
+lt_age=`expr $GAIL_BINARY_AGE - $GAIL_INTERFACE_AGE`
+LT_VERSION_INFO="$lt_current:$lt_revision:$lt_age"
+LT_CURRENT_MINUS_AGE=`expr $lt_current - $lt_age`
+
+AC_SUBST(LT_VERSION_INFO)
 AC_SUBST(LT_CURRENT_MINUS_AGE)
 
+
+AM_INIT_AUTOMAKE(gail, $GAIL_VERSION)
 
 AC_PROG_CC
 AM_DISABLE_STATIC
cvs server: Diffing docs
cvs server: Diffing docs/reference
cvs server: Diffing docs/reference/libgail-util
cvs server: Diffing docs/reference/libgail-util/tmpl
cvs server: Diffing gail
cvs server: Diffing libgail-util
Index: libgail-util/Makefile.am
===================================================================
RCS file: /cvs/gnome/gail/libgail-util/Makefile.am,v
retrieving revision 1.1
diff -u -p -r1.1 Makefile.am
--- libgail-util/Makefile.am	12 Apr 2002 09:20:50 -0000	1.1
+++ libgail-util/Makefile.am	29 Jul 2002 10:57:53 -0000
@@ -53,8 +53,8 @@ libgailutil_la_LIBADD = \
 	@DEP_LIBS@
 
 libgailutil_la_LDFLAGS =    \
-	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)	\
-	$(export_symbols)					\
+	-version-info $(LT_VERSION_INFO)	\
+	$(export_symbols)			\
         @LDFLAGS@
 
 gailutil.lib: libgailutil.la gailutil.def
cvs server: Diffing tests


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]