Выпуск стандартной Си-библиотеки Musl 1.2.4

После года разработки представлен релиз стандартной Си-библиотеки Musl 1.2.4, предоставляющей реализацию libc, которая подходит для применения как на стационарных ПК и серверах, так и на мобильных системах, сочетая полноценную поддержку стандартов (как в Glibc) с небольшим размером, низким потреблением ресурсов и высокой производительностью (как в uClibc, dietlibc и Android Bionic). Имеется поддержка всех обязательных интерфейсов C99 и POSIX 2008, а также частично C11 и набор расширений для многопоточного программирования (POSIX threads), управления памятью и работы с локалями. Код Musl поставляется под свободной лицензией MIT.

Основные изменения:

  • В DNS-резолвер добавлена возможность отправки запроса по TCP в случае неудачного обращения по UDP, что решило проблему с запросом больших DNS-записей и наладило совместимость с рекурсивными DNS-серверами, не поддерживающими отдачу части результата в обрезанных UDP-ответах. Попутно устранено ещё несколько недоработок, связанных с DNS, таких как невозможность раздельной обработки состояний NODATA и
    NXDMOMAIN.
  • Объявлен устаревшим программный интерфейс “LFS64” (Large File Support), ранее реализованный через макросы, подменяющие имена (например, “#define stat64 stat”). Данный интерфейс теперь не предоставляется в режиме _GNU_SOURCE, но пока остаётся доступен при выставлении переменной “-D_LARGEFILE64_SOURCE” в CFLAGS.
  • В компоновщике и коде static-PIE реализована поддержка формата относительных перемещений адресов RELR (relative relocation), позволяющего сократить размер относительных перемещений в разделяемых объектах и исполняемых файлах, скомпонованных в режиме с PIE (Position-independent executables).
  • Устранена серия проблем в функциях семейства printf.
  • Исправлена некорректная расстановка порядка цифр и не цифр в функции strverscmp.
  • Устранено состояние гонки в логике синхронизации потоков, возникающее при завершении работы потока, а также в многопоточном fork-е, pthread_detach и POSIX-семафорах.
Release. Ссылка here.