Wydanie standardowej biblioteki C PicoLibc 1.4.7

Keith Packard, aktywny programista Debiana, lider projektu X.Org i twórca wielu rozszerzeń X, w tym XRender, XComposite i XRandR, opublikowany wydanie standardowej biblioteki C PicoLibc 1.4.7, opracowany do użytku na urządzeniach wbudowanych z ograniczoną stałą pamięcią masową i pamięcią RAM. Podczas opracowywania część kodu została pożyczona z biblioteki nowa biblioteka z projektu Cygwin i Biblioteka AVR, opracowany dla mikrokontrolerów Atmel AVR. Kod PicoLibc dystrybuowane przez na licencji BSD. Montaż bibliotek jest obsługiwany dla architektur ARM (32-bitowych), i386, RISC-V, x86_64 i PowerPC.

Początkowo projekt rozwijał się pod nazwą „newlib-nano” i miał na celu przeróbkę niektórych funkcji Newlib wymagających dużych zasobów, których używanie na urządzeniach wbudowanych z małą ilością pamięci RAM było problematyczne. Na przykład funkcje stdio zostały zastąpione wersją kompaktową z biblioteki avrlibc. Kod został również oczyszczony z komponentów nieobjętych licencją BSD, które nie zostały użyte we wbudowanej kompilacji. Dodano uproszczoną wersję kodu inicjującego (crt0), a implementację wątków lokalnych przeniesiono z „struct _reent” do mechanizmu TLS (lokalna pamięć wątków). Do montażu służy zestaw narzędzi Meson.

W nowym wydaniu:

  • Dodano możliwość budowania przy użyciu zweryfikowane matematycznie kompilator Certyfikat Comp.
  • Dodano obsługę kompilatora Clang.
  • Zachowanie funkcji „gamma” zostało dostosowane do zachowania Glibc.
  • Implementacja nano-malloc zapewnia wyczyszczenie zwróconej pamięci.
  • Poprawiona wydajność nano-realloc, szczególnie podczas łączenia wolnych bloków i zwiększania rozmiaru sterty.
  • Dodano zestaw testów sprawdzających poprawność działania malloc.
  • Ulepszona obsługa platformy Windows i dodana możliwość budowania przy użyciu zestawu narzędzi mingw.
  • W systemach ARM, jeśli jest dostępny, włączony jest rejestr sprzętowy TLS (Thread-Local Storage).

Źródło: opennet.ru