Opened 9 years ago

Last modified 9 years ago

#8934 new Bugs

b2 : failed to write output file

Reported by: jeffrey.beu.uz8yz6yl@… Owned by: Vladimir Prus
Milestone: To Be Determined Component: build
Version: Boost 1.54.0 Severity: Problem
Keywords: Cc:

Description

Hello,

Executing b2.exe within cmd.exe or powershell :

and

Building boost_1_54_0 with :

b2 --debug-building --prefix=%USERPROFILE%\pkg\indie\boost address-model=64 --exec-prefix=%USERPROFILE%\programs\boost --libdir=%USERPROFILE%\pkg\lib --includedir=%USERPROFILE%\pkg\include --build-type=complete --build-dir=..\tmp pch=off debug-symbols=on debug-store=database install 2>&1 >> ..\boostbuild.txt

results in an error :

failed to write output file '..\tmp\boost\bin.v2\libs\program_options\build\msvc-11.0\release\address-model-64\debug-store-database\debug-symbols-on\link-static\pch-off\runtime-link-static\threading-multi\libboost_program_options-vc110-mt-s-1_54.lib.rsp'!

My initial thoughts path name is it approaching the MAX_PATH, so I tried redirecting echo to the name file within cmd.exe; it resulted in The system cannot find the path specified.

In powershell, echo redirection was successful but the build still failed at the same point.

The full path length is 246 : python -c "print(len(r'C:\Users\Arkhe_2\pkg\src\tmp\boost\bin.v2\libs\program_options\build\msvc-11.0\release\address-model-64\debug-store-database\debug-symbols-on\link-static\pch-off\runtime-link-static\threading-multi\libboost_program_options-vc110-mt-s-1_54.lib.rsp'))"

File system is NTFS located on a usb interconnected hard drive.

Thanks for the great work.

Attachments (1)

openfile.c (1.2 KB ) - added by jeffrey.beu.uz8yz6yl@… 9 years ago.
fopen substitute

Download all attachments as: .zip

Change History (5)

by jeffrey.beu.uz8yz6yl@…, 9 years ago

Attachment: openfile.c added

fopen substitute

comment:1 by jeffrey.beu.uz8yz6yl@…, 9 years ago

Substituted occurrences of fopen in bjam/b2 source file with openfile.c which simply converts the arguments to wchar_t; prefixes the path with the voodoo of \ \ ? \ which allows very long path names in windows; then calls the _wfopen.

Boost is now building fine.

openfile is not meant to be a patch, just a quick fix that demonstrates a primitive resolution.

comment:2 by viboes, 9 years ago

Component: Nonebuild
Owner: set to Vladimir Prus

comment:3 by Steven Watanabe, 9 years ago

You can use --abbreviate-paths or --hash to limit the path lengths. While it would be better for b2 to handle these paths safely, it's better to avoid them, as other tools can also have problems with them.

in reply to:  3 comment:4 by jeffrey.beu.uz8yz6yl@…, 9 years ago

Replying to steven_watanabe:

You can use --abbreviate-paths or --hash to limit the path lengths. While it would be better for b2 to handle these paths safely, it's better to avoid them, as other tools can also have problems with them.

Thanks Steve!

Note: See TracTickets for help on using tickets.