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é Berber wrote:
Vin Shelton wrote:
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.
I just wonder if that presents an incompatibility that could explain
what you are seeing.
Thanks for replying, Chuck.
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:
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
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 that
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/
--
Peter A. Castro <doc...@fruitbat.org> or <peter.cas...@oracle.com>
"Cats are just autistic Dogs" -- Dr. Tony Attwood
--
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/