Cygwin problem caused by config.hpp defining BOOST_USE_UCONTEXT

Open
#172 10 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
cpp

Research direction

Start with include/boost/context/detail/config.hpp at the linked lines and inspect how Cygwin selects the context implementation. Compare that choice with boostorg/coroutine's src/detail/coroutine_context.cpp and build Fiber, Context, and Coroutine on Cygwin. Done means the three components select compatible implementations and build successfully.

Written by the indexing model from the issue text.

Description

https://github.com/boostorg/context/blob/fb0f3eab4d14ce2de4cf3a5446c8a0f735a9282d/include/boost/context/detail/config.hpp#L33-L35

defines BOOST_USE_UCONTEXT on Cygwin. This causes Fiber to fail to build, because it tries to use ucontext, but Context is built with fcontext.

If Context is built with ucontext instead, Fiber builds, but then Coroutine fails, because it needs fcontext:

https://github.com/boostorg/coroutine/blob/4e47f98d44ad0d5d487788ed6eb4d347489e5483/src/detail/coroutine_context.cpp#L68

Should config.hpp be defining BOOST_USE_UCONTEXT on Cygwin?

Dominant language
Assembly
Stars
371
Forks
185
Avg merge
4d 13h
Merged PRs (30d)
1

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from boostorg/context

All issues in boostorg/context

Similar issues

More Operating Systems issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.