X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-0.1 required=5.0 tests=AWL,BAYES_00,SARE_BAYES_5x8,SARE_BAYES_6x8,TVD_RCVD_IP X-Spam-Check-By: sourceware.org Date: Sat, 14 Mar 2009 22:56:35 -0700 (PDT) From: "Peter A. Castro" To: Cygwin List Subject: Re: under cygwin, zsh cannot run when built against ncurses9-5.7-13 In-Reply-To: Message-ID: References: <20a807210903131414g62e0a53cyefd3938c3fe8af33 AT mail DOT gmail DOT com> <49BADAC1 DOT 80709 AT cwilson DOT fastmail DOT fm> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463811017-1184295359-1237096595=:9859" X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: 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 ---1463811017-1184295359-1237096595=:9859 Content-Type: TEXT/PLAIN; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE On Sat, 14 Mar 2009, Vin Shelton wrote: Greetings, All, As the zsh maintainer I guess I get to try and figure out what's going on. :-) Using the Dependency Walker tool that Chuck pointed out (thanks Chuck!), I've found some rather interesting things. The offending symbol entries are the following (functions) tgetent tgetflag tgetnum tgetstr tgoto tputs pow (but this is not an unresolve symbol, see below) 'pow' is not an unresolve symbol in this mess, but it is lumped into the chunk with the bad symbols. libzsh-4.3.9.dll is the one who needs these symbols, but the import list is wrong: Here's the imports from compiling/linking with libncurses-8 (good): 0009e03c 0009e398 00000000 00000000 0009f37c 0009e6d4 DLL Name: cygwin1.dll vma: Hint/Ord Member-Name Bound-To 9f018 1285 pow 0009e050 0009e3a0 00000000 00000000 0009f3a4 0009e6dc DLL Name: cygncurses-8.dll vma: Hint/Ord Member-Name Bound-To 9f020 405 tgetent 9f02c 406 tgetflag 9f038 407 tgetnum 9f044 408 tgetstr 9f050 409 tgoto 9f058 417 tputs And, here's the imports from compiling/linking with libncurses-9 (bad): 0009e03c 0009e398 00000000 00000000 0009f374 0009e6d0 DLL Name: cygwin1.dll vma: Hint/Ord Member-Name Bound-To 9f010 1285 pow 9f018 468 tgetent 9f024 469 tgetflag 9f030 470 tgetnum 9f03c 471 tgetstr 9f048 472 tgoto 9f050 480 tputs 0009e050 0009e39c 00000000 00000000 0009f39c 0009e6d4 DLL Name: cygncurses-9.dll vma: Hint/Ord Member-Name Bound-To 9f018 468 tgetent 9f024 469 tgetflag 9f030 470 tgetnum 9f03c 471 tgetstr 9f048 472 tgoto 9f050 480 tputs It appears to trying to import the symbols twice. I've checked the import libs for both 5.5-3 (good) 5.7-13 (bad) and they don't appear to have anything funny about them. libncurses.a and libncurses.dll.a both appear to have the correct exports. There's no difference in how zsh is compiled between ncurses 8 & 9. Could this really be a linker problem? My build was done using gcc3, and Vin stated he'd tested with both gcc3 and gcc4, so perhaps there's a common element between them? Or, perhaps, is something not quite right with libncurses9 ? I'm a but stuck now as I'm not sure where to look next. Any educated guesses to point me in the right direction? Anyone? Anyone? Bueller? > Ren=E9 Berber wrote: >> Vin Shelton wrote: >>=20 >>> Charles Wilson wrote: >>>> Just for grins, could you rebuild zsh against libncurses9 -- but this >>>> time use gcc3? cygiconv-2 and cygncurses-9 use the static gcc-3.4.4 >>>> libgcc.a, but you are apparently using the gcc-4.3.2 shared libgcc. >>>>=20 >>>> I just wonder if that presents an incompatibility that could explain >>>> what you are seeing. >>> Thanks for replying, Chuck. >>>=20 >>> As I mentioned in the initial email, I had already done just that. Just >>> to be sure, I did it again, with the same result: >>=20 >> No you didn't, the point was: use gcc3, in other words: mixing libraries >> built with gcc3 and gcc4 doesn't work. > > I think my initial post contains this line: > >> The referenced builds used gcc-4, but the same problem occurred using=20 > gcc-3. > > If I'm wrong, or I'm misunderstanding you, I apologize. > > In any case, I have now supplied the information requested, no? > > Building with gcc-4 and the old ncurses produces a working zsh, in case t= hat=20 > wasn't clear from my earlier emails. > > - Vin > > > -- > 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/ > --=20 Peter A. Castro or "Cats are just autistic Dogs" -- Dr. Tony Attwood ---1463811017-1184295359-1237096595=:9859 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/ ---1463811017-1184295359-1237096595=:9859--