Boost logo

Boost-Build :

Subject: Re: [Boost-build] Problems building on Win7
From: Raffi Enficiaud (raffi.enficiaud_at_[hidden])
Date: 2015-02-24 05:50:31

Le 24/02/15 05:25, Steven Watanabe a écrit :
> Now that I finally have a working git setup again,
> I've tried every combination I could think of to
> replicate the problem without success. Can you
> tell me exactly what branch you're using. I tried
> a) develop
> b) master
> c) master except Boost.Test = develop
> I deleted bin.v2 and boost/ before every run.

I am working on develop, clean fresh clone.

> I tested both b2 headers and libs/test/test$ ../../../b2
> with each configuration.

I tested libs/test/test, but you have to do it *twice*. It works fine
the first time. I am not executing b2 headers before.

> I did run into some problems with adding a new
> library which uses the same subdirectory as
> an existing library, but that shouldn't affect
> your case.
> In Christ,
> Steven Watanabe

I am not doing anything fancy. I have full control of the file system,
my user in in the admin group.

Ok, so after your replies, I started digging into path.jam and
builtins.c. I put a trace in builtin_readlink in the response of the
DeviceIOControl (line 1885). Apparently the path coming into the
CreateFileA has an uppercase drive letter, while the one outputted by
the DeviceIOControl has a lowercase drive letter (see logs and patch).

As you may see in the logs, using [ path.native ] rule does not
normalize the cases.
The pwd rule returns an uppercase drive letter, the readlink rule
returns a lower case drive letter.

One possibility is to change the native-NT rule to return always
lowercase drive letter, or to include that in the NORMALIZED_PATH
builtin rule.

The other solution would be to avoid direct path string comparison and
to have a proper path comparison function, which would be case
insensitive on win32.

In both cases, I think the error comes from the inconsistency of the
behaviors of those functions.

Raffi Enficiaud

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at