Standardsete C-teekide Glibc 2.43 ja newlib 4.6.0 väljaanne

Pärast kuue kuu arendustööd on välja antud GNU C Library 2.43 (glibc) süsteemiraamatukogu versioon, mis järgib täielikult ISO C23 ja POSIX.1-2024 standardite nõudeid. Uue väljaande loomises osales 69 arendajat.

Glibc 2.43-s teostatud täiustuste seas võib välja tuua:

  • Lisatud on katsetatav Clangi koostamisvõimekus, mis on praegu saadaval ainult aarch64-linux-gnu ja x86_64-linux-gnu platvormide jaoks, kasutades libgcc'iga ühilduvat tööaega. Glibci koostamiseks on vajalik vähemalt Clangi versioon 18.
  • Linuxi süsteemidele on lisatud mseal() funktsioon, mis võimaldab protsessidel seada lukustuse teatud osade oma aadressiruumi muutmiseks.
  • Linuxi süsteemidele on lisatud openat2() funktsioon, mis toetab erinevaid täiendavaid lippu, et piirata failitee õigusi (takistada mähistuspunktide, sümboolsete linkide, magic-linkide (/proc/PID/fd) ja komponentide «..» ületamist), erinevalt openat() funktsioonist.
  • Lisatud on funktsioonid free_sized, free_aligned_sized, memset_explicit ja memalignment, mis on ilmunud C23 standardis.
  • C23 standardi kohaselt on asserti kutse määratletud makroina, millel on muutuva argumendiarv, toetades komaettekandeid algatajas.
  • C23 standardi kohaselt on funktsioonid bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr ja wmemchr, mis tagastavad viiteid sisendmassidele, ümber määratletud makroidena, mis tagastavad viite «const» kvalifikaatoriga tüübile, kui sisendargumendi viide on «const» kvalifikaatoriga tüübile.
  • Math.h pealkirjafailile on lisatud pika täpsuse tüüpide long_double_t, _Float32_t, _Float64_t ja _Float128_t määratlused, mis on ilmunud C23 standardis.
  • Lisatud on valikulised ajahindamise režiimid TIME_MONOTONIC (pidevalt suurenev aeg, mis ei sõltu süsteemi kellade muutumisest), TIME_ACTIVE ja TIME_THREAD_ACTIVE (protsessi või lõime aktiivne täitmise aeg), mida kasutatakse funktsioonis timespec_get.
  • CORE-MATH projektist on üle kantud optimeeritud versioonid matemaatilistest funktsioonidest acosh, asinh, atanh, erf, erfc, lgamma ja tgamma.
  • Lisatud on optimeeritud teostused funktsioonidest 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õudlust on parendatud, eemaldades SVID veahalduskoodi (kasutaja defineeritud funktsiooni matherr kutsumine veaohtu korral) uutesse kogumitesse (varasemaid kogumeid ühilduvuse säilitamiseks hoitakse üheltpoolt ühilduvuse režiimis).
  • x86 süsteemides on lisatud toetus Intel Nova Lake ja Wildcat Lake protsessoritele.
  • AArch64 süsteemides on malloc funktsioonis vaikimisi sisse lülitatud suure mälu lehtede (transparent huge pages) toetus suurusega 2 MB (parameeter ibc.malloc.hugetlb on nüüd seatud 1-ks). Funktsioonis clone() on teostatud ZA (Z-Array) oleku väljalülitamine SME (Scalable Matrix Extension) toetavate CPU-de jaoks.
  • AArch64 süsteemides, mis toetavad BTI (Branch Target Identification) laiendust, on lisatud seadistus glibc.cpu.aarch64_bti, mis võimaldab BTI-d sundida aktiveerima kõigi käideldavate failide ja raamatukogude jaoks. BTI takistab üleminekuid suvalistesse koodiosadesse, et takistada gadgetide loomist eksploitides, mis kasutavad tagasi suunamise programmeerimise meetodeid.
  • AArch64 süsteemides, mis toetavad ühte kõrvaldamise jaotust (Branch Target Identification või Guarded Control Stack) laiendust, on lubatud keskkonnamuutuja "LD_DEBUG=security" kasutamine, et linker saaks väljundina jagada hoiatuseid, kui laadida käideldavaid faile ja raamatukogusid, mis ei toeta neid laienemisi.
  • AArch64 süsteemides on lisatud vektorilised versioonid funktsioonidest exp2m1, exp10m1, log10p1, log2p1 ja rsqrt.
  • RISC-V arhitektuurile on lisatud optimeeritud rakendus funktsioonist memset, mis kasutab RVV (RISC-V Vector) laiendust.
  • Testikomplektis on oluliselt laiendatud mitmeõnnestumise ja funktsioonide nagu scanf, strerror ja strsignal kontrollimist.
  • Kodeeringute andmed, sümbolite tüübid ja translitereerimistabelid on uuendatud, et toetada Unicode spetsifikatsiooni 17.0.0.
  • LD_PROFILE funktsionaalsuse rakenduses on lõpetatud vaikimisi katalooge (\/var\/tmp) kasutamine profilatsiooniandmete salvestamiseks. Selliste andmete säilitamiseks on nüüd nõutav nende katalooge selgelt määratleda keskkonnamuutujaga LD_PROFILE_OUTPUT.
  • Turbepuudused on kõrvaldatud:
    • CVE-2026-0861 — täisarvupuhang funktsioonis memalign, mis põhjustab mälu kahjustamist.
    • CVE-2026-0915 — steki sisu leke funktsioonides getnetbyaddr ja getnetbyaddr_r.
    • CVE-2025-15281 — taastumine mitteinitsialiseeritud mälust, mis võib sisaldada jääke, kui kasutatakse funktsiooni wordexp parameetritega WRDE_REUSE ja WRDE_APPEND.

Lisaks, pärast aasta arendust on Cygwini projekt avaldanud uue versiooni standardse C-raamatukogust newlib 4.6.0, mille arendavad Red Hati insenerid. Raamatukogu on suunatud kompaktselt rakendatud standardse C-raamatukogu (libc) pakkumisele, mis sobib kasutamiseks sisse ehitatud süsteemides, millel on väike püsiv mälumaht ja töömälu. Projekti kood on kirjutatud C keeles ja seda levitatakse LGPLv2 litsentsi alusel.

Uues newlib versioonis:

  • Toetuse ulatus POSIX.1-2024 standardile on suurenenud.
  • Funktsioonide memcpy, mempcpy ja memmove jõudlust on suurendatud.
  • Lisatud valik "--enable-newlib-hw-misaligned-access".
  • RISC-V arhitektuuri mem* ja str* funktsioonide optimeerimine on tehtud.
  • Lokaalide töötlemise kood on ümber tehtud, eemaldades globaalmuutuja global_locale_string ja asendades selle igas locale_t tüüpi lokaali objekti jaoks eraldi muutuja locale_string.
  • Uue platvormi m68k-atari-elf tugi on lisatud.
  • FreeBSD raamatukogust gdtoa on üle kantud kood strtorQ.c, mis on kasutusel 128-bitise 'long double' tüübi toetamiseks funktsiooni strtold puhul.
  • Koodimisandmed on uuendatud Unicode 17.0-le.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster