I just updated to the latest develop. I ran bootstrap, then nuked my boost directory and reran b2 headers. Worked fine. Then I changed directory to libs/proto/test and ran ../../../b2 mem_ptr to run a test. Here's what I get: f:\modular-boost\libs\proto\test>..\..\..\b2 mem_ptr Performing configuration checks - symlinks supported : no - junctions supported : yes - hardlinks supported : yes ...patience... ...patience... ...found 4951 targets... ...updating 441 targets... common.mkdir ..\..\..\bin.v2\libs common.mkdir ..\..\..\bin.v2\libs\proto common.mkdir ..\..\..\bin.v2\libs\proto\test common.mkdir ..\..\..\bin.v2\libs\proto\test\mem_ptr.test common.mkdir ..\..\..\bin.v2\libs\proto\test\mem_ptr.test\msvc-12.0 common.mkdir ..\..\..\bin.v2\libs\proto\test\mem_ptr.test\msvc-12.0\debug common.mkdir ..\..\..\bin.v2\libs\proto\test\mem_ptr.test\msvc-12.0\debug\link-static common.mkdir ..\..\..\bin.v2\libs\proto\test\mem_ptr.test\msvc-12.0\debug\link-static\threading-multi link.rm ..\..\..\boost\mpl common.mkdir ..\..\..\boost\mpl link.hardlink ..\..\..\boost\mpl\print.hpp Hardlink created for ..\..\..\boost\mpl\print.hpp <<===>> ..\..\mpl\include\boost\mpl\print.hpp <snip> link.rm ..\..\..\boost\numeric\conversion link.hardlink ..\..\..\boost\numeric\conversion\conversion_traits.hpp The system cannot find the path specified. if exist "..\..\..\boost\numeric\conversion\conversion_traits.hpp" del "..\..\..\boost\numeric\conversion\conversion _traits.hpp" mklink /H "..\..\..\boost\numeric\conversion\conversion_traits.hpp" "..\..\numeric\conversion\include\boost\numeric\ conversion\conversion_traits.hpp" ...failed link.hardlink ..\..\..\boost\numeric\conversion\conversion_traits.hpp... link.hardlink ..\..\..\boost\numeric\conversion\int_float_mixture_enum.hpp The system cannot find the path specified. For some reason, b2 thinks it needs to rerun b2 headers, but it does a crap job of it and dies. What's going on? Eric
AMDG On 07/15/2014 05:03 PM, Eric Niebler wrote:
<snip>
link.rm ..\..\..\boost\numeric\conversion link.hardlink ..\..\..\boost\numeric\conversion\conversion_traits.hpp The system cannot find the path specified.
if exist "..\..\..\boost\numeric\conversion\conversion_traits.hpp" del "..\..\..\boost\numeric\conversion\conversion _traits.hpp" mklink /H "..\..\..\boost\numeric\conversion\conversion_traits.hpp" "..\..\numeric\conversion\include\boost\numeric\ conversion\conversion_traits.hpp"
...failed link.hardlink ..\..\..\boost\numeric\conversion\conversion_traits.hpp... link.hardlink ..\..\..\boost\numeric\conversion\int_float_mixture_enum.hpp The system cannot find the path specified.
For some reason, b2 thinks it needs to rerun b2 headers, but it does a crap job of it and dies. What's going on?
There are two problems here. First, the check that determines whether the linked directory matches the existing link seems to be failing (That's probably why it's rebuilding). I'm guessing that the path comparison algorithm is wrong, somehow. Second, the link is created without creating the directory that contains it first. I have no idea how that can happen. If you run b2 headers twice, starting from a clean checkout, the second run should do nothing. Is that the case? Does your problem appear for any library? In Christ, Steven Watanabe
Hi Steven, Am Dienstag, 15. Juli 2014, 22:37:16 schrieb Steven Watanabe:
AMDG
On 07/15/2014 05:03 PM, Eric Niebler wrote:
For some reason, b2 thinks it needs to rerun b2 headers, but it does a crap job of it and dies. What's going on?
There are two problems here. First, the check that determines whether the linked directory matches the existing link seems to be failing (That's probably why it's rebuilding). I'm guessing that the path comparison algorithm is wrong, somehow. Second, the link is created without creating the directory that contains it first. I have no idea how that can happen.
If you run b2 headers twice, starting from a clean checkout, the second run should do nothing. Is that the case? Does your problem appear for any library?
I can reproduce this. Please find the complete output of three consecutive "b2 headers" jobs attached. All on current develop branch. The first one : ...updating 488 targets... The second: ...updating 2175 targets... The third: ...updating 280 targets... It seems that the hardlinks for the directories created in the first run are replaced with new directories containing file hardlinks in the second run. This sometimes fails horrible. Yours, Jürgen -- * Dipl.-Math. Jürgen Hunold ! * voice: ++49 4257 300 ! Fährstraße 1 * fax : ++49 4257 300 ! 31609 Balge/Sebbenhausen * jhunold@gmx.eu ! Germany
On 7/15/2014 9:37 PM, Steven Watanabe wrote:
AMDG
On 07/15/2014 05:03 PM, Eric Niebler wrote:
<snip>
link.rm ..\..\..\boost\numeric\conversion link.hardlink ..\..\..\boost\numeric\conversion\conversion_traits.hpp The system cannot find the path specified.
if exist "..\..\..\boost\numeric\conversion\conversion_traits.hpp" del "..\..\..\boost\numeric\conversion\conversion _traits.hpp" mklink /H "..\..\..\boost\numeric\conversion\conversion_traits.hpp" "..\..\numeric\conversion\include\boost\numeric\ conversion\conversion_traits.hpp"
...failed link.hardlink ..\..\..\boost\numeric\conversion\conversion_traits.hpp... link.hardlink ..\..\..\boost\numeric\conversion\int_float_mixture_enum.hpp The system cannot find the path specified.
For some reason, b2 thinks it needs to rerun b2 headers, but it does a crap job of it and dies. What's going on?
There are two problems here. First, the check that determines whether the linked directory matches the existing link seems to be failing (That's probably why it's rebuilding). I'm guessing that the path comparison algorithm is wrong, somehow. Second, the link is created without creating the directory that contains it first. I have no idea how that can happen.
If you run b2 headers twice, starting from a clean checkout, the second run should do nothing. Is that the case? Does your problem appear for any library?
Huh, it's not doing it for me now. That's so weird. \e
If you run b2 headers twice, starting from a clean checkout, the second run should do nothing. Is that the case? Does your problem appear for any library?
Huh, it's not doing it for me now. That's so weird.
The first time I call b2 headers, I creates a link for the headers that
works fine. The second time, it creates a copy, with only the files in the first level of the directory (no subdirectories), which causes builds to fail for libraries containing a "detail" subdir. It's as if xcopy is being called without the /s (recursive) option the second time around.
AMDG On 07/16/2014 11:44 PM, Eric Niebler wrote:
On 7/15/2014 9:37 PM, Steven Watanabe wrote:
On 07/15/2014 05:03 PM, Eric Niebler wrote:
<snip>
...failed link.hardlink ..\..\..\boost\numeric\conversion\conversion_traits.hpp... link.hardlink ..\..\..\boost\numeric\conversion\int_float_mixture_enum.hpp The system cannot find the path specified.
For some reason, b2 thinks it needs to rerun b2 headers, but it does a crap job of it and dies. What's going on?
<snip>
Huh, it's not doing it for me now. That's so weird.
For the record, I found the problem and it should be fixed in develop. It would only appear when adding a new library or (especially) splitting an existing library. The problem would not appear in a clean build; only when an existing b2 headers needed to be updated. Hence, why the problem seemed to vanish. In Christ, Steven Watanabe
On 2/26/2015 4:15 PM, Steven Watanabe wrote:
AMDG
On 07/16/2014 11:44 PM, Eric Niebler wrote:
On 7/15/2014 9:37 PM, Steven Watanabe wrote:
On 07/15/2014 05:03 PM, Eric Niebler wrote:
<snip>
...failed link.hardlink ..\..\..\boost\numeric\conversion\conversion_traits.hpp... link.hardlink ..\..\..\boost\numeric\conversion\int_float_mixture_enum.hpp The system cannot find the path specified.
For some reason, b2 thinks it needs to rerun b2 headers, but it does a crap job of it and dies. What's going on?
<snip>
Huh, it's not doing it for me now. That's so weird.
For the record, I found the problem and it should be fixed in develop.
Wow, thanks Steven! -- Eric Niebler Boost.org http://www.boost.org
participants (4)
-
Eric Niebler
-
Jürgen Hunold
-
Steven Ross
-
Steven Watanabe