PicoLibc стандарттык C китепканасынын чыгарылышы 1.4.7

Кит Паккард, активдүү Debian иштеп чыгуучусу, X.Org долбоорунун лидери жана XRender, XComposite жана XRandR сыяктуу көптөгөн X кеңейтүүлөрүн жаратуучу, жарыяланган стандарттуу C китепканасын чыгаруу PicoLibc 1.4.7, чектелген туруктуу сактагычы жана RAM менен камтылган түзмөктөрдө колдонуу үчүн иштелип чыккан. Иштеп чыгуу учурунда коддун бир бөлүгү китепканадан алынган newlib Cygwin долбоорунан жана AVR Libc, Atmel AVR микроконтроллерлери үчүн иштелип чыккан. PicoLibc коду жайылуу BSD лицензиясы боюнча. Китепкана жыйындысы ARM (32-бит), i386, RISC-V, x86_64 жана PowerPC архитектуралары үчүн колдоого алынат.

Башында, долбоор "newlib-nano" деген ат менен иштелип чыккан жана аз RAM менен орнотулган түзмөктөрдө колдонуу көйгөйлүү болгон Newlibтин ресурсту көп талап кылган айрым функцияларын кайра иштетүүгө багытталган. Мисалы, stdio функциялары avrlibc китепканасынын компакттуу версиясы менен алмаштырылган. Код ошондой эле камтылган түзүүдө колдонулбаган BSD лицензиясы жок компоненттерден тазаланган. Инициализациялоо кодунун (crt0) жөнөкөйлөштүрүлгөн версиясы кошулду жана локалдык жиптерди ишке ашыруу "struct _reent"тен TLS механизмине көчүрүлдү (жип-жергиликтүү сактоо). Meson инструменттери чогултуу үчүн колдонулат.

Жаңы чыгарылышта:

  • Колдонуу менен куруу мүмкүнчүлүгү кошулду математикалык жактан тастыкталган компилятор CompCert.
  • Clang компилятору үчүн кошумча колдоо.
  • "Гамма" функциясынын жүрүм-туруму Glibcтин жүрүм-турумуна ылайыкташтырылган.
  • Nano-malloc ишке ашыруу кайтарылган эстутум тазаланышын камсыз кылат.
  • Өзгөчө бош блокторду бириктиргенде жана үймөктүн көлөмүн кеңейткенде, nano-reallocтун жакшыртылган иштеши.
  • Mallocтун туура иштешин текшерүү үчүн бир катар тесттер кошулду.
  • Windows платформасы үчүн жакшыртылган колдоо жана mingw инструменттерин колдонуу менен куруу мүмкүнчүлүгү кошулду.
  • ARM системаларында, эгерде бар болсо, TLS (Thread-Local Storage) аппараттык реестри иштетилген.

Source: opennet.ru