context icon indicating copy to clipboard operation
context copied to clipboard

Segfault with ucontext on macOS (#184, continued)

Open francoisk opened this issue 2 years ago • 3 comments

Although #213, accepted in #184, did apparently fix part of the problem, Boost.Context's own example programs still segfault due to the _XOPEN_SOURCE issue described in that pull request: if a Boost.Context client includes (for example) a standard C++ header before a Boost.Context one, _XOPEN_SOURCE is not defined when the ucontext struct is defined, resulting in its definition having fewer fields than when _XOPEN_SOURCE is defined, as Boost.Context expects it to be. Thus the segfault.

For example, I fixed the fibonacci example's segfault by moving #include <boost/context/fiber.hpp> above the inclusions of the stdlib headers.

Seems like the best workaround at this point is to export -D_XOPEN_SOURCE to clients from Boost.Context's build.

francoisk avatar Sep 06 '23 09:09 francoisk

Could you check if this issue is solved by #236 (branch develop)?! I can't do it because I don't own a MAC system.

olk avatar Oct 01 '23 14:10 olk

Finally got to it but looks like the problem persists. I tested develop at be271d3e4758b260947b9b0c20855c1ba33cf346. The fibonacci example still segfaults and moving the fiber.hpp include to the top still fixes it.

francoisk avatar Jan 03 '24 08:01 francoisk

seams to be an issue of defining _XOPEN_SOURCE in fiber.hpp

olk avatar Mar 10 '24 19:03 olk