Pas pas gjashtë muajsh zhvillimi, është botuar versioni i bibliotekës sistemore GNU C Library 2.43 (glibc), e cila plotëson në mënyrë të plotë kërkesat e standardeve ISO C23 dhe POSIX.1-2024. Në krijimin e këtij versioni morën pjesë 69 zhvillues.
Disa përmirësime të realizuara në Glibc 2.43 përfshijnë:
- ĂshtĂ« shtuar njĂ« mundĂ«si eksperimentale pĂ«r ndĂ«rtimin me kompajlerin Clang, e cila aktualisht Ă«shtĂ« e disponueshme vetĂ«m pĂ«r platformat aarch64-linux-gnu dhe x86_64-linux-gnu duke pĂ«rdorur njĂ« runtime tĂ« pajtueshĂ«m me libgcc. PĂ«r ndĂ«rtimin e Glibc kĂ«rkohet tĂ« paktĂ«n versioni Clang 18.
- Për sistemet Linux është shtuar funksioni mseal(), i cili lejon proceset të vendosin një bllokim për ndryshimin e pjesëve të caktuara të hapësirës së tyre adresuese.
- Për sistemet Linux është shtuar funksioni openat2(), i cili, ndryshe nga funksioni openat(), mbështet një grup shtesë flagash për të kufizuar zgjidhjen e rrugës së skedarit (ndalimi i kalimeve në pika montimi, lidhje simbolike, lidhje magjike (/proc/PID/fd), komponente "../").
- Janë shtuar funksionet free_sized, free_aligned_sized, memset_explicit dhe memalignment, të cilat janë shfaqur në standardin C23.
- Sipas standardit C23, thirrja assert është përcaktuar si një makros me numër të ndryshëm argumentesh, që mbështet shprehjet me presje brenda inicializuesit.
- Sipas standardit C23, funksionet bsearch, memchr, strchr, strpbrk, strrchr, strstr, wcschr, wcspbrk, wcsrchr, wcsstr dhe wmemchr, të cilat kthejnë tregues në masat hyrëse, janë ridërdhuar si makros, duke kthyer një tregues në tipin me kualifikatorin "const", nëse argumenti hyrës është një tregues në tipin me kualifikatorin "const".
- Në skedarin e titullit math.h janë shtuar përkufizimet e tipeve long_double_t, _Float32_t, _Float64_t dhe _Float128_t, të cilat u shfaqën në standardin C23.
- Shtuar opsionet e llogaritjes së kohës TIME_MONOTONIC (koha që rritet vazhdimisht, e cila nuk varet nga ndryshimi i orës së sistemit), TIME_ACTIVE dhe TIME_THREAD_ACTIVE (koha e ekzekutimit aktiv të procesit ose thread-it) për t'u përdorur në funksionin timespec_get.
- Këto variante të optimizuara të funksioneve matematikore acosh, asinh, atanh, erf, erfc, lgamma dhe tgamma janë transferuar nga projekti CORE-MATH.
- Shtuar implementime të optimizuara të funksioneve fma, fmaf, remainder, remaindef, frexpf, frexp, frexpl (binary128) dhe frexpl (intel96).
- Performanca e funksioneve matematike si acosf, acoshf, asinhf, atan2f, atanhf, coshf, fmodf, lgammaf/lgammaf_r, log10f, remainderf, sinhf, sqrtf, tgammaf, y0/j0, y1/j1 dhe yn/jn është përmirësuar, falë eliminimit të kodit për trajtimin e gabimeve SVID (thirrja e funksionit të përdoruesit matherr në rast gabimi) për ndërtimet e reja (për të ruajtur kompatibilitetin me programet e ndërtuara tashmë, ato janë lënë në modin compat).
- Në sistemet x86 është shtuar mbështetje për procesorët Intel Nova Lake dhe Wildcat Lake.
- Në sistemet AArch64, funksioni malloc tani në mënyrë standarde përfshin mbështetje për faqe të mëdha kujtese (transparent huge pages) me madhësi 2MB (parametri ibc.malloc.hugetlb tani është vendosur në 1). Funksioni clone() implementon çaktivizimin e gjendjes ZA (Z-Array) në CPU me mbështetje për zgjerimin SME (Scalable Matrix Extension).
- Për sistemet AArch64 që mbështesin zgjerimin BTI (Branch Target Identification), është shtuar konfigurimi glibc.cpu.aarch64_bti, i cili lejon aktivizimin e detyruar të BTI për të gjitha skedarët ekzekutivë dhe bibliotekat. BTI siguron bllokimin e kalimeve në pjesë të rastësishme të kodit për të parandaluar krijimin e gadgjeteve në eksploitët që përdorin teknikat e programimit të orientuar pas kthimit.
- Në sistemet AArch64, që mbështesin një nga zgjerimet për mbrojtjen e deklivimit (Branch Target Identification ose Guarded Control Stack), lejohet përdorimi i variablit të ambientit "LD_DEBUG=security" për të shfaqur paralajmërime nga lidhësi gjatë ngarkimit të skedarëve ekzekutivë dhe bibliotekave që nuk mbështesin këto zgjerime.
- Për sistemet AArch64 janë shtuar varianta vektorike të funksioneve exp2m1, exp10m1, log10p1, log2p1 dhe rsqrt.
- Për arkitekturën RISC-V është shtuar një implementim i optimizuar i funksionit memset, duke përdorur zgjerimin RVV (RISC-V Vector).
- Në grupin e testeve është zgjeruar ndjeshëm kontrolli i shumëprocesorëve dhe i funksioneve scanf, strerror dhe strsignal.
- Të dhënat e kodimeve, informacioni rreth llojeve të simboleve dhe tabelat e transliterimit janë përditësuar për të mbështetur specifikimin Unicode 17.0.0.
- Në implementimin e funksionalitetit LD_PROFILE është ndërprerë përdorimi i direktoriumit të paracaktuar (/var/tmp) për të ruajtur të dhënat e profilit. Tani, për të ruajtur këto të dhëna kërkohet një përcaktim i qartë i direktoriumit për to përmes variablit të ambientit LD_PROFILE_OUTPUT.
- Identifikuar dobësi:
- CVE-2026-0861 â tejkalimi i numrave tĂ« plotĂ« nĂ« funksionin memalign, qĂ« çon nĂ« dĂ«mtimin e heap-it.
- CVE-2026-0915 â rrjedhja e pĂ«rmbajtjes sĂ« stack-ut nĂ« funksionet getnetbyaddr dhe getnetbyaddr_r.
- CVE-2025-15281 â kthim i memories sĂ« pa inicializuar qĂ« mund tĂ« pĂ«rmbajĂ« tĂ« dhĂ«na tĂ« mbetura, kur pĂ«rdoret funksioni wordexp me parametrat WRDE_REUSE dhe WRDE_APPEND.
Përveç kësaj, pas një viti zhvillimi, projekti Cygwin publikoi versionin e bibliotekës standarde të gjuhës C newlib 4.6.0, e zhvilluar nga inxhinierët e kompanisë Red Hat. Biblioteka ka si qëllim të ofrojë një implementim kompakt të bibliotekës standarde të gjuhës C (libc), e përshtatshme për përdorim në sisteme të integruara me hapësirë të vogël të magazinimit dhe memories. Kodi i projektit është shkruar në gjuhën C dhe shpërndahet nën licencën LGPLv2.
Në versionin e ri të newlib:
- ĂshtĂ« zgjeruar mbĂ«shtetja pĂ«r specifikimin POSIX.1-2024.
- ĂshtĂ« rritur performanca e funksioneve memcpy, mempcpy dhe memmove.
- Ă«shtĂ« shtuar opcioni «âenable-newlib-hw-misaligned-access».
- është optimizuar arkitektura RISC-V e funksioneve të serisë mem* dhe str*.
- është ri-dizajnuar kodi për përpunimin e lokaliteteve, i cili është çliruar nga variabla globale global_locale_string në favor të variablave të veçanta locale_string për çdo objekt lokaliteti me tipin locale_t.
- është shtuar mbështetje për platformën e re m68k-atari-elf.
- Kodi strtorQ.c Ă«shtĂ« transferuar nga biblioteka gdtoa e FreeBSD, i cili Ă«shtĂ« i angazhuar pĂ«r tĂ« zbatuar mbĂ«shtetje pĂ«r tipin 128-bit âlong doubleâ nĂ« funksionin strtold.
- Të dhënat e kodimeve janë azhurnuar në Unicode 17.0.
Burimi: opennet.ru
