Vakio C-kirjaston PicoLibc julkaisu 1.4.7

Keith Packard, aktiivinen Debian-kehittäjä, X.Org-projektin johtaja ja monien X-laajennusten luoja, mukaan lukien XRender, XComposite ja XRandR, julkaistu standardin C-kirjaston julkaisu PicoLibc 1.4.7, kehitetty käytettäväksi sulautetuissa laitteissa, joissa on rajoitettu pysyvä tallennustila ja RAM. Kehityksen aikana osa koodista lainattiin kirjastosta newlib Cygwin-projektista ja AVR Libc, kehitetty Atmel AVR -mikro-ohjaimille. PicoLibc koodi jakelija BSD-lisenssillä. Kirjastokokoonpanoa tuetaan ARM- (32-bittinen), i386-, RISC-V-, x86_64- ja PowerPC-arkkitehtuureissa.

Aluksi projekti kehitettiin nimellä "newlib-nano", ja sen tarkoituksena oli muokata joitain Newlibin resurssiintensiivisiä toimintoja, joita oli ongelmallista käyttää sulautetuissa laitteissa, joissa oli vähän RAM-muistia. Esimerkiksi stdio-funktiot on korvattu kompaktilla versiolla avrlibc-kirjastosta. Koodi on myös puhdistettu ei-BSD-lisensoiduista komponenteista, joita ei käytetä sulautetussa versiossa. Alustuskoodin (crt0) yksinkertaistettu versio on lisätty, ja paikallisten säikeiden toteutus on siirretty 'struct _reent':stä TLS-mekanismiin (lankapaikallinen tallennustila). Kokoonpanossa käytetään Meson-työkalusarjaa.

Uudessa julkaisussa:

  • Lisätty kyky rakentaa käyttämällä matemaattisesti vahvistettu kääntäjä CompCert.
  • Lisätty tuki Clang-kääntäjälle.
  • Gamma-funktion käyttäytyminen on saatettu linjaan Glibc:n käyttäytymisen kanssa.
  • Nano-malloc-toteutus varmistaa, että palautettu muisti tyhjennetään.
  • Parannettu nano-reallocin suorituskyky, erityisesti kun yhdistetään vapaita lohkoja ja laajennetaan kasan kokoa.
  • Lisätty joukko testejä mallocin oikean toiminnan tarkistamiseksi.
  • Parannettu tuki Windows-alustalle ja lisätty mahdollisuus rakentaa mingw-työkalupakin avulla.
  • ARM-järjestelmissä TLS (Thread-Local Storage) -laitteistorekisteri on käytössä, jos se on käytettävissä.

Lähde: opennet.ru