Mail Archives: cygwin/2004/10/28/13:10:51
--------------070208030903040407070305
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
On cygwin, 'make install-strip' in a libtoolized, automake-driven
project ends up stripping the import library, instead of the DLL. This
is bad: not only is the DLL unstripped, but stripping an import library
can sometimes break it, and make the installed lib unlinkable.
e.g. this command:
/bin/sh ../libtool --mode=install /usr/bin/install -c -s 'libgg.la'
'/usr/lib/libgg.la'
does the wrong thing.
The following patch was submitted on the cygwin list by Peter Ekberg.
It fixes this problem, and incurs no regressions in the testsuite when I
used it.
--
Chuck
--------------070208030903040407070305
Content-Type: text/plain;
name="10-csw-cygwin-install-strip.changelog"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="10-csw-cygwin-install-strip.changelog"
2004-10-28 Peter Ekberg <spam.protected>
* config/ltmain.m4sh (func_mode_install): on cygwin,
ensure that import libraries do not get stripped.
* m4/libtool.m4 (_LT_SYS_DYNAMIC_LINKER): on cygwin,
use postinstall_cmds to strip DLL (not import lib)
when stripping is requested.
--------------070208030903040407070305
Content-Type: text/plain;
name="10-csw-cygwin-install-strip.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="10-csw-cygwin-install-strip.patch"
Index: config/ltmain.m4sh
===================================================================
RCS file: /cvsroot/libtool/libtool/config/ltmain.m4sh,v
retrieving revision 1.1.2.12
diff -u -r1.1.2.12 ltmain.m4sh
--- config/ltmain.m4sh 20 Oct 2004 08:41:34 -0000 1.1.2.12
+++ config/ltmain.m4sh 28 Oct 2004 17:03:37 -0000
@@ -1827,7 +1827,16 @@
# Install the shared library and build the symlinks.
$show "$install_prog $dir/$srcname $destdir/$realname"
$run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
- if test -n "$stripme" && test -n "$striplib"; then
+ tstripme="$stripme"
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ case $realname in
+ *.dll.a)
+ tstripme=""
+ ;;
+ esac
+ esac
+ if test -n "$tstripme" && test -n "$striplib"; then
$show "$striplib $destdir/$realname"
$run eval "$striplib $destdir/$realname" || exit $?
fi
Index: m4/libtool.m4
===================================================================
RCS file: /cvsroot/libtool/libtool/m4/libtool.m4,v
retrieving revision 1.125.2.5
diff -u -r1.125.2.5 libtool.m4
--- m4/libtool.m4 20 Oct 2004 08:41:34 -0000 1.125.2.5
+++ m4/libtool.m4 28 Oct 2004 17:03:42 -0000
@@ -1719,7 +1719,10 @@
dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;$ECHO \$dlname'\''`~
dldir=$destdir/`dirname \$dlpath`~
test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ $run eval '\''$striplib \$dldir/$dlname'\'' || exit $?;
+ fi'
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
dlpath=$dir/\$dldll~
$RM \$dlpath'
--------------070208030903040407070305
Content-Type: text/plain; charset=us-ascii
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
--------------070208030903040407070305--
- Raw text -