X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,SPF_PASS X-Spam-Check-By: sourceware.org Message-ID: <49CA46E2.80604@gmail.com> Date: Wed, 25 Mar 2009 14:59:46 +0000 From: Dave Korn User-Agent: Thunderbird 2.0.0.17 (Windows/20080914) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: [SOLVED] Re: under cygwin, zsh cannot run when built against ncurses9-5.7-13 References: <49BF1770 DOT 9020007 AT gmail DOT com> <49C00B83 DOT 8050302 AT gmail DOT com> <20090317222721 DOT GB1505 AT ednor DOT casa DOT cgf DOT cx> <49C07781 DOT 1090702 AT gmail DOT com> <20090318053237 DOT GA31643 AT ednor DOT casa DOT cgf DOT cx> <49C09F09 DOT 3040804 AT gmail DOT com> <20090319103136 DOT GB26397 AT calimero DOT vinschen DOT de> <49CA2860 DOT 4090008 AT gmail DOT com> <20090325142928 DOT GC5286 AT ednor DOT casa DOT cgf DOT cx> In-Reply-To: <20090325142928.GC5286@ednor.casa.cgf.cx> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: 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 Christopher Faylor wrote: > On Wed, Mar 25, 2009 at 12:49:36PM +0000, Dave Korn wrote: >> So the linker is DTRT, the problem has always existed but been masked by the >> fact that nothing between -lm and -lcygwin used to import anything, the >> problem has arisen now because now that does happen, and the solution is to >> mung the symbols in the import top/tail sections in libm so that libm and >> libcygwin both each add a complete import table entry of their own (there's no >> problem having two import tables against the same DLL). Once I've figured out >> how that perl script works, I'll be able to suggest a patch. > > Don't bother. I'll look into it. Thanks. As an experiment I tried adding (just after the line "0 while s/$libdllname/$libname/sog;") my $orig_iname="_cygwin1_dll_iname"; my $new_iname="_libm_dll_iname"; my $inamepad = length($orig_iname) - length($new_iname); die "$0: library name too long (" . length($new_iname) . ")\n" if $inamepad < 0; $new_iname .= "\0" x $inamepad; 0 while s/$orig_iname/$new_iname/sog; ... and although it produced a libm.a with the symbols I was hoping to see, there's something wrong as the reference to _pow in zsh's math.o that was previously pulling in libm.a(d0001286.o) fails to pull in anything from a libm built with the above. Didn't get as far as figuring out what I did wrong yet, but if you're looking after it I'll get on with GCC stuff. cheers, DaveK -- 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/