Vabastatud standardne C-teekide Glibc 2.43 ja newlib 4.6.0.

Kuue kuu arenduste järel on ilmunud GNU C Library 2.43 (glibc) süsteemiraamatukogu, mis järgib täielikult ISO C23 ja POSIX.1-2024 standardite nõudeid. Uue versiooni loomisel osales 69 arendajat.

Glibc 2.43-s rakendatud täiustuste hulgas on:

  • Lisatud on eksperimentaalne võimalus kasutada Clang kompilaatorit, mis on esialgu saadaval ainult aarch64-linux-gnu ja x86_64-linux-gnu platvormidel, kasutades libgcc-iga ühilduvat runtime'i. Glibc ehitamiseks on vajalik vähemalt Clang 18 versioon.
  • Linuxi süsteemides on lisatud mseal() funktsioon, mis võimaldab protsessidel seada lukustuse teatud osade muutmata jätmiseks oma aadressiruumi.
  • Linuxi süsteemides on lisatud openat2() funktsioon, mis erinevalt openat() funktsioonist toetab täiendavate lippude komplekti, et piirata failitee lahendamist (keelata mount-punktide, sümboolsete linkide, magic-linkide (/proc/PID/fd) ja komponentide «../» ületamine).
  • Lisatud on funktsioonid free_sized, free_aligned_sized, memset_explicit ja memalignment, mis on tulnud C23 standardist.
  • C23 standardi kohaselt on assert-kutse määratletud makrose, mis toetab muutuva arvu argumente ja võimaldab komaga eraldatud väljendeid algväärtustajas.
  • C23 standardi kohaselt on funktsioonid bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr ja wmemchr, mis tagastavad näidikud sisenemassiividele, üle määratud makrod, mis tagastavad näidiku konstandiga tüübi, kui sisendargument on näidik konstandiga tüübile.
  • Pealkirja faili math.h on lisatud tüüpide long_double_t, _Float32_t, _Float64_t ja _Float128_t määratlemine, mis ilmusid C23 standardis.
  • Ahnud ajakalkulatsiooni valikud TIME_MONOTONIC (tõusva aja, mis ei sõltu süsteemi kellade muutumisest), TIME_ACTIVE ja TIME_THREAD_ACTIVE (aktiivse protsessi või lõime täitmise aeg), et kasutada funktsionaalsuses timespec_get.
  • CORE-MATH projektist on üle kantud optimeeritud matemaatiliste funktsioonide variandid acosh, asinh, atanh, erf, erfc, lgamma ja tgamma.
  • On lisatud optimeeritud teostused funktsioonidele fma, fmaf, remainder, remaindef, frexpf, frexp, frexpl (binary128) ja frexpl (intel96).
  • Matemaatiliste funktsioonide, nagu acosf, acoshf, asinhf, atan2f, atanhf, coshf, fmodf, lgammaf/lgammaf_r, log10f, remainderf, sinhf, sqrtf, tgammaf, y0/j0, y1/j1 ja yn/jn, jõudlus on parandatud, eemaldades SVID vigade käsitlemise koodi (funktsiooni matherr väljakutse vea korral) uutes kogumites (komplektide ühilduvuse säilitamiseks on need jäetud ühilduvuse režiimi).
  • x86 süsteemides on lisatud Intel Nova Lake ja Wildcat Lake protsessorite tugi.
  • AArch64 süsteemides on funktsioonis malloc vaikevalikuna sisse lülitatud suurte mälulehtede tugi (transparent huge pages) suurusega 2MB (parameeter ibc.malloc.hugetlb on nüüd seatud 1). Funktsioonis clone() on rakendatud ZA (Z-Array) oleku väljalülitamine SME (Scalable Matrix Extension) laiendusega CPU-dele.
  • AArch64 süsteemide jaoks, mis toetavad BTI (Branch Target Identification) laiendust, on lisatud seadistus glibc.cpu.aarch64_bti, mis võimaldab sundida BTI aktiveerimist kõigi käivitatavate failide ja teekide jaoks. BTI takistab üleminekute blokeerimist juhuslikesse koodilõikudesse, et takistada gadgetide loomist rünnakutes, mis kasutavad tagasi-suundumise programmeerimise tehnikaid.
  • AArch64 süsteemides, mis toetavad ühte haru kaitse laiendust (Branch Target Identification või Guarded Control Stack), on lubatud kasutada keskkonnamuutujat „LD_DEBUG=security“, et linker saaks laadimise ajal, kui täidesaatvate failide ja raamatukogude toetust neile laiendustele ei ole, väljundida hoiatusteateid.
  • AArch64 süsteemidele on lisatud vektorilised variandid funktsioonidele exp2m1, exp10m1, log10p1, log2p1 ja rsqrt.
  • RISC-V arhitektuuri jaoks on lisatud optimeeritud teostus funktsioonile memset, mis kasutab RVV (RISC-V Vector) laiendust.
  • Testikomplektis on märkimisväärselt laiendatud mitme puu ja funktsioonide scanf, strerror ja strsignal kontrolli.
  • Koodide, sümbolite tüüpide teave ja transliteratsioonitabelid on uuendatud, et toetada Unicode 17.0.0 spetsifikatsiooni.
  • LD_PROFILE funktsionaalsuse teostuses on lõpetatud vaike katalooge (/var/tmp) kasutamine profileerimise andmete salvestamiseks. Selliste andmete säilitamiseks on nüüd vajalik selgesõnaliselt määrata kataloog keskkonnamuutuja LD_PROFILE_OUTPUT kaudu.
  • Turbeteated:
    • CVE-2026-0861 — täisarvude ülevool funktsioonis memalign, mis toob kaasa mäluhalduse rikutuse.
    • CVE-2026-0915 — mälupinni sisu leke funktsioonides getnetbyaddr ja getnetbyaddr_r.
    • CVE-2025-15281 — tagasite uninitseeritud mälu, mis võib sisaldada jääkaineid, kui kasutada funktsiooni wordexp parameetritega WRDE_REUSE ja WRDE_APPEND.

Lisaks sellele, pärast aasta arendust on projekt Cygwin avaldanud uue standardse C teegi newlib 4.6.0, mille on välja töötanud Red Hati insenerid. Teek on suunatud standardse C teegi (libc) kompaktse rakenduse pakkumisele, sobides kasutamiseks sisseehitatud süsteemides, kus on vähe alalisest mälust ja operatiivmälu. Projekti kood on kirjutatud C keeles ja seda levitatakse LGPLv2 litsentsi alusel.

Uues newlib versioonis:

  • On laiendatud spetsifikatsiooni POSIX.1-2024 tuge.
  • Funktsioonide memcpy, mempcpy ja memmove jõudlust on suurendatud.
  • On lisatud võimalus «—enable-newlib-hw-misaligned-access».
  • Architektuuri RISC-V mem* ja str* funktsioonide optimeerimine on tehtud.
  • Kohandatud on lokaalide töötlemise kood, mis on vabastatud globaalsetest muutujatest global_locale_string ning kasutusele on võetud eraldi lokaalide stringi muutujad igas locale_t tüüpi objekti jaoks.
  • On lisatud toetus uuele platvormile m68k-atari-elf.
  • FreeBSD gdtоa raamatukogust on kantud kood strtorQ.c, mis on seotud 128-bitise «long double» tüübi toetuse rakendamisega funktsioonis strtold.
  • Koodide andmed on uuendatud Unicode 17.0-le.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster