* 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.
This commit is contained in:
Gary V. Vaughan 1999-02-18 15:14:41 +00:00
parent 918d2d10d7
commit 4d2a114a68
4 changed files with 20 additions and 33 deletions

View File

@ -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

31
TODO
View File

@ -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.

View File

@ -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'

View File

@ -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"