Standarta C bibliotēkas PicoLibc 1.8.6 izlaišana

Ir publicēts standarta C bibliotēkas PicoLibc 1.8.6 laidiens, ko izstrādājis Kīts Pakards (X.Org projekta vadītājs) lietošanai iegultās ierīcēs ar ierobežotu pastāvīgās atmiņas un operatīvās atmiņas apjomu. Izstrādes laikā daļa koda tika aizgūta no newlib bibliotēkas no Cygwin un AVR Libc projekta, kas izstrādāta Atmel AVR mikrokontrolleriem. PicoLibc kods tiek izplatīts saskaņā ar BSD licenci. Bibliotēkas montāža tiek atbalstīta ARM (32 bitu), Aarch64, i386, RISC-V, x86_64, m68k un PowerPC arhitektūrām.

Sākotnēji projekts tika izstrādāts ar nosaukumu “newlib-nano”, un tā mērķis bija pārveidot dažas Newlib resursietilpīgās funkcijas, kuras bija problemātiski izmantot iegultās ierīcēs ar mazu RAM. Piemēram, programmā PicoLibc stdio funkcijas tiek aizstātas ar kompakto versiju no avrlibc bibliotēkas. Kods ir arī notīrīts no komponentiem, kas netiek izmantoti iegultās ierīces komplektā un kas netiek piegādāti saskaņā ar BSD licenci. Ir pievienota vienkāršota inicializācijas koda (crt0) versija, un zvanu ieviešana no ‘struct _reent’ ir pārcelta uz TLS (thread-local storage) mehānismu. Montāžai tiek izmantots Meson instrumentu komplekts.

Jaunajā laidienā:

  • Ir pārnestas izmaiņas no Newlib 4.4.0, piemēram, atbalsts “long double” tipam uz i386, RISC-V, Aarch64 un x86_64 arhitektūrām, atbalsts RISC-V Zfinx/Zdinx paplašinājumiem, iespēja izmantot maskas, ievietojot direktorijus. , Xtensa procesoru porta ieviešana, izdalot printf apdarinātājus atsevišķos failos, lai saistīšanas laikā samazinātu izmēru.
  • Pievienoti simboli "__eh_*" picolibc.ld, kas paredzēts LLVM libunwind.
  • Ir iekļauts pārbaudes atbalsts 32 bitu SPARC sistēmām.
  • Nodrošināts atbalsts mērķa platformām ar netipiskiem peldošā komata tipiem, kas tagad ir atspoguļoti 32, 64, 80 un 128 bitu tipos pikolibc kodā.
  • Pievienots SuperH RISC arhitektūras atbalsts.
  • Uzlabota steka izsekošana, atkļūdojot izņēmuma kodu RISC-V sistēmās.
  • Pievienota opcija "-Dfast-bufio=true", lai uzlabotu lasīšanas un rakstīšanas efektivitāti, lietojot bufio.
  • Iztīrītas publiskās iekļautās funkcijas, lai kopīgotu gnu_inline semantiku.
  • Lielākā daļa fenv funkciju ir pārvietotas, lai izmantotu iekļautās funkcijas (gnu_inline), nevis parastās funkcijas, lai uzlabotu veiktspēju.
  • Ir izveidota alternatīva ctype ieviešana, kas neizmanto ctype masīvu un veic tiešu vērtību salīdzināšanu.

Avots: opennet.ru

Pievieno komentāru