Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com Message-ID: <37C2C593.B9D4E7DA@stest.ch> Date: Tue, 24 Aug 1999 18:17:24 +0200 From: Thomas Kowatsch Organization: Switching Test Solutions AG X-Mailer: Mozilla 4.04 [en] (X11; U; SunOS 5.5.1 sun4u) MIME-Version: 1.0 To: Cygwin List Subject: Re: Failed to build tcl8.1 References: <199908170710 DOT CAA10993 AT mercury DOT xraylith DOT wisc DOT edu> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Mumit Khan wrote: > Thomas Kowatsch writes: > > I just tried to compile tcl8.1 following Mumit's directions but failed. > > > > I have dowloaded tcl8.1.1, gcc-2.95, w32api-0.1.5. I have installed the > > B20.1 release and replaced compiler with gcc-2.95 from Mumit's build. > > Apllied also Mumit's patch for w32api-0.1.5, maked and installed it into > > My patches are for 8.1, not for 8.1.1, which is quite different in some > areas (eg., it uses winsock2, not supported (yet) by the w32api headers). > > Regards, > Mumit Sorry for picking up this thread again but I still have problems but had to do something else for the last two weeks. As Mumit suggested I downloaded 8.1, applied his patches. Tcl build very fine without problems. But I had problems with building TK. There were some functions defined locally in modules which have the same name as prototypes in wingdi.h and winuser.h. These were: - CreateBitmap() in generic/tkCanvBmap.c - GetCursor() in generic/tkCursor.c - SetFocus() in generic/tkFocus.c I just renamed these function in there modules prepending a Tk. Then compile worked just fine but when it came to link the dll I got thousands of unresolved externals from tcl like tkWindow.o: In function `Initialize': //z/STS/TCU/thirdparty/WinNT/tk8.1/win/./../generic/tkWindow.c:2717: undefined reference to `_imp__Tcl_PkgRequire' //z/STS/TCU/thirdparty/WinNT/tk8.1/win/./../generic/tkWindow.c:2721: undefined reference to `_imp__Tcl_GetThreadData' I figured out that this was due to the missing -ltcl81 in the buildline for the libtk81.dll. So I added that and then ... everything compiled ok. Then I installed everything in a temporary directory and tried to run it. tclsh81.exe semmed to be ok but when I ran wish81.exe I got a core. Loaded wish81.exe into gdb and run it. Following the output: (gdb) r Starting program: /tmp/tcl/bin/wish81.exe 6d500000:/tmp/tcl/bin/tcl81.dll [failed reading symbols from DLL] "/c/WINNT/system32/ADVAPI32.DLL": error reading line numbers [failed reading symbols from DLL] "/c/WINNT/system32/KERNEL32.dll": error reading line numbers 77e70000:/c/WINNT/system32/USER32.dll 77ed0000:/c/WINNT/system32/GDI32.dll 77e10000:/c/WINNT/system32/RPCRT4.dll 61000000:/usr/local/cygnus/cygwin-b20/usr/bin/cygwin1.dll 642c0000:/tmp/tcl/bin/tk81.dll 77d80000:/c/WINNT/system32/COMDLG32.DLL 77c40000:/c/WINNT/system32/SHELL32.dll 71030000:/c/WINNT/system32/COMCTL32.dll 5f810000:/c/WINNT/System32/rpcltc1.dll Program received signal SIGSEGV, Segmentation fault. 0x643450ca in Tk_InitStubs (interp=0x247b178, version=0x64345eca "8.1", exact=1) at ./../generic/tkStubLib.c:91 91 actualVersion = Tcl_PkgRequireEx(interp, "Tk", version, exact, (gdb) bt #0 0x643450ca in Tk_InitStubs (interp=0x247b178, version=0x64345eca "8.1", exact=1) at ./../generic/tkStubLib.c:91 #1 0x643479f0 in Initialize (interp=0x247b178) at ./../generic/tkWindow.c:2956 #2 0x64347376 in Tk_Init (interp=0x247b178) at ./../generic/tkWindow.c:2618 #3 0x401104 in Tcl_AppInit () #4 0x6431bc51 in Tk_MainEx (argc=1, argv=0xa0310b8, appInitProc=0x4010dc , interp=0x247b178) at ./../generic/tkMain.c:218 #5 0x4013c8 in main () #6 0x6100442e in _size_of_stack_reserve__ () #7 0x61004517 in _size_of_stack_reserve__ () #8 0x40156e in cygwin_crt0 (f=0x401364
) at /home/noer/src/b20/comp-tools/devo/winsup/libccrt0.cc:81 (gdb) list 86 char *version; 87 int exact; 88 { 89 char *actualVersion; 90 91 actualVersion = Tcl_PkgRequireEx(interp, "Tk", version, exact, 92 (ClientData *) &tkStubsPtr); 93 if (!actualVersion) { 94 return NULL; 95 } (gdb) print interp $1 = (Tcl_Interp *) 0x247b178 (gdb) print version $2 = 0x64345eca "8.1" (gdb) print exact $3 = 1 (gdb) print tkStubsPtr $4 = (TkStubs *) 0x0 (gdb) print &tkStubsPtr $5 = (TkStubs **) 0x64365c70 (gdb) print Tcl_PkgRequireEx $6 = {char *(Tcl_Interp *, char *, char *, int, ClientData *)} 0x6d54ab8c Anybody got an idea? The link line of the wish produces following output: gcc -o wish81.exe -mwindows wish.res.o \ winMain.o libtk81.a ../../tcl8.1/win/./libtcl81.a \ -luser32 -lcomdlg32 -lgdi32 -lwinspool /usr/local/cygnus/cygwin-b20/usr/bin/../lib/gcc-lib/i586-cygwin32/2.95/../../../../i586-cygwin32/bin/ld: warning: cannot find entry symbol _WinMainCRTStartup; defaulting to 00401000 TIA Tommy -- ------------------------------------------------------------------------ Thomas Kowatsch | - Senior Software Engineer - Switching Test Solutions AG | mailto: thomas DOT kowatsch AT stest DOT ch Wavetek Wandel & Goltermann Divison5 | web : http://www.stest.com Friesenbergstr. 75 | Phone : +41 1 454-6731 CH-8055 Zuerich | FAX : +41 1 454-6612 -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com