boost: backport regression fixes for boost.context - #546405
Merged
roberth merged 1 commit intoJul 29, 2026
Merged
Conversation
Applies the fixes for 1.88 regressions that have caused widespread breakage in Nix. Currently we are building with 1.89, so only 2 fixes are relevant [1,2], with the second patch being backported to avoid conflicts - the issue it addresses doesn't blow up in nix - but it does in userver and other stuff too probably. The third patch was authored by NaN-git to unbreak nix with 1.89, so we apply it to 1.88 (the initial version that had the fiber-specific exception state changes with fcontext and libstdc++). This is mostly for consistency and unbreak boost.context on that version. [1]: boostorg/context#337 [2]: boostorg/context#331
Contributor
Author
|
On the nix side there's a test for the bug and we've backported the stuff in our packaging (to be backported for release binary packages point releases soon) NixOS/nix#16197. |
xokdvium
commented
Jul 27, 2026
| # std::uncaught_exceptions for abandoned coroutines under libstdc++ and fcontext implementation. | ||
| # This bug also caused subtle breakage in Nix. See https://github.com/NixOS/nix/issues/16174. | ||
| ++ | ||
| lib.optional (lib.versionAtLeast version "1.88.0" && lib.versionOlder version "1.93.0") |
Contributor
Author
There was a problem hiding this comment.
This isn't yet included in any release, so I left the 1.93.0 as the placeholder for the next release that patch of mine should be included in.
Member
There was a problem hiding this comment.
Merged, so reasonable to assume this works out just fine when released.
3 tasks
roberth
approved these changes
Jul 29, 2026
Contributor
|
Successfully created backport PR for |
13 tasks
13 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Applies the fixes for 1.88 regressions that have caused widespread breakage in Nix. Currently we are building with 1.89, so only 2 fixes are relevant [1,2], with the second patch being backported to avoid conflicts - the issue it addresses doesn't blow up in nix - but it does in userver and other stuff too probably. The third one is 1.88-only and is included in upstream >= 1.89.
The third patch was authored by NaN-git to unbreak nix with 1.89, so we apply it to 1.88 (the initial version that had the fiber-specific exception state changes with fcontext and libstdc++). This is mostly for consistency and unbreak boost.context on that version.
Even though we have only observed this breakage in Nix, I'm pretty sure any serious consumer of boost.context and downstream boost libraries (like asio/coroutine2 e.t.c.) is similarly broken currently so I'd prefer that we fix the root cause here instead of rolling a gazillion workarounds everywhere.
Things done
passthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/.