Пусната е стандартната Си-библиотека PicoLibc 1.8.6

Публикуван е релиз на стандартната Си-библиотека PicoLibc 1.8.6, разработвана от Кийт Пакард (Keith Packard, ръководител на проекта X.Org), за използване в вградени устройства с ограничен размер на постоянната памет и оперативна памет. При разработването част от кода е заимстван от библиотеката newlib от проекта Сygwin и 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 (памет за нишка). За сглобяване е използван инструментариумът 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.
  • Добавена е поддръжка за RISC архитектурата SuperH.
  • Подобрена е трасировката на стека при отстраняване на грешки в кода на изключенията на RISC-V системи.
  • Добавена е опцията „-Dfast-bufio=true“ за повишаване на ефективността при четене и запис с bufio.
  • Извършено е почистване на публичните inline-функции за споделяне на семантиката gnu_inline.
  • Повечето функции fenv за повишаване на производителността са прехвърлени на използването на inline-функции (gnu_inline) вместо на обикновени.
  • Създадена е алтернативна реализация на ctype, в която не се използва масив ctype и се извършва директно сравнение на стойностите.

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

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