Выпуск стандартной Си-библиотеки 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-семафорах.



Источник: http://www.opennet.ru/opennews/art.shtml? num=59069

© OpenNet