Re: libgailutil.so.16 -> libgailutil.so.17
- From: "Padraig O'Briain" <Padraig Obriain Sun COM>
- To: jon-sven frisurf no
- Cc: desktop-devel-list gnome org
- Subject: Re: libgailutil.so.16 -> libgailutil.so.17
- Date: Tue, 30 Jul 2002 09:15:22 +0100 (BST)
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]