Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <418127ED.2060202@cwilson.fastmail.fm> Date: Thu, 28 Oct 2004 13:10:05 -0400 From: Charles Wilson User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040616 MultiZilla/1.6.4.0b MIME-Version: 1.0 To: libtool-patches AT gnu DOT org Cc: cygwin AT cygwin DOT com Subject: 10-csw-cygwin-install-strip.patch Content-Type: multipart/mixed; boundary="------------070208030903040407070305" --------------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 * 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--