Wydanie standardowej biblioteki C Musl 1.2.5

Po 10 miesiącach prac nad rozwojem zaprezentowano wydanie standardowej biblioteki C Musl 1.2.5, która oferuje implementację libc, odpowiednią zarówno dla stacjonarnych komputerów PC i serwerów, jak i dla systemów mobilnych, łącząc pełne wsparcie dla standardów (jak w Glibc) z niewielkimi rozmiarami, niskim zużyciem zasobów i wysoką wydajnością (jak w uClibc, dietlibc i Android Bionic). Wsparcie obejmuje wszystkie obowiązkowe interfejsy C99 i POSIX 2008 oraz częściowo C11 i zestaw rozszerzeń do programowania wielowątkowego (POSIX threads), zarządzania pamięcią i pracy z lokalami. Kod Musl dostępny jest na licencji MIT.

Główne zmiany:

  • Dodano funkcję statx(), która różni się od fstatat64 dodatkowymi argumentami flagowymi. W przypadku, gdy jądro nie obsługuje wywołania systemowego statx, zwracającego rozszerzone informacje o pliku, w tym czas utworzenia pliku i specyficzne dla systemu plików flagi, następuje powrót do korzystania z wywołania systemowego fstatat.
  • Dodano funkcje preadv2() i pwritev2(), które zapewniają obudowy nad systemowymi wywołaniami jądra Linux o tej samej nazwie. W przeciwieństwie do preadv() i pwritev() nowe funkcje różnią się obecnością dodatkowego argumentu do przekazywania jądrowi dodatkowych flag, takich jak RWF_SYNC (zrzucenie danych i metadanych z pamięci podręcznej na nośnik po wykonaniu operacji) oraz RWF_DSYNC (wymuszenie zrzutu na nośnik tylko danych).
  • Dodano wsparcie dla architektur Loongarch64 i Riscv32.
  • Implementacja funkcji clone() została doprowadzona do stanu używalności.
  • W funkcji statvfs() zapewniono zwracanie wyniku z typem f_type.
  • Dodano wsparcie dla mechanizmu TLSDESC (Thread-Local Storage Descriptor) dla systemów Riscv64.
  • W resolverze DNS wprowadzono obsługę odpowiedzi z długimi sekwencjami CNAME. Rozwiązano problem, przez który odrzucano niektóre duże odpowiedzi przesyłane przez TCP.
  • W interfejsach mntent dodano wsparcie dla eskalacji spacji w ścieżkach plików i opcjach.
  • W funkcjach snprintf i swprintf zapewniono poprawną obsługę sytuacji, gdy przetwarzane są liczby większe niż INT_MAX. Udoskonalono zgodność standardu funkcji rodziny printf.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster