Boost logo

Boost-Build :

From: David Abrahams (david.abrahams_at_[hidden])
Date: 2002-05-15 09:24:20


----- Original Message -----
From: "Markus Schöpflin" <markus.schoepflin_at_[hidden]>
> >
> > The same error?
>
> Yes, but one or two directories further down.
>
>
> > Or are you saying that absolute paths cannot be longer than 256
characters,
> > no matter how they are formed?
>
> Exactly. Try it for yourself. Just repeat the mkdir && cd command
sequence
> and you will encounter an error sooner or later.

C:\boost-head\0123456789\0123456789\0123456789\0123456789\0123456789\012345
6789\0123456789
\0123456789\0123456789\0123456789\0123456789\0123456789\0123456789\01234567
89\0123456789\0
123456789\0123456789\0123456789\0123456789\0123456789\0123456789>mkdir
0123456789 && cd 01
23456789
The filename or extension is too long.

Yep, I see. Well, I've known for some time that some facility for
abbreviating subvariant directories would be needed. Looks like a
Boost.Build v2 feature, though.

> > > Looks like we have to use the native WIN32 API to solve this. I could
> > > offer to venture a look at the jam sources if this is feasible.
> >
> > I don't see how that would help, but maybe you do. So feel free to look
at
> > it.
>
> If have the hope that the native WIN32 API doesn't have this limit when
> used with a file system that supports longer path names. I have the
> feeling I'm hitting a limit within cmd.exe. So instead of calling mkdir
> maybe using CreateDir() from the API would help.
>
> I just found something in the CreateDir() documentation:
>
> <quote>
> There is a default string size limit for paths of 248 characters.
> This limit is related to how the CreateDirectory function parses paths.
>
> Windows NT/2000/XP: To extend this limit to nearly 32,000 wide
> characters, call the Unicode version of the function and prepend
> "\\?\" to the path. For more information, see File Name Conventions.
> </quote>

Hmm. The cygwin mkdir has the same limitation. I suggest you try building
your own mkdir tool without limitations and setting the MKDIR variable so
that it is invoked instead of "mkdir".

-Dave

 


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