Mailing-List: contact cygwin-help@sourceware.cygnus.com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe@sources.redhat.com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin@sources.redhat.com>
List-Help: <mailto:cygwin-help@sources.redhat.com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner@sources.redhat.com
Delivered-To: mailing list cygwin@sources.redhat.com
Message-ID: <3B162F6B.449496A1@bellatlantic.net>
Date: Thu, 31 May 2001 07:47:55 -0400
From: "John W. Kennedy" <jwkenned@bellatlantic.net>
Reply-To: jwkenne@attglobal.net
X-Mailer: Mozilla 4.75 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: Cygwin Users <cygwin@cygwin.com>
Subject: Re: 1.3.2 Catch-22 in tmpnam/tmpfile with gcc -mno-cygwin
References: <3B1510F5.8BCF31AF@bellatlantic.net> <20010530130630.C19066@redhat.com> <3B15394E.E07EBB39@yahoo.com>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Earnie Boyd wrote:
> 
> Christopher Faylor wrote:
> >
> > On Wed, May 30, 2001 at 11:25:41AM -0400, John W. Kennedy wrote:
> > >At present, gcc option -mno-cygwin is incompatible with tmpfile and
> > >tmpnam.  When -mno-cygwin is used, at runtime all temporary files are
> > >put into directory "/tmp", which is incompatible with no-cygwin
> > >operation unless a writable "x:\tmp" directory happens to exist, where
> > >x: is the current drive.
> > >
> > >The obvious fix would make -mno-cygwin executables sensitive to a
> > >standard Windows environment variable such as TMP, or at least to an
> > >ad-hoc environment variable.
> >
> > -mno-cygwin produced Microsoft native binaries.  It uses some libraries
> > from the mingw project, but they are not supported here.  You probably want
> > to send email to a mailing list mentioned at www.mingw.org.
> >
> 
> I'm not understanding this.  What is it that isn't working?  Give
> examples of your environment, command line and results.

Any C program using the tmpnam/tmpfile functions (in stdio), and
compiled with the -mno-cygwin flag, places the temporary file in
directory "/tmp".  Using this directory name works fine with cygwin.dll,
because it is mapped to (for example) "C:\Cygwin\tmp", but in
-mno-cygwin mode, it is interpreted as "x:\tmp" where x: is the current
drive.  This directory normally won't exist, and may not be writable; in
either case, the program will fail.  With cygwin.dll, an environment
variable at run time can override the "/tmp", but there appears to be no
way to do it with -mno-cygwin.

In essence, all C programs compiled with -mno-cygwin and using tmpnam or
tmpfile can be expected to fail.

-- 
John W. Kennedy
(Working from my laptop)

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple

