delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/12/06/02:12:37

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
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" <mitsu5 AT ruby DOT famille DOT ne DOT jp>
To: <cygwin AT sourceware DOT cygnus DOT com>
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
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019