Издание на стандартната C-библиотека PicoLibc 1.8.9.

Публикуван е релиз на стандартната C библиотека PicoLibc 1.8.9, развивана от Кийт Паккард (Keith Packard, лидер на проекта X.Org) за приложение на вградени устройства с ограничен размер на постоянното хранилище и оперативната памет. При разработката част от кода е заимстван от библиотеката newlib на проекта Cygwin и AVR Libc, развивана за микроконтролери Atmel AVR. Кодът на PicoLibc се разпространява под лицензия BSD. Поддържа се изграждане на библиотеката за архитектури ARM (32-бит), Aarch64, i386, RISC-V, x86_64, m68k, PowerPC, LatticMico32, LoongArch и OpenRisc.

Първоначално проектът се е развивал под името „newlib-nano“ и е бил насочен към преработка на някои ресурсоемки функции на Newlib, които са били проблематични за използване на вградени устройства с малко RAM. Например, в PicoLibc функциите stdio са заменени с компактна версия от библиотеката avrlibc. Кодът също така е почистен от неизползваеми компоненти в изграждането за вградени устройства, които не се предлагат под лицензия BSD. Добавен е опростен вариант на кода за инициализация (crt0), а реализацията на извикванията е прехвърлена от 'struct _reent' на механизма TLS (thread-local storage). За изграждане е използван инструментарият Meson.

В новото издание:

  • Добавена е поддръжка на архитектурите LoongArch, OpenRISC и LatticMico32.
  • Предложена е реализация на заглавния файл uchar.h, появил се в стандарта C11.
  • Добавена е настройка nano-malloc-clear-freed за почистване на паметта, освободена след извършване на free() или realloc().
  • Реализирана е възможността за използване на clang multilib на системи ARM64.
  • Извършен е преход на новия инструментарий picolibc-ci-tools за автоматично изграждане в системите за непрекъсната интеграция.
  • За архитектурата MIPS е реализирана поддръжка на технологията ‘semihosting’, позволяваща на кода, изпълняван в среда на отладчик или емулятор, да използва механизми за вход/изход на хост системата.
  • За процесорите Xtensa е добавена поддръжка на picocrt и semihost.
  • Добавени са настройки за използване с CoreBoot.
  • Добавена е функция memset_explicit(), появила се в стандарта C23.
  • Таблиците за преобразуване на регистра символи са обновени до спецификация Unicode 15.1.0.
  • От библиотеката newlib са пренесени функциите asnprintf() и vasnprintf().
  • Добавена е поддръжка на емулятора FVP (Fixed Virtual Platforms), развиван от ARM.
  • Добавена е поддръжка за стари версии на компилатора GCC (по-стари от 4.4).
  • Реализациите на iconv и locale са заменени с по-компактни варианти, в които е използван общ код за работа с кодировки.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster