Standardse C-teegi PicoLibc 1.4.7 väljalase

Keith Packard, aktiivne Debiani arendaja, projekti X.Org juht ja paljude X laienduste looja, sealhulgas XRender, XComposite ja XRandR, avaldatud standardse C raamatukogu väljalase PicoLibc 1.4.7, mis on välja töötatud kasutamiseks manustatud seadmetes, millel on piiratud kogus püsimälu ja RAM. Arenduse käigus laenati osa koodist raamatukogust newlib Cygwini projektist ja AVR Libc, mis on välja töötatud Atmel AVR mikrokontrollerite jaoks. PicoLibc kood jaotatud BSD litsentsi alusel. Teegi kokkupanekut toetavad ARM-i (32-bitine), i386, RISC-V, x86_64 ja PowerPC arhitektuurid.

Algselt töötati projekt välja nime all "newlib-nano" ja selle eesmärk oli ümber töötada mõned Newlibi ressursimahukad funktsioonid, mille kasutamine vähese RAM-iga manustatud seadmetes oli problemaatiline. Näiteks stdio funktsioonid on asendatud avrlibc teegi kompaktse versiooniga. Kood on puhastatud ka mitte-BSD-litsentsiga komponentidest, mida manustatud järgus ei kasutatud. Initsialiseerimiskoodi (crt0) lihtsustatud versioon on lisatud ja kohalike lõimede rakendamine on viidud 'struct _reent'-lt TLS-i mehhanismi (niit-kohalik salvestus). Kokkupanekuks kasutatakse Mesoni tööriistakomplekti.

Uues väljaandes:

  • Lisatud võimalus ehitada kasutades matemaatiliselt kontrollitud koostaja CompCert.
  • Lisatud Clangi kompilaatori tugi.
  • Funktsiooni 'gamma' käitumine on viidud kooskõlla Glibci käitumisega.
  • Nano-malloc rakendus tagab tagastatud mälu tühjendamise.
  • Nano-realloci parem jõudlus, eriti vabade plokkide ühendamisel ja kuhja suuruse suurendamisel.
  • Lisatud testide komplekt malloci õige toimimise kontrollimiseks.
  • Täiustatud tugi Windowsi platvormile ja lisatud võimalus luua mingw tööriistakomplekti kasutades.
  • ARM-süsteemides on TLS-i (Thread-Local Storage) riistvararegister (kui see on saadaval) lubatud.

Allikas: opennet.ru