Verëffentlechung vun der Standard C Bibliothéik PicoLibc 1.4.7

Keith Packard, aktiven Debian Entwéckler, Leader vum X.Org Projet a Schëpfer vu ville X Extensiounen, dorënner XRender, XComposite an XRandR, publizéiert Verëffentlechung vun der Standard C Bibliothéik PicoLibc 1.4.7, entwéckelt fir ze benotzen op embedded Geräter mat limitéierter permanenter Späichere a RAM. Wärend der Entwécklung gouf en Deel vum Code aus der Bibliothéik geléint neilib vum Cygwin Projet an AVR Libc, entwéckelt fir Atmel AVR Mikrokontroller. PicoLibc Code verdeelt duerch ënner BSD Lizenz. Bibliothéik Assemblée gëtt fir ARM (32-Bit), i386, RISC-V, x86_64 an PowerPC Architekturen ënnerstëtzt.

Am Ufank gouf de Projet ënner dem Numm "newlib-nano" entwéckelt a war gezielt fir e puer vun de Ressourceintensive Funktiounen vun Newlib ëmzeschaffen, déi problematesch waren fir op embedded Geräter mat wéineg RAM ze benotzen. Zum Beispill goufen d'Stdio-Funktiounen duerch eng kompakt Versioun vun der avrlibc-Bibliothéik ersat. De Code gouf och vun net-BSD-lizenzéierte Komponenten gebotzt, déi net am embedded Build benotzt ginn. Eng vereinfacht Versioun vum Initialiséierungscode (crt0) gouf bäigefüügt, an d'Ëmsetzung vu lokalen Threads gouf vun 'struct _reent' an den TLS Mechanismus (thread-lokal Stockage). De Meson Toolkit gëtt fir d'Versammlung benotzt.

An der neier Verëffentlechung:

  • Füügt d'Fäegkeet fir ze bauen benotzt mathematesch verifizéiert compiler CompCert.
  • Zousätzlech Ënnerstëtzung fir de Clang Compiler.
  • D'Behuele vun der 'Gamma' Funktioun gouf mat dem Verhalen vu Glibc ugepasst.
  • D'Nano-Malloc-Implementatioun garantéiert datt zréckginn Erënnerung geläscht gëtt.
  • Verbessert Leeschtung vun Nano-Realloc, besonnesch wann gratis Blocks fusionéieren an Heapgréisst ausbauen.
  • Eng Rei Tester bäigefüügt fir déi richteg Operatioun vu Malloc ze kontrolléieren.
  • Verbesserte Ënnerstëtzung fir d'Windows Plattform an huet d'Fäegkeet bäigefüügt fir mam mingw Toolkit ze bauen.
  • Op ARM Systemer, wa verfügbar, ass den TLS (Thread-Local Storage) Hardware Register aktivéiert.

Source: opennet.ru