Выпуск стандартнай Сі-бібліятэкі PicoLibc 1.4.7

Кіт Пакард (Keith Packard), актыўны распрацоўшчык Debian, лідэр праекта X.Org і стваральнік мноства X-пашырэнняў, уключаючы XRender, XComposite і XRandR, апублікаваў выпуск стандартнай Сі-бібліятэкі PicoLibc 1.4.7, якая развіваецца для прымянення на ўбудаваных прыладах з абмежаваным памерам пастаяннага сховішча і аператыўнай памяці. Пры распрацоўцы частка кода запазычана з бібліятэкі новая бібліятэка ад праекту С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, асабліва пры выкананні аперацый зліцця вольных блокаў і пашырэнні памеру кучы.
  • Дададзены набор тэстаў для праверкі карэктнасці працы malloc.
  • Палепшана падтрымка платформы Windows і дададзена магчымасць зборкі з выкарыстаннем інструментара mingw.
  • На сістэмах ARM пры наяўнасці задзейнічаны апаратны рэгістр TLS (Thread-Local Storage).

Крыніца: opennet.ru