If you're mixing code compiled and linked with different versions of binutils / gcc, then you're pretty much on your own - i.e., I'm assuming you didn't build pdcurses via 'ghc' but 'gcc' & 'ld'/'dllwrap'.
--sigbjorn ----- Original Message ----- From: "michael vorin" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Wednesday, December 11, 2002 14:13 Subject: GHC Undefined > Whilst I was trying to get the curses binding example in QForeign to compile > - I stumbled on what I believe to be a bug. Essentialy I believe that the > version of ld.exe that you have packaged up with ghc 5.04 win32 has a bug or > is perhaps badly configured. > > ghc uses - GNU ld version 2.11.90 (20010704) (with BFD 2.11.90) > > which did not properly resolve external references to variables (see below). > > I resolved problem by using - GNU ld version 2.13, from current mingw > release. > > my configuration > GHC 5.04 Win32 running on win2K platform. > What I encountered > -------------------- > ghc -fglasgow-exts CursesTest.hs CursesTest_hsc.c Curses.hs curses_hsc.c > -lpdcurses > > curses_hsc.o(.text+0x4):curses_hsc.c: undefined reference to `stdscr' > curses_hsc.o(.text+0x10):curses_hsc.c: undefined reference to `LINES' > curses_hsc.o(.text+0x1c):curses_hsc.c: undefined reference to `COLS' > curses_hsc.o(.text+0x28):curses_hsc.c: undefined reference to `COLOR_PAIRS' > curses_hsc.o(.text+0x34):curses_hsc.c: undefined reference to `COLORS' > > > when I had a look at the object files and the libpdcurses.dll, the > appropriate symbols were in fact defined, and in fact all functions were > resolved, the above symbols represent bindings to variables declared as > follows:- > > extern int LINES; > > 2. setup of a test > ----------------- > I setup a test (test.c attached) where I just had one external reference > that I was trying to resolve. I compiled it > > > curses\tst-lines>ghc tst.c -o tst.exe -lpdcurses > tst.o(.text+0x4):tst.c: undefined reference to `LINES' > > curses\tst-lines>gcc tst.c -o tst.exe -lpdcurses > Info: resolving _LINES by linking to __imp__LINES (auto-import) > > the above should give the same result, i.e. the later result > > 3. fix > -------- > I copied ld.exe from my mingw release (version 2.13) over ld.exe in the ghc > release (version 2.11.90 ). This solved my problem > > 4. postmortem > ------------- > why the problem ? Does this problem occur with all external variable > references or is limitted to a few dll libraries, does it occur linking > against static libraries ? > > I don't know > > > > _________________________________________________________________ > Help STOP SPAM with the new MSN 8 and get 2 months FREE* > http://join.msn.com/?page=features/junkmail > _______________________________________________ Glasgow-haskell-bugs mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs
