bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-tar] compiling tar cvs using mingw


From: Gerry Reno
Subject: Re: [Bug-tar] compiling tar cvs using mingw
Date: Wed, 10 Sep 2003 09:29:45 -0700 (PDT)

Paul,

--- Paul Eggert <address@hidden> wrote:
> Gerry Reno <address@hidden> writes:
> 
> > create.c:25:18: pwd.h: No such file or directory
> > create.c:26:18: grp.h: No such file or directory
> 
> That code is protected this way:
> 
> #if !MSDOS
> # include <pwd.h>
> # include <grp.h>
> #endif
> 
> Why isn't MSDOS set on your host?  Perhaps you should put it into
> config.h by hand?

  I think because MSDOS indicates just 8.3 filename support.

> 
> > #define mkdir(file, mode) (mkdir(file))
> 
> I don't see why that definition fixes it, while the definition that I
> already suggested doesn't fix it.  They should have equivalent
> effects.

  Yes, of course.  This was my mistake.  They are equivalent.  I put it
in your way and then inadvertently forgot to set the MSDOS flag and it
didn't work.  The next sequence I had set the flag but also thought I
needed to change the define.  

> 
> > As far as pwd.h and grp.h, mingw (windows native) doesn't have the
> > same notion of user password and group password in the /etc/passwd
> > sense so maybe this should somehow not be required for mingw.
> 
> Perhaps it would be easier if we simply inserted dummy pwd.h and
> grp.h
> files that would let us compile the source without changing it.  I'd
> rather not have 'if MSDOS' all over the place.

  MSDOS seems to be the only flag used by tar code indicating any
flavor of dos or windows.  There is a distinction between DOS
(dos,win3.x) and native 32-bit windows (win9x/me NT/200x/XP). In the
cygwin and mingw environments there are flags like WIN32, _WIN32,
__WIN32__,  _WIN32_WINNT, and __CYGWIN__ set in the headers but MSDOS
flag is not set.  I see some tests going like:
if (defined(MSDOS) || defined(_WINDOWS) || defined(WIN32) ||
defined(__WIN32__))
and others like 
if (defined(WIN32) || defined(_WIN32) || defined(__WIN32__))
  So should tar treat all dos and windows with just MSDOS flag?  That
flag is not univerally guaranteed to be defined in all windows
environments.  MSDOS I would take to maybe indicate 8.3 filename
support only and *WIN32* types to indicate long filename support.  


thx,
Gerry Reno



__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com




reply via email to

[Prev in Thread] Current Thread [Next in Thread]