PicoLibc 1.8.9 standard C library version

The release of version 1.8.9 of the standard C library PicoLibc has been published, developed by Keith Packard (leader of the X.Org project) for use on embedded devices with limited permanent storage and RAM. During development, some code was borrowed from the newlib library of the Cygwin project and AVR Libc, which was developed for Atmel AVR microcontrollers. The PicoLibc code is distributed under the BSD license. A library build is supported for ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k, PowerPC, LatticMico32, LoongArch, and OpenRisc architectures.

Alguses arenes projekt nimega «newlib-nano» ja oli suunatud teatud ressursinõudlike Newlibi funktsioonide töötlemisele, mis olid vaike rikka väikese RAM-iga sisseehitatud seadmetes probleemsed. Näiteks on PicoLibcis stdio funktsioonid asendatud kompaktse versiooniga avrlibc raamatukogust. Kood on puhastatud kasutamata komponentidest, mis ei ole BSD litsentsiga. Lisatud on lihtsustatud initsialiseerimise kood (crt0), ning rakenduslikud kõned on muudetud ‘struct _reent’ mehhanismilt TLS-iks (thread-local storage). Kogumiseks on kasutatud Meson tööriistu.

Uues väljaandes:

  • Toe lisamine LoongArch, OpenRISC ja LatticMico32 arhitektuuridele.
  • Pakutud uchar.h peafaili rakendust, mis ilmus C11 standardis.
  • Lisatud nano-malloc-clear-freed seade, et puhastada mälu, mis on vabastatud pärast free() või realloc() täitmist.
  • Rakendatud clang multilib kasutamise võimalus ARM64 süsteemides.
  • Üleminek uuele picolibc-ci-tools tööriistadele automaatseks kogumiseks pideva integreerimise süsteemides.
  • MIPS arhitektuurile on rakendatud «semihosting» tehnoloogia tuge, mis võimaldab koodi, mis töötab siluri või emulaatori keskkonnas, kasutada host-süsteemi sisendi/väljundi mehhanisme.
  • Xtensa protsessoritele on lisatud picocrt ja semihost tugi.
  • CoreBoot'iga kasutamiseks on lisatud seadistused.
  • Lisatud on memset_explicit() funktsioon, mis ilmus C23 standardis.
  • Sümbolite registritabelid on uuendatud Unicode 15.1.0 spetsifikatsioonile.
  • Newlib raamatukogust on kantud funktsioonid asnprintf() ja vasnprintf().
  • Lisatud on ARM-i arendatud FVP (Fixed Virtual Platforms) emulaatori tugi.
  • Toetatud on vanemaid GCC kompilaatori versioone (alla 4.4).
  • Iconv ja locale teostused on asendatud kompaktsemate variantidega, kus on kasutatud üldist koodi kodeeringute töötlemiseks.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster