]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* ltmain.in (version_type): Implement irix versioning.
authorGary V. Vaughan <gary@gnu.org>
Thu, 18 Feb 1999 15:14:41 +0000 (15:14 +0000)
committerGary V. Vaughan <gary@gnu.org>
Thu, 18 Feb 1999 15:14:41 +0000 (15:14 +0000)
* ltconfig.in (irix{5,6}*): Use new irix shared object versioning.
* TODO: remove irix versioning from TODO list.

ChangeLog
TODO
ltconfig.in
ltmain.in

index 0a861c4c02cd3275e6fca8ab9c161c4ec3b4aabd..2f9dc85a648aef80f3a29c2d33d397e7f14cf4fe 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 1999-02-18  Gary V. Vaughan  <gvaughan@oranda.demon.co.uk>
 
+       * ltmain.in (version_type): Implement irix versioning.
+       * ltconfig.in (irix{5,6}*): Use new irix shared object versioning.
+       * TODO: remove irix versioning from TODO list.
+
        * ltmain.in (impgen.c): Added a new embedded C file that can be
        used under win32 to extract a def file (symbol export list) from a
        dll that has none.  Code to use it might need to wait for the ILD
diff --git a/TODO b/TODO
index 59a902a2bf779d8f734e9a1bdb60c0b433dc4eaa..e0c1750ddf19e398f7bec762332740576c27dffd 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,37 +1,6 @@
 For next public release:
 ************************
 
-* Create a new library version_type, `irix'.  Janos Farkas writes:
-
-I just realized I also have mortal access to an SGI system, and found
-this in the dso.5 page, this looks more informative :)
-
-   Versioning of Shared Objects.
-
-   QUICK OVERVIEW
-
-   For a shared object to be versioned the following needs to be done:
-
-   * Version strings consist of 3 parts and a dot: The string "sgi",
-     a decimal number (the major number), a dot, and a decimal number
-     (the minor number).
-
-   * Add the command -set_version sgi1.0 to the command to build
-     the shared object (cc -shared, ld -shared, etc.).
-
-   * Whenever you make a COMPATIBLE change update the minor version
-     number (the one after the dot), and add the latest version string
-     to colon-separated list of version strings, e.g., -set_version
-     sgi1.0:sgi1.1:sgi1.3
-
-   * Whenever you make an INCOMPATIBLE change, update the
-     major version number.  Pass this as the version list, e.g.,
-     -set_version sgi2.0.  Change the filename of the OLD shared object
-     by adding a dot followed by the previous major number to the filename
-     of the shared object.  DO NOT CHANGE the soname of the object.
-     No change to the file contents are necessary or desirable.  Simply
-     rename the file.
-
 * Inter-library dependencies should be fully tracked by libtool.
 Reminded by Alexandre Oliva.  This requires looking up installed
 libtool libraries for transparent support.
index 8543456ae27909b99e35c30e09bf37e234c487a8..88b1b6cff4ed0186c7ec819077735fd35d1aecf2 100755 (executable)
@@ -1682,7 +1682,7 @@ hpux9* | hpux10* | hpux11*)
   ;;
 
 irix5*)
-  version_type=osf
+  version_type=irix
   soname_spec='${libname}${release}.so'
   library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
   shlibpath_var=LD_LIBRARY_PATH
@@ -1691,7 +1691,7 @@ irix5*)
   ;;
 
 irix6*)
-  version_type=osf
+  version_type=irix
   need_lib_prefix=no
   need_version=no
   soname_spec='${libname}${release}.so'
index 1ac6ea2551158d048b63fd44e42eb7d65949bc58..6dc32023ea0ca36e0383a31cab453760994bc96c 100644 (file)
--- a/ltmain.in
+++ b/ltmain.in
@@ -1618,6 +1618,20 @@ compiler."
        case "$version_type" in
        none) ;;
 
+       irix)
+         major=`expr $current - $age`
+         versuffix="$major.$revision"
+         verstring="sgi$major.$revision"
+
+         # Add in all the interfaces that we are compatible with.
+         loop=$revision
+         while test $loop != 0; do
+           iface=`expr $revision - $loop`
+           loop=`expr $loop - 1`
+           verstring="sgi$major.$iface:$verstring"
+         done
+         ;;
+
        linux)
          major=.`expr $current - $age`
          versuffix="$major.$age.$revision"