diff --git a/ChangeLog b/ChangeLog
index 1832fa493cdab8cbc8bb3b3c050577443ef8938e..df61247cdc09907a686940c055cc428e2d9eeccf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2002-11-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* ltconfig (osf[345]): Append $major to soname_spec.
+	Reflect this in library_names_spec.
+	* ltmain.sh (osf): Prefix $major with . for use as extension.
+
 2002-11-19  Andreas Jaeger  <aj@suse.de>
 
 	* libtool.m4 (libtool_flags): Add patch from libtool CVS: Support
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index a0d5917e56aed279a21b60686d7aa42e7d652818..21d304df594e19a26ebee30f0be839bfbe9eb19b 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,9 @@
+2002-11-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* ltconfig (osf[345]): Append $major to soname_spec.
+	Reflect this in library_names_spec.
+	* ltmain.sh (osf): Prefix $major with . for use as extension.
+
 2002-10-02  Andreas Jaeger  <aj@suse.de>
 
 	* include/private/gcconfig.h (HBLKSIZE): Define for x86-64.
diff --git a/boehm-gc/ltconfig b/boehm-gc/ltconfig
index a01334f9212c3a8e6a99db2b4d21f3380ccbfe80..b8eef56a9169efe7509797161189be0431511190 100755
--- a/boehm-gc/ltconfig
+++ b/boehm-gc/ltconfig
@@ -2017,8 +2017,8 @@ os2*)
 osf3* | osf4* | osf5*)
   version_type=osf
   need_version=no
-  soname_spec='${libname}${release}.so'
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+  soname_spec='${libname}${release}.so$major'
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
   shlibpath_var=LD_LIBRARY_PATH
   # this will be overridden with pass_all, but let us keep it just in case
   deplibs_check_method='file_magic COFF format alpha shared library'
diff --git a/boehm-gc/ltmain.sh b/boehm-gc/ltmain.sh
index 50515ad0b9ee92bb43e26ec0df55270fb013ff0f..72699bea1c165720a4f5d242ddbd1a134b9e8d47 100644
--- a/boehm-gc/ltmain.sh
+++ b/boehm-gc/ltmain.sh
@@ -1715,7 +1715,7 @@ compiler."
 	  ;;
 
 	osf)
-	  major=`expr $current - $age`
+	  major=.`expr $current - $age`
 	  versuffix=".$current.$age.$revision"
 	  verstring="$current.$age.$revision"
 
diff --git a/ltconfig b/ltconfig
index 5ccefe0463e0b93abadda8422d97c4330122d2bc..68be49bb2eec4b85ffdea87b233ed696062c4b02 100755
--- a/ltconfig
+++ b/ltconfig
@@ -1286,8 +1286,8 @@ os2*)
 osf3* | osf4* | osf5*)
   version_type=osf
   need_version=no
-  soname_spec='${libname}${release}.so'
-  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so'
+  soname_spec='${libname}${release}.so$major'
+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
   shlibpath_var=LD_LIBRARY_PATH
   sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
   sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
diff --git a/ltmain.sh b/ltmain.sh
index 92526b60b795d2e598aa37a3de6efdf45440c80f..5d4281c54d2d08ee93d210fe00f27ad339929f8f 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -2606,7 +2606,7 @@ EOF
 	  ;;
 
 	osf)
-	  major=`expr $current - $age`
+	  major=.`expr $current - $age`
 	  versuffix=".$current.$age.$revision"
 	  verstring="$current.$age.$revision"