Izdanje standardnih C biblioteka Glibc 2.43 i newlib 4.6.0

Nakon šest mjeseci razvoja objavljena je verzija sustavne biblioteke GNU C Library 2.43 (glibc), koja u potpunosti udovoljava zahtjevima standarda ISO C23 i POSIX.1-2024. U stvaranju novog izdanja sudjelovalo je 69 programera.

Od poboljšanja implementiranih u Glibc 2.43 ističu se:

  • Dodana je eksperimentalna mogućnost izgradnje pomoću Clang kompajlera, koja je trenutno dostupna samo za platforme aarch64-linux-gnu i x86_64-linux-gnu uz korištenje runtime okruženja kompatibilnog s libgcc. Za izgradnju Glibc potrebna je najmanje verzija Clang 18.
  • Za Linux sustave dodana je funkcija mseal(), koja omogućava procesima da postave blokadu na promjenu određenih dijelova svog adresnog prostora.
  • Za Linux sustave dodana je funkcija openat2(), koja, za razliku od funkcije openat(), podržava skup dodatnih zastavica za ograničavanje razlučivosti putanje do datoteke (zabranjuje prelazak preko točaka montiranja, simboličkih poveznica, magic poveznica (\/proc\/PID\/fd), komponenti "..\/").
  • Dodane su funkcije free_sized, free_aligned_sized, memset_explicit i memalignment, koje su se pojavile u standardu C23.
  • Prema standardu C23, poziv assert definira se kao makro s promjenjivim brojem argumenata, koji podržava izraze s zarezom unutar inicijalizatora.
  • Prema standardu C23, funkcije bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr i wmemchr, koje vraćaju pokazivače na ulazne nizove, redefinirane su kao makrovi, koji vraćaju pokazivač na tip s kvalifikatorom "const", ako je ulazni argument pokazivač na tip s kvalifikatorom "const".
  • U zaglavni fajl math.h dodane su definicije tipova long_double_t, _Float32_t, _Float64_t i _Float128_t, koje su se pojavile u standardu C23.
  • Dodani su opcionalni načini mjerenja vremena TIME_MONOTONIC (stalno povećavajuće vrijeme, neovisno o promjeni sistemskih sati), TIME_ACTIVE i TIME_THREAD_ACTIVE (vrijeme aktivnog izvršavanja procesa ili threada) za korištenje u funkciji timespec_get.
  • Iz projekta CORE-MATH prenesene su optimizirane varijante matematičkih funkcija acosh, asinh, atanh, erf, erfc, lgamma i tgamma.
  • Dodane su optimizirane implementacije funkcija fma, fmaf, remainder, remaindef, frexpf, frexp, frexpl (binary128) i frexpl (intel96).
  • Povećane su performanse matematičkih funkcija acosf, acoshf, asinhf, atan2f, atanhf, coshf, fmodf, lgammaf/lgammaf_r, log10f, remainderf, sinhf, sqrtf, tgammaf, y0/j0, y1/j1 i yn/jn, zahvaljujući uklanjanju koda za obradu grešaka SVID (pozivanje korisničke funkcije matherr u slučaju greške) za nove verzije (radi očuvanja kompatibilnosti sa već sastavljenim programima, ostavljeni su u režimu compat).
  • Na x86 sustavima dodana je podrška za procesore Intel Nova Lake i Wildcat Lake.
  • Na AArch64 sustavima u funkciji malloc po defaultu je uključena podrška za velike stranice memorije (transparent huge pages) veličine 2MB (parametar ibc.malloc.hugetlb sada je postavljen na 1). U funkciji clone() implementirano je isključivanje stanja ZA (Z-Array) na CPU-ima koji podržavaju proširenje SME (Scalable Matrix Extension).
  • Za AArch64 sustave koji podržavaju proširenje BTI (Branch Target Identification), dodana je postavka glibc.cpu.aarch64_bti koja omogućava prisilno aktiviranje BTI za sve izvršne datoteke i biblioteke. BTI osigurava blokiranje prijelaza na proizvoljne dijelove koda kao zaštitu od stvaranja gadgeta u exploitima koji koriste tehnike povratno-orijentiranog programiranja.
  • Na AArch64 sustavima, koji podržavaju jedno od proširenja za zaštitu grananja (Branch Target Identification ili Guarded Control Stack), dopušteno je korištenje varijable okruženja "LD_DEBUG=security" za ispis upozorenja linker-a prilikom učitavanja izvršnih datoteka i biblioteka koje ne podržavaju ova proširenja.
  • Za AArch64 sustave dodane su vektorske varijante funkcija exp2m1, exp10m1, log10p1, log2p1 i rsqrt.
  • Za arhitekturu RISC-V dodana je optimizirana implementacija funkcije memset koja koristi proširenje RVV (RISC-V Vector).
  • U testnom skupu značajno je proširena provjera višedretvenosti i funkcija scanf, strerror i strsignal.
  • Podaci o kodiranju, informacije o tipovima znakova i tablice transliteracije ažurirane su za podršku specifikaciji Unicode 17.0.0.
  • U implementaciji funkcionalnosti LD_PROFILE prestalo se koristiti zadani direktorij (/var/tmp) za zapisivanje podataka o profiliranju. Za očuvanje takvih podataka sada je potrebno eksplicitno definirati direktorij putem varijable okruženja LD_PROFILE_OUTPUT.
  • Uklonjene ranjivosti:
    • CVE-2026-0861 — cijelo brojevno preljevanje u funkciji memalign, što dovodi do oštećenja hrpe.
    • CVE-2026-0915 — curenje sadržaja stoga u funkcijama getnetbyaddr i getnetbyaddr_r.
    • CVE-2025-15281 — povratak neinicijalizirane memorije koja može sadržavati preostale podatke prilikom korištenja funkcije wordexp s parametrima WRDE_REUSE i WRDE_APPEND.

Osim toga, nakon godine razvoja, projekt Cygwin objavio je izdanje standardne C biblioteke newlib 4.6.0, koju razvijaju inženjeri kompanije Red Hat. Biblioteka je usmjerena na pružanje kompaktne implementacije standardne C biblioteke (libc), pogodnih za korištenje na ugrađenim sustavima s malim kapacitetom trajnog skladišta i radne memorije. Kod projekta napisan je na jeziku C i distribuira se pod LGPLv2 licencom.

U novoj verziji newlib:

  • Proširena podrška za specifikaciju POSIX.1-2024.
  • Povećana je izvedba funkcija memcpy, mempcpy i memmove.
  • Dodana je opcija „—enable-newlib-hw-misaligned-access”.
  • Optimizirana je arhitektura RISC-V funkcija serije mem* i str*.
  • Preuređen je kod obrade lokalizacija, koji je oslobođen globalne varijable global_locale_string u korist odvojenih varijabli locale_string za svaki objekt lokalizacije tipa locale_t.
  • Dodana je podrška za novu platformu m68k-atari-elf.
  • Iz FreeBSD biblioteke gdtoa prenesen je kod strtorQ.c, koji se koristi za implementaciju podrške 128-bitnog tipa „long double” u funkciji strtold.
  • Podaci kodiranja ažurirani su na Unicode 17.0.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster