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

Кит Паккард (Keith Packard), активный разработчик Debian, лидер проекта X.Org и создатель множества X-расширений, включая XRender, XComposite и XRandR, опубликовал выпуск стандартной Си-библиотеки PicoLibc 1.4.7, развиваемой для применения на встраиваемых устройствах с ограниченным размером постоянного хранилища и оперативной памяти. При разработке часть кода заимствована из библиотеки newlib от проекта Сygwin и AVR Libc, развивавшейся для микроконтроллеров Atmel AVR. Код PicoLibc распространяется под лицензией BSD. Поддерживается сборка библиотеки для архитектур ARM (32-bit), i386, RISC-V, x86_64 и PowerPC.

Изначально проект развивался под именем «newlib-nano» и был нацелен на переработку некоторых ресурсоёмких функций Newlib, которые было проблематично использовать на встраиваемых устройствах с небольшим ОЗУ. Например, функции stdio были заменены на компактный вариант из библиотеки avrlibc. Код также был вычищен от не используемых в сборке для встраиваемых устройств компонентов, поставляемых не под лицензией BSD. Добавлен упрощённый вариант кода инициализации (crt0), а реализация локальных потоков переведена с 'struct _reent' на механизм TLS (thread-local storage). Для сборки задействован инструментарий Meson.

В новом выпуске:

  • Добавлена возможность сборки с использованием математически верифицированного компилятора CompCert.
  • Добавлена поддержка компилятора Clang.
  • Поведение функции 'gamma' приведено в соответствие с поведением Glibc.
  • В реализации nano-malloc обеспечена обязательная очистка возвращаемой памяти.
  • Повышена производительность nano-realloc, особенно при выполнении операций слияния свободных блоков и раcширения размера кучи.
  • Добавлен набор тестов для проверки корректности работы malloc.
  • Улучшена поддержка платформы Windows и добавлена возможность сборки с использованием инструментария mingw.
  • На система ARM при наличии задействован аппаратный регистр TLS (Thread-Local Storage).



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

© OpenNet