Vydanie štandardných C knižníc Glibc 2.43 a newlib 4.6.0

Po šiestich mesiacoch vývoja bol publikovaný release systémovej knižnice GNU C Library 2.43 (glibc), ktorá plne vyhovuje požiadavkám noriem ISO C23 a POSIX.1-2024. Na vytvorení nového vydania sa podieľalo 69 vývojárov.

Medzi realizované vylepšenia v Glibc 2.43 patrí:

  • Pridaná experimentálna možnosť zostavenia kompilátorom Clang, ktorá je zatiaľ dostupná len pre platformy aarch64-linux-gnu a x86_64-linux-gnu pri použití runtime kompatibilného s libgcc. Na zostavenie Glibc je potrebná aspoň verzia Clang 18.
  • Pre systémy Linux bola pridaná funkcia mseal(), ktorá umožňuje procesom nastaviť zámok na zmenu určitých častí ich adresného priestoru.
  • Pre systémy Linux bola pridaná funkcia openat2(), ktorá na rozdiel od funkcie openat() podporuje súbor dodatočných vlajok na obmedzenie povolenia súborovej cesty (zákaz prekonávania bodov pripojenia, symbolických odkazov, magic-odkazov (\/proc\/PID\/fd), komponentov „..\/“).
  • Boli pridané funkcie free_sized, free_aligned_sized, memset_explicit a memalignment, ktoré sa objavili v štandarde C23.
  • V súlade so štandardom C23 je volanie assert definované ako makro s premenným počtom argumentov, podporujúce výrazy s čiarkou vo vnútri inicializátora.
  • V súlade so štandardom C23 boli funkcie bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr a wmemchr, ktoré vracajú ukazovatele na vstupné polia, predefinované ako makrá vracajúce ukazovateľ na typ s kvalifikátorom „const“, ak je vstupný argument ukazovateľom na typ s kvalifikátorom „const“.
  • Do hlavičkového súboru math.h boli pridané definície typov long_double_t, _Float32_t, _Float64_t a _Float128_t, ktoré sa objavili v štandarde C23.
  • Boli pridané voliteľné režimy počítania času TIME_MONOTONIC (nepretržite sa zvyšujúci čas, nezávislý od zmeny systémových hodín), TIME_ACTIVE a TIME_THREAD_ACTIVE (čas aktívneho vykonávania procesu alebo vlákna) na použitie vo funkcii timespec_get.
  • Z projektu CORE-MATH boli prenesené optimalizované varianty matematických funkcií acosh, asinh, atanh, erf, erfc, lgamma a tgamma.
  • Boli pridané optimalizované implementácie funkcií fma, fmaf, remainder, remaindef, frexpf, frexp, frexpl (binary128) a frexpl (intel96).
  • Zvýšený výkon matematických funkcií acosf, acoshf, asinhf, atan2f, atanhf, coshf, fmodf, lgammaf/lgammaf_r, log10f, remainderf, sinhf, sqrtf, tgammaf, y0/j0, y1/j1 a yn/jn, vďaka odstráneniu kódu na spracovanie chýb SVID (volanie užívateľskej funkcie matherr pri chybe) pre nové zostavy (pre zachovanie kompatibility s už zostavenými programami zostali v režime compat).
  • Na systémoch x86 bola pridaná podpora procesorov Intel Nova Lake a Wildcat Lake.
  • Na systémoch AArch64 bola funkcia malloc predvolene povolená s podporou veľkých pamäťových strán (transparent huge pages) s veľkosťou 2MB (parameter ibc.malloc.hugetlb je teraz nastavený na 1). Vo funkcii clone() bola implementovaná deaktivácia stavu ZA (Z-Array) na CPU s podporou rozšírenia SME (Scalable Matrix Extension).
  • Pre systémy AArch64, ktoré podporujú rozšírenie BTI (Branch Target Identification), bola pridaná konfigurácia glibc.cpu.aarch64_bti, ktorá umožňuje vynútiť aktiváciu BTI pre všetky spustiteľné súbory a knižnice. BTI zabezpečuje blokovanie prechodov na ľubovoľné miesta kódu na ochranu pred vytváraním gadgetov v exploitách, ktoré používajú techniky návratového orientovaného programovania.
  • Na systémoch AArch64, ktoré podporujú jedno z rozšírení na ochranu vetvenia (Branch Target Identification alebo Guarded Control Stack), bolo povolené použitie premennej prostredia „LD_DEBUG=security“ na výstup varovaní linkerom pri načítaní spustiteľných súborov a knižníc, ktoré tieto rozšírenia nepodporujú.
  • Pre systémy AArch64 boli pridané vektorové varianty funkcií exp2m1, exp10m1, log10p1, log2p1 a rsqrt.
  • Pre architektúru RISC-V bola pridaná optimalizovaná implementácia funkcie memset, využívajúca rozšírenie RVV (RISC-V Vector).
  • V testovacej sade bola výrazne rozšírená kontrola mnohothreadovania a funkcií scanf, strerror a strsignal.
  • Údaje o kódovaní, informácie o typoch znakov a tabuľky transliterácie boli aktualizované na podporu špecifikácie Unicode 17.0.0.
  • V implementácii funkčnosti LD_PROFILE sa prestalo používať predvolené umiestnenie (var/tmp) na zapisovanie profilovacích údajov. Pre zachovanie týchto údajov je teraz vyžadované explicitné určenie umiestnenia prostredníctvom premennej prostredia LD_PROFILE_OUTPUT.
  • Boli odstránené zraniteľnosti:
    • CVE-2026-0861 — pretečenie celých čísel vo funkcii memalign, ktoré vedie k poškodeniu zásobníka.
    • CVE-2026-0915 — únik obsahu zásobníka vo funkciách getnetbyaddr a getnetbyaddr_r.
    • CVE-2025-15281 — návrat neinitializovanej pamäte, ktorá môže obsahovať zvyškové dáta pri použití funkcie wordexp s parametrami WRDE_REUSE a WRDE_APPEND.

Navyše, po roku vývoja projekt Cygwin zverejnil vydanie štandardnej C knižnice newlib 4.6.0, ktorá je vyvíjaná inžiniermi z Red Hat. Knižnica sa zameriava na poskytovanie kompaktného spracovania štandardnej C knižnice (libc), vhodnej na použitie v embedded systémoch s malým množstvom trvalého úložiska a operačnej pamäte. Kód projektu je napísaný v jazyku C a je distribučný pod licenciou LGPLv2.

V novej verzii newlib:

  • Rozšírená podpora špecifikácie POSIX.1-2024.
  • Zvýšený výkon funkcií memcpy, mempcpy a memmove.
  • Pridaná možnosť „—enable-newlib-hw-misaligned-access“.
  • Optimalizovaná architektúra RISC-V pre funkcie série mem* a str*.
  • Prepracovaný kód spracovania lokalít, ktorý sa zbavil globálnej premennej global_locale_string v prospech samostatných premenných locale_string pre každý objekt lokality s typom locale_t.
  • Pridaná podpora novej platformy m68k-atari-elf.
  • Z knižnice FreeBSD gdtoa bol presunutý kód strtorQ.c, ktorý sa využíva na implementáciu podpory 128-bitového typu „long double“ vo funkcii strtold.
  • Údaje kódovania boli aktualizované na Unicode 17.0.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster