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

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

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

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

  • Пренесени са изменения от Newlib 4.4.0, като поддръжка на типа „long double“ за архитектурите i386, RISC-V, Aarch64 и x86_64, поддръжка на разширения RISC-V Zfinx/Zdinx, възможност за използване на маски при вмъкване на директории, реализиране на порт за Xtensa процесори, отделяне на обработчиците printf в отделни файлове за намаляване на размера при линковка.
  • В picolibc.ld са добавени символи „__eh_*“ за LLVM libunwind.
  • Включена е тестова поддръжка за 32-битови SPARC системи.
  • Осигурена е поддръжка на целеви платформи с нетипични плаващи типове, които сега са отразени в 32-, 64-, 80- и 128-битови типове в кода на picolibc.
  • Добавена е поддръжка за архитектурата SuperH на RISC.
  • Подобрен е стековият трасер при отстраняване на кодови изключения на RISC-V системи.
  • Добавена е опция „-Dfast-bufio=true“ за повишаване на ефективността на четене и запис при използване на bufio.
  • Проведена е чистка на публични inline функции за съвместно ползване на семантиката gnu_inline.
  • Повечето функции fenv за повишаване на производителността са пренесени да използват inline функции (gnu_inline) вместо обикновени.
  • Създадена е алтернативна реализация на ctype, в която не се използва масив ctype и се извършва директно сравнение на стойностите.

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

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