diff options
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | build-aux/ltmain.in | 2 | ||||
-rw-r--r-- | m4/libtool.m4 | 7 |
3 files changed, 9 insertions, 3 deletions
@@ -27,7 +27,8 @@ NEWS - list of user-visible changes between releases of GNU Libtool - Added -os2dllname option to work around 8 character base name limit on OS/2. The option has no effect on other systems. - - Support for -export-symbols and -export-symbols-regex on OS/2. + - Support for DLL versioning, -export-symbols and -export-symbols-regex + on OS/2. * Noteworthy changes in release 2.4.3 (2014-10-27) [stable] diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in index a0f5ed0f..65ada0b6 100644 --- a/build-aux/ltmain.in +++ b/build-aux/ltmain.in @@ -6262,7 +6262,7 @@ func_mode_link () elif test -n "$soname_spec"; then # bleh windows case $host in - *cygwin* | mingw* | *cegcc*) + *cygwin* | mingw* | *cegcc* | *os2*) func_arith $current - $age major=$func_arith_result versuffix=-$major diff --git a/m4/libtool.m4 b/m4/libtool.m4 index 32fee6fb..281e70fa 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -2808,10 +2808,15 @@ openbsd* | bitrig*) os2*) libname_spec='$name' + version_type=windows shrext_cmds=.dll + need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. - soname_spec='`test -n "$os2dllname" && libname=$os2dllname; $ECHO $libname | cut -b -8 | tr . _`$shared_ext' + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH |