delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2001/05/31/07:57:25

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: <3B162F6B.449496A1@bellatlantic.net>
Date: Thu, 31 May 2001 07:47:55 -0400
From: "John W. Kennedy" <jwkenned AT bellatlantic DOT net>
Reply-To: jwkenne AT attglobal DOT net
X-Mailer: Mozilla 4.75 [en] (Win95; U)
X-Accept-Language: en
MIME-Version: 1.0
To: Cygwin Users <cygwin AT cygwin DOT com>
Subject: Re: 1.3.2 Catch-22 in tmpnam/tmpfile with gcc -mno-cygwin
References: <3B1510F5 DOT 8BCF31AF AT bellatlantic DOT net> <20010530130630 DOT C19066 AT redhat DOT com> <3B15394E DOT E07EBB39 AT yahoo DOT com>

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

- Raw text -


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