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
> > no matter how they are formed?
> Exactly. Try it for yourself. Just repeat the mkdir && cd command
> and you will encounter an error sooner or later.
0123456789 && cd 01
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
> > 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:
> 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.
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".
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