-
-
Notifications
You must be signed in to change notification settings - Fork 230
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
<build>no on a library prevents installing/staging other libraries #104
Comments
Check the BOOST_LOG_WITHOUT_SETTINGS_PARSERS macro in the Jamfile and suppress building boost_log_setup if it is defined. The built library is empty in this case, and MSVC linker even produces no library, which later breaks installation. Fixes #164. Closes #165. Blocked by bfgroup/b2#104.
…abled. When settings parsers were disabled by a config macro, boost_log_setup would be empty, and MSVC linker would produce no library at all. This broke installing Boost.Log, as Boost.Build would expect a library file to be present. We're adding a dummy export from the library as a workaround, so that the library is always created, even if empty. This workaround should be considered temporary, until we can disable the library proper after a Boost.Build bug is fixed: bfgroup/b2#104 Closes #164. Closes #165.
This is now affecting Boost.Stacktrace installation on Linux in Boost 1.78 - no headers or libraries are installed for Boost.Stacktrace, ever. This is a major regression from 1.77. |
Reverting both #97 and #81 fixes this, at least for Boost.Stacktrace. cc @grisumbras |
It is very unfortunate that I see this issue just now. Can you check if #113 fixes this issue? |
Yes, at least Boost.Stacktrace installs with #113 applied. Thanks. |
…talls. In Boost 1.78.0, `b2 install` does not install Boost.Stacktrace binaries on Linux. Add a post-prelease note with a patch. Related issue: bfgroup/b2#104 Related PR: bfgroup/b2#113
Looks like this also affects Fiber: boostorg/fiber#290. |
Boost.Stacktrace is not included in 1.78.0 binaries, hopefully this gets resolved in the next release See: - boostorg/stacktrace#119 - bfgroup/b2#104
the patch for 1.78 wrt boost atomic.. stopped working? Surely not. Surely I broke it. Surely I should just look at 1.79. I wish boost would release patched versions. What's so scary about 1.78.1 or 1.79.1? |
Are you saying the issue isn't fixed for you? |
It was, then it wasn't. So it's definitely us (or some LTSC Visual Studio upgrade has scuppered something but I don't think that's what this is this time, because the patch+build are completing without error). It would just be nice if the patches were rolled into a patched release, so I didn't have to fret about my patching process falling over when e.g. my coworkers rearrange our nuget package builds rep. I had to modify the patch to work with our particular situation, and while it looks like the patch is still applying correctly since my colleague shuffled the repo folders about, I am now missing the boost-atomic mt gd x64 lib again :( |
@ncook-hxgn you could at least use the latest B2 instead of the one from the Boost distribution. But perhaps the extra, and separate, B2 build & install is a problem with your build process? |
I'm using the b2 from the 1.78.0 distribution as far as I am aware, which was reliable enough for me to merge our boost nuget packaging pipeline to main. I can try the latest, but I'm not sure it will help. The bundled one used to work. I'm going to rule out some it-was-me scenarios first.. |
@grafikrobot I have some facts. I don't got no reasons, but I got me some facts: if the source archive is extracted to .. Trying to not give away too much about the exact contents of my computer, but
Is there some sort of known issue for path length when building boost? |
There is, yes. It's a Windows limitation. See https://docs.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=cmd You can pass the |
@pdimov aha - now I did consider MAX_PATH. the path of the libboost_type_erasure-mt-gd-32.lib (~name) was 170 chars, including the filename.. so I kind of figured it likely wasn't that. However, on my old kit, I had enabled the long win32 paths option in GPO. I'm pretty sure it's enabled on our build machines too.. but it might not be on some newer ones.. I just threw something into my build to try some madness with a subst, but |
Well, |
Check the BOOST_LOG_WITHOUT_SETTINGS_PARSERS macro in the Jamfile and suppress building boost_log_setup if it is defined. The built library is empty in this case, and MSVC linker even produces no library, which later breaks installation. Fixes #164. Closes #165. Blocked by bfgroup/b2#104.
Make sure you completed the following tasks
Environment and version details
Problem description
When one of the libraries in a project has
<build>no
feature attached in requirements, other libraries in the same project are no longer installed in the stage/install directory, even if built. Here's an example Jamfile:Full project is here, place in
$BOOST_ROOT/libs
:foobar.tar.gz
Running
b2 -j8 --with-foobar stage
orb2 -j8 --prefix="<install_prefix>" --with-foobar link=shared install
only installs CMake files but no headers or libraries. Inbin.v2
libboost_foo.so.1.78.0 is actually built though.<build>no
should only affectboost_bar
and notboost_foo
.The text was updated successfully, but these errors were encountered: