From: Gary V. Vaughan Date: Thu, 18 Feb 1999 15:14:41 +0000 (+0000) Subject: * ltmain.in (version_type): Implement irix versioning. X-Git-Tag: release-1-2f~118 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=4d2a114a6854d6fa1a81716448b6df2e204b887a;p=thirdparty%2Flibtool.git * 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. --- diff --git a/ChangeLog b/ChangeLog index 0a861c4c0..2f9dc85a6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 1999-02-18 Gary V. Vaughan + * 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 59a902a2b..e0c1750dd 100644 --- 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. diff --git a/ltconfig.in b/ltconfig.in index 8543456ae..88b1b6cff 100755 --- a/ltconfig.in +++ b/ltconfig.in @@ -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' diff --git a/ltmain.in b/ltmain.in index 1ac6ea255..6dc32023e 100644 --- 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"