Skip to content

Repin the C library, which now carries a caller's redirection into a spawn - #9

Merged
Sunrisepeak merged 1 commit into
mainfrom
fix/spawn-streams-abort-and-wnohang
Aug 28, 2026
Merged

Repin the C library, which now carries a caller's redirection into a spawn#9
Sunrisepeak merged 1 commit into
mainfrom
fix/spawn-streams-abort-and-wnohang

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

Depends on mcpplibs/openkal-musl#17
and must not merge before openkal-musl 0.6.0 is in the index.

openkal-musl 0.6.0 answers three defects reported as
openkal-linux#13, and two
of them are reachable from a program built above this runtime without that
program doing anything unusual:

  • a caller that redirects a standard stream and then starts a program — with
    posix_spawn, with system, or with fork and execve — had the started
    program write to the stream the caller had been started with;
  • abort did not end the program. musl's raise is tkill, the port had
    no case for it, and abort fell through to musl's own a_crash()hlt on
    x86_64. So every uncaught C++ exception over this runtime reported a
    segmentation fault rather than SIGABRT, which is this package's business
    directly: libc++abi's terminate handler ends in abort.

Nothing in this package changes. 0.3.00.3.1 records which C library a
consumer resolving this version is handed.

This run validates the pair before either is released.
tools/branch-graph.sh prefers a branch of the same name in each repository of
the ecosystem, and openkal-musl has one — so what is built here is that pull
request's working tree rather than a version that is not yet in the index.

…spawn

openkal-musl 0.6.0 answers three defects reported as openkal-linux#13, and two
of them are reachable from a program built above this runtime without that
program doing anything unusual.

A caller that redirects a standard stream and then starts a program --- with
posix_spawn, with system, or with fork and execve --- used to have the started
program write to the stream the CALLER had been started with. And abort did not
end the program: musl's raise is tkill, the port had no case for it, and abort
fell through to musl's own a_crash(), so every uncaught C++ exception over this
runtime reported a segmentation fault rather than SIGABRT. The second is this
runtime's business directly: libc++abi's terminate handler ends in abort.

Nothing in this package changes. 0.3.0 -> 0.3.1 records which C library a
consumer resolving this version is handed.
@Sunrisepeak
Sunrisepeak merged commit 81a6c04 into main Aug 28, 2026
5 checks passed
@Sunrisepeak
Sunrisepeak deleted the fix/spawn-streams-abort-and-wnohang branch August 28, 2026 04:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant