Как на самом деле обнаружить musl libc? - PullRequest
0 голосов
/ 01 октября 2019

Команда musl утверждает, что нет необходимости в обнаружении musl libc, потому что они реализуют только стандартную функциональность и не имеют причуд, требующих обнаружения.

Вплоть до сегодняшнего дня это утверждение вполне могло быть верным, но это больше не правда. Обычное обнаружение функции не работает, потому что функция есть, но не работает, я бы не стал ее проверять, потому что я не хочу требовать root во время компиляции и запрещать кросс-компиляцию. Сообщалось об ошибке с минимизированным примером кода, и сопровождающие вообще не хотят его исправлять, и они не примут мой патч.

Я не собираюсь наказывать любой другой libc, потому что у musl сломан

С логической точки зрения я хочу сделать

#if MUSL || APPLE
    pid = fork();
#else
    pid = vfork();
#endif

там, где у меня уже есть #if APPLE, поскольку у Mac OSX нет ненадежного vfork().

Нет смыслаговорить мне vfork() это плохо. Ситуация изменилась с 2008 года, и vfork() - лучший выбор, когда это возможно, вне зависимости от сложности. Источник: https://gist.github.com/nicowilliams/a8a07b0fc75df05f684c23c18d7db234

...