musl チームは、musl libc を検出する方法は必要ないと主張しています。なぜなら、musl libc は標準機能のみを実装しており、検出が必要な癖がないからです。
今日まで、その主張は十分に真実だったかもしれませんが、もはや真実ではありません。機能はあるが壊れているため、通常の機能検出は機能していません。コンパイル時にルートを要求したくないため、クロスコンパイルを許可しないため、プローブしたくありません。バグは最小化されたサンプル コードで報告されており、メンテナーはそれを修正することをまったく望んでおらず、私のパッチも受け取りません。
musl には壊れた機能があるため、他のすべての libc にペナルティを課すつもりはありません。
論理的に言えばやりたい
#if MUSL || APPLE
pid = fork();
#else
pid = vfork();
#endif
#if APPLE
Mac OSXには信頼できないvfork()
.
vfork()
悪いと言われても仕方がない。状況は 2008 年以降変化しておりvfork()
、関係する複雑さに関係なく、可能な限りより良い選択です。ソース: https://gist.github.com/nicowilliams/a8a07b0fc75df05f684c23c18d7db234