Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-04-15 04:12:37


David Abrahams wrote:

> Everything works on NT. Cygwin tests are still quite unhappy with
> everything, even GCC:
>
[...]> STDERR ============
> mkdir: cannot create directory `/cygdrive': File exists

This is the clue! Somehow, jam does not notice that /cygdrive exists.... I
think the attached test should reproduce the problem(run with bjam -fJamfile).
The questions are:
(i) why all tests pass for Andre
(ii) why /cygwin is missing from Jam's POV?

The answer to the last question is simple (once I arrive at it ;-) ):

$ ls -ld /cygdrive
dr-xr-xr-x 4 0 0 0 Jan 1 1970 /cygdrive

When this date is stored in "struct stat", it becomes 0, which, forJam , means
that the file does not exist. Specifically, line 268 of make.c has

t->binding = t->time ? T_BIND_EXISTS : T_BIND_MISSING;

I think the best way to fix this is the attached (unfortunately untested)
patch. Opinions?

- Volodya

P.S. BTW, Andre, it would be interesting if you run "bjam -fJamfile" (on the
attached file) and report the results. Output from "ls -ld /cygdrive" is
interesting as well...

 --Boundary-00=_F08m+OU45Vxi7gq Content-Type: text/plain;
charset="iso-8859-1";
name="Jamfile"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="Jamfile"

DEPENDS all : /cygdrive ;

actions MkDir
{
mkdir $(<)
}

MkDir /cygdrive ;

 --Boundary-00=_F08m+OU45Vxi7gq Content-Type: text/x-diff;
charset="iso-8859-1";
name="file_time.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="file_time.diff"


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk