Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Message-ID: <03F4742D8225D21191EF00805FE62B9904B3F689@aa-msg-01.medstat.com> From: John Wiersba To: "'Charles Wilson'" Cc: "'cygwin'" Subject: RE: curses problem trying to build ruby Date: Wed, 13 Dec 2000 16:38:57 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2650.21) Content-Type: text/plain; charset="iso-8859-1" X-OriginalArrivalTime: 13 Dec 2000 21:37:00.0802 (UTC) FILETIME=[D3948620:01C0654C] Charles, Perfect! That was the problem. I solved it by reinstalling everything from scratch. The make of ruby is going much better. Thanks for your help!! I'm having a problem further on now. I've sent email to the author, but I thought I'd ask you on the off chance that you've actually built ruby. make[1]: Leaving directory `/jrw/ftp/ruby/junk/ruby-1.6.1/ext/Win32API' make[1]: Entering directory `/jrw/ftp/ruby/junk/ruby-1.6.1' windres --include-dir . --include-dir . --include-dir ./win32 ruby.rc ruby.res.o gcc -g -O2 main.o ruby.exp ruby.res.o librubys.a -lcrypt -o ruby.exe gcc: ruby.exp: No such file or directory make[1]: *** [ruby.exe] Error 1 make[1]: Leaving directory `/jrw/ftp/ruby/junk/ruby-1.6.1' There's no ruby.exp (and I couldn't see how one is supposed to be made -- I tried "make ruby.exp"). -- John Wiersba > -----Original Message----- > From: Charles Wilson [mailto:cwilson AT ece DOT gatech DOT edu] > Sent: Wednesday, December 13, 2000 12:42 PM > To: John Wiersba > Cc: cygwin AT sources DOT redhat DOT com > Subject: Re: curses problem trying to build ruby > > > John Wiersba wrote: > > > > Charles, > > > > I simplified the problem a little, to get rid of dllwrap: > > > > $ cd ruby-1.6.1/ext/curses > > $ gcc curses.o -L../.. -lcygwin-ruby16 -lncurses > > curses.o: In function `free_window': > > /.../ruby-1.6.1/ext/curses/curses.c:65: undefined > reference to `stdscr' > > ... > > > > It looks like stdscr is not defined in libncurses. But, > > > > $ cd /usr/lib > > $ ls -l *cur* > > lrw-r--r-- 1 jrw JRW 23 Dec 12 18:36 libcurses.a -> > libncurses.a > > lrw-r--r-- 1 jrw JRW 27 Dec 12 18:36 libcurses.dll.a -> > > libncurses.dll.a > > -rw-r--r-- 1 jrw JRW 277240 Nov 25 00:44 libncurses++.a > > -rw-r--r-- 1 jrw JRW 392186 Nov 25 00:08 libncurses.a > > -rw-r--r-- 1 jrw JRW 263752 Nov 25 00:44 libncurses.dll.a > > -rw-r--r-- 1 jrw JRW 4820 Nov 11 01:32 libsecur32.a > > $ nm libncurses.a | grep stdscr > > U _stdscr > > ... > > U _stdscr > > 00000000 D _stdscr > > U _stdscr > > > > seems to show that it is. > > But you're not linking to libncurses.a. You are linking to > libncurses.dll.a, the dll import lib. To avoid this, you have to > specify -static. But that's not the real puzzler. > > /usr/include/ncurses.h defines stdscr thus: > extern NCURSES_EXPORT_VAR(WINDOW *) stdscr; > which expands to > extern __declspec(dllimport) WINDOW * stdscr; > > Short version: curses.o should have the following undefined symbol > U _imp__stdscr > not > U _stdscr > > And by linking to libncurses.dll.a (the default), the linker will find > __imp__stdscr. > > However, it appears that you are including a *different* > ncurses.h from > somewhere, because your curses.o is not seeing the > __declspec(dllimport) > decoration. Do you have an old ncurses installed in '/usr/local' ? > > If so (and if it's the old cygutils version) remove it using > http://cygutils.netpedia.net/V1.1/usr-local/Obsolete.html -- but READ > the directions first: you only want to remove > /usr/local/---ncurses, not > /usr/local/---everything. (If you have other programs that have been > compile using the /usr/local/---ncurses, you'll need to set > TERMINFO=/usr/share/terminfo to prevent them from looking in > /usr/local/share/terminfo for their terminfo database). > > --Chuck > > -- > Want to unsubscribe from this list? > Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com > -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com