Wydanie standardowych bibliotek C Musl 1.2.3 i PicoLibc 1.7.6

Zaprezentowano wydanie standardowej biblioteki C Musl 1.2.3, zapewniającej implementację libc, która nadaje się do użytku zarówno na komputerach stacjonarnych i serwerach, jak i na systemach mobilnych, łącząc pełną obsługę standardów (jak w Glibc) z niewielkim rozmiar, niskie zużycie zasobów i wysoka wydajność (jak w uClibc, dietlibc i Android Bionic). Obsługuje wszystkie wymagane interfejsy C99 i POSIX 2008, a także częściowo C11 i zestaw rozszerzeń do programowania wielowątkowego (wątki POSIX), zarządzania pamięcią i pracy z ustawieniami regionalnymi. Kod Musl jest udostępniany na bezpłatnej licencji MIT.

Nowa wersja dodaje funkcję qsort_r, która ma zostać włączona do przyszłego standardu POSIX i służy do sortowania tablic przy użyciu funkcji porównywania dowolnych elementów. W przypadku niektórych modeli procesorów PowerPC dodano obsługę alternatywnych jednostek SPE FPU (Signal Processing Engine). Wprowadzono zmiany mające na celu poprawę kompatybilności, takie jak przechowywanie errno, akceptowanie wskaźników zerowych w gettext i obsługa zmiennej środowiskowej TZ. Naprawiono regresywne zmiany w funkcjach wcwidth i duplocale, a także kilka błędów w funkcjach matematycznych, które w pewnych okolicznościach prowadziły do ​​obliczenia nieprawidłowego wyniku (np. w systemach bez FPU fmaf błędnie zaokrąglił wynik) .

Dodatkowo możemy odnotować wydanie udostępnionej kilka dni temu standardowej biblioteki C PicoLibc 1.7.6, opracowanej przez Keitha Packarda (lidera projektu X.Org) do użytku na urządzeniach wbudowanych z ograniczoną ilością pamięci trwałej i pamięci RAM. Podczas programowania część kodu została zapożyczona z biblioteki newlib z projektu Cygwin i AVR Libc, opracowanej dla mikrokontrolerów Atmel AVR. Kod PicoLibc jest rozpowszechniany na licencji BSD. Montaż bibliotek jest obsługiwany dla architektur ARM (32-bitowych), Aarch64, i386, RISC-V, x86_64, m68k i PowerPC. Nowa wersja implementuje wykorzystanie matematycznych funkcji inline dla architektury aarch64 oraz możliwość wykorzystania matematycznych funkcji inline w aplikacjach na architekturach ARM i risc-v.

Źródło: opennet.ru

Dodaj komentarz