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: <001001c05f53$f6433da0$6bb8fea9@mitsu5> From: "Mitsuo Igarashi" To: Subject: RE: failure to build Tcl8.4a2(not 8.3.2) by Cygwin on Win98 Date: Wed, 6 Dec 2000 16:12:08 +0900 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 4.72.3110.5 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.3110.3 Bruce wrote. |I had to do a few of things to get a unix build of tcl under cygwin. I think |it's important that the distinction be made between a unix build vs. a windows |build under cygwin. |If you build for windows, the cygwin symlinks won't work from tcl. If you |build for unix, they will. | |1) comment out all __try/__catch blocks. You'll see these as the compiler |finds them. |Don't have a list handy, sorry. | | |2) eliminate windows specific bits. |I'm kind of confused on this bit too. When compiling with cygwin's gcc, it |seems that there's a bunch of windows specific defines that are set, not sure |of exact names, eg: __WIN32__ __WIN__, etc.. |These cause windows specific bits to be conditionally compiled. This is fine |for building a windows version, eg, grom the tcl/win dir, but not for building |a cygwin version, ie: from the unix dir. |So I added: | -UWIN32 -U__WIN32 -U__WIN32__ -U_WIN32 |to the CFLAGS to exclude windows code. | | |3) in tclUnixChan.c, you need to take out the lseek calls for stdio/out/err: | |#ifndef __CYGWIN__ | if ((lseek(2, (off_t) 0, SEEK_CUR) == -1) && | (errno == EBADF)) { | return (Tcl_Channel) NULL; | } |#endif | | |4) The test for S_IFIFO in tclUnixFCmd.c needs to be taken out: | |#ifndef __CYGWIN__ | if (mkfifo(dst, srcStatBuf.st_mode) < 0) { /* INTL: Native. */ | return TCL_ERROR; | } | return CopyFileAtts(src, dst, &srcStatBuf); |#else | return TCL_ERROR; |#endif I have succeeded to build Tcl8.4a2, as you told me. I have learned much from this lesson to overcome obstacles to a build. This is a very good training for me. Thank you very much indeed. ----------=========--------- Mitsuo Igarashi mitsu5 AT ruby DOT famille DOT ne DOT jp -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com