Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Boost 1.67.0 Creates NTFS Junction During Install Process #58

Closed
MrM21632 opened this issue May 22, 2018 · 7 comments
Closed

Boost 1.67.0 Creates NTFS Junction During Install Process #58

MrM21632 opened this issue May 22, 2018 · 7 comments
Milestone

Comments

@MrM21632
Copy link

You may already be aware of this, but in case you're not, Boost 1.67.0 creates an NTFS junction when compiling and installing. Specifically, it seems to happen with Boost.Chrono:

mklink-or-dir boost\chrono\stopwatches
Junction created for boost\chrono\stopwatches <<===>> libs\chrono\stopwatches\include\boost\chrono\stopwatches
link.hardlink boost\chrono\stopwatches.hpp
Hardlink created for boost\chrono\stopwatches.hpp <<===>> libs\chrono\stopwatches\include\boost\chrono\stopwatches.hpp

It's not too severe of an issue (i.e., it doesn't cause the b2 process to fail), but it will cause 7-Zip to exit with a warning with how your script is currently set up, which in turn causes the script to exit prematurely:

Scan WARNINGS for files and folders:

include\boost\chrono\stopwatches\ : The system cannot find the path specified.
----------------
Scan WARNINGS: 1

There's not much information about this at the moment, aside from this bug report (I'm not the OP, but the other comment is from me). I don't yet know why this is happening with the latest version of Boost, but not the previous version(s).

@StephanTLavavej
Copy link
Owner

Thanks for letting me know!

@MrM21632
Copy link
Author

I think I've come up with at least a temporary solution. It seems as though there are some header files in the libs/chrono/stopwatches/include/boost/chrono directory that aren't included in boost/chrono, and (I'm guessing) are needed at some point during compiling. All I did was add this command right before calling ./bootstrap.sh in the script:

cp -a libs/chrono/stopwatches/include/boost/chrono/. boost/chrono

to copy those files into boost/chrono. Now the junction isn't being created, allowing the script to continue uninterrupted.

StephanTLavavej added a commit that referenced this issue Jun 25, 2018
Add a workaround for #58.
@StephanTLavavej
Copy link
Owner

According to René Rivera, "Those links are supposed to appear only for the git checkout of @Boost_Libraries and are created on demand when headers are reference during the header scanning. Creating those for a release is a bug in the release process."

@grafikrobot
Copy link

PS. It's also a bug in 7-zip that it can't deal with junctions ;-)

@StephanTLavavej
Copy link
Owner

I'm not actually sure if 7-Zip is at fault, given that my build script deletes the source directory before attempting to zip the destination directory. (I didn't investigate whether reversing the order changed anything.)

@StephanTLavavej
Copy link
Owner

Steven Watanabe said: "I think this will fix it, but I haven't tested it: boostorg/release-tools#12"

@StephanTLavavej
Copy link
Owner

Fixed by boostorg/chrono@2b1ddde , verified with Boost 1.69.0.

@StephanTLavavej StephanTLavavej added this to the v16.1 milestone Jan 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants