(unknown)
Ileana Dumitrescu <[email protected]> Fri, 2 Jan 2026 13:12:50 -0500 (EST)
| Newsgroups | gmane.comp.gnu.libtool.cvs |
|---|---|
| Message-ID | <[email protected]> |
branch: master commit 2228b4d0dc0daf249523a4a82249e4a44b873102 Author: KO Myung-Hun <[email protected]> AuthorDate: Thu Nov 13 14:41:48 2025 +0900 libtool: Limit a length of DLL name to 8.3 correctly If a length of $release and/or $versionsuffix is more than 8 bytes, a length of DLL name may be more than 8. Then, this corrupts a generated DLL on OS/2. This patch assures 3 bytes for libname, 2 bytes for release, and 3 bytes for version at least. * m4/libtool.m4 (soname_spec) [os2*]: Limit a length of DLL name to 8.3 correctly. --- m4/libtool.m4 | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/m4/libtool.m4 b/m4/libtool.m4 index 6c3029f8..495bd10b 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -3173,9 +3173,14 @@ os2*) 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"; - v=$($ECHO $release$versuffix | tr -d .-); - n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); - $ECHO $n$v`$shared_ext' + n=$($ECHO $libname | tr -d .-); + l=${#n}; test 3 -lt "$l" && l=3; mr=$((8 - $l)); + r=$($ECHO $release | tr -d .-); + l=${#r}; test 2 -lt "$l" && l=2; mv=$(($mr - $l)); + v=$($ECHO $versuffix | tr -d .- | cut -b -$mv); + r=$($ECHO $r | cut -b -$(($mr - ${#v}))); + n=$($ECHO $n | cut -b -$((8 - ${#r} - ${#v}))); + $ECHO $n$r$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH