Izdan standardni knjižnici C Glibc 2.43 in newlib 4.6.0

Po šestih mesecih razvoja je bila objavljena različica sistemske knjižnice GNU C Library 2.43 (glibc), ki popolnoma izpolnjuje zahteve standardov ISO C23 in POSIX.1-2024. Pri ustvarjanju nove verzije je sodelovalo 69 razvijalcev.

Med dosežki v Glibc 2.43 lahko izpostavimo:

  • Dodan je bil eksperimentalni način zbiranja z prevajalnikom Clang, ki je zaenkrat na voljo le za platforme aarch64-linux-gnu in x86_64-linux-gnu ob uporabi runtime okolja, združljivega z libgcc. Za sestavljanje Glibc je potrebna vsaj različica Clang 18.
  • Za Linux sisteme je bila dodana funkcija mseal(), ki omogoča procesom, da postavijo blokado na spremembo določenih delov svojega naslovnega prostora.
  • Za Linux sisteme je bila dodana funkcija openat2(), ki, v nasprotju s funkcijo openat(), podpira niz dodatnih zastavic za omejevanje dovoljenja datotečne poti (prepoved prečkanja točk montaže, simboličnih povezav, magic povezav (/PID/fd), komponent ".. /").
  • Dodane so funkcije free_sized, free_aligned_sized, memset_explicit in memalignment, ki so se pojavile v standardu C23.
  • V skladu s standardom C23 je bila funkcija assert opredeljena kot makro z spremenljivim številom argumentov, ki podpira izraze s vejicami znotraj inicializatorja.
  • V skladu s standardom C23 so bile funkcije bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr in wmemchr, ki vrnejo kazalce na vhodne tabele, ponovno definirane kot makri, ki vračajo kazalec na tip s kvalifikatorjem "const", če je vhodni argument kazalec na tip s kvalifikatorjem "const".
  • V glavi datoteke math.h so bile dodane definicije tipov long_double_t, _Float32_t, _Float64_t in _Float128_t, ki so se pojavile v standardu C23.
  • Dodani so bili opcijski načini štetja časa TIME_MONOTONIC (nenehno naraščajoči čas, ki ni odvisen od spremembe sistemskih ur), TIME_ACTIVE in TIME_THREAD_ACTIVE (čas aktivnega izvajanja procesa ali niti) za uporabo v funkciji timespec_get.
  • Z projekta CORE-MATH so bile prenesene optimizirane različice matematičnih funkcij acosh, asinh, atanh, erf, erfc, lgamma in tgamma.
  • Dodane so optimizirane implementacije funkcij fma, fmaf, remainder, remaindef, frexpf, frexp, frexpl (binary128) in frexpl (intel96).
  • Povečana je učinkovitost 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 SVID kodova za obradu grešaka (poziv korisničke funkcije matherr prilikom greške) za nove verzije (za očuvanje kompatibilnosti sa već sastavljenim programima, ostavljeni su u compat režimu).
  • Na x86 sistemima dodana je podrška za procesore Intel Nova Lake i Wildcat Lake.
  • Na AArch64 sistemima funkcija malloc po defaultu uključuje podršku za velike stranice memorije (transparent huge pages) veličine 2MB (parametar ibc.malloc.hugetlb je sada postavljen na 1). Funkciji clone() dodata je mogućnost isključivanja stanja ZA (Z-Array) na procesorima koji podržavaju SME (Scalable Matrix Extension).
  • Za AArch64 sisteme koji podržavaju BTI (Branch Target Identification) dodata je postavka glibc.cpu.aarch64_bti koja omogućava prisilno aktiviranje BTI za sve izvršne datoteke i biblioteke. BTI pruža blokiranje prelaza na proizvoljne delove koda kako bi se sprečilo stvaranje gadgeta u eksploitima koji koriste tehnike povratno-orijentisanog programiranja.
  • Na AArch64 sistemima koji podržavaju jedno od proširenja za zaštitu grananja (Branch Target Identification ili Guarded Control Stack) omogućeno je korišćenje promenljive okruženja „LD_DEBUG=security“ za ispis upozorenja od strane linker-a prilikom učitavanja izvršnih datoteka i biblioteka koje ne podržavaju ova proširenja.
  • Za AArch64 sisteme dodate su vektorske verzije funkcija exp2m1, exp10m1, log10p1, log2p1 i rsqrt.
  • Za RISC-V arhitekturu dodana je optimizovana implementacija funkcije memset koja koristi RVV (RISC-V Vector) proširenje.
  • U testnom skupu značajno je proširena provera više niti i funkcija scanf, strerror i strsignal.
  • Podaci o kodiranjima, informacije o tipovima znakova i tabele transliteracije ažurirane su za podršku specifikaciji Unicode 17.0.0.
  • U implementaciji funkcionalnosti LD_PROFILE prestalo je korišćenje podrazumevane mape (/var/tmp) za zapisivanje podataka o profilu. Sada je za čuvanje takvih podataka potrebno eksplicitno definisati mapu putem promenljive okruženja LD_PROFILE_OUTPUT.
  • Odpravljene so bile ranljivosti:
    • CVE-2026-0861 — celoobično prelivanje u funkciji memalign, što dovodi do oštećenja hrpe.
    • CVE-2026-0915 — curenje sadržaja steka u funkcijama getnetbyaddr i getnetbyaddr_r.
    • CVE-2025-15281 — vračanje neinicijalizirane memorije koja može sadržavati preostale podatke prilikom korištenja funkcije wordexp s parametrima WRDE_REUSE i WRDE_APPEND.

Pored toga, nakon godine razvoja, projekt Cygwin objavio je izdanje standardne C biblioteke newlib 4.6.0, koju razvijaju inženjeri iz kompanije Red Hat. Biblioteka je usmjerena na pružanje kompaktne implementacije standardne C biblioteke (libc), pogodnu za korištenje na embedded sistemima s malim kapacitetom trajne memorije i radne memorije. Kod projekta je napisan na C jeziku i distribuira se pod LGPLv2 licencom.

U novoj verziji newlib:

  • Proširena podrška za specifikaciju POSIX.1-2024.
  • Povećane performanse funkcija memcpy, mempcpy i memmove.
  • Dodana opcija „—enable-newlib-hw-misaligned-access“.
  • Optimizacija arhitekture RISC-V za funkcije serije mem* i str*.
  • Prepravljen je kod obrade lokaliteta, koji je oslobođen globalne varijable global_locale_string u korist odvojenih varijabli locale_string za svaki objekat lokaliteta s tipom locale_t.
  • Dodana podrška za novu platformu m68k-atari-elf.
  • Iz FreeBSD biblioteke gdtoa prenesen je kod strtorQ.c, koji se koristi za implementaciju podrške za 128-bitni tip „long double“ u funkciji strtold.
  • Podaci kodiranja ažurirani su na Unicode 17.0.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster