Pas pas gjashtë muajsh zhvillimi, është publikuar versioni i librarisë sistemore GNU C Library (glibc) 2.36, e cila plotëson plotësisht kërkesat e standardeve ISO C11 dhe POSIX.1-2017. Në këtë botim të ri janë përfshirë korrigjime nga 59 zhvillues.
Nga përmirësimet e realizuara në Glibc 2.36, vlen të përmenden:
- Shtimi i mbështetjes për formatin e ri të zhvendosjes relative DT_RELR (zhvendosje relative), i cili lejon të zvogëlohet madhësia e zhvendosjeve relative në objektet e ndara dhe skedarët ekzekutivë, të kombinuara në modin PIE (ekzekutivë të pavarur nga pozita). Për të përdorur fushën DT_RELR në skedarët ELF, është e nevojshme të ketë mbështetje për opsionin "-z pack-relative-relocs" në lidhës, i cili u shfaq në versionin e setit binutils 2.38.
- Për platformën Linux janë realizuar funksionet pidfd_open, pidfd_getfd dhe pidfd_send_signal, të cilat ofrojnë qasje në funksionalitetin pidfd, i cili ndihmon në përpunimin e situatave të ripërdorimit të PID për identifikimin më të saktë të proceseve që i qasin skedarëve të ndjekur (pidfd lidhet me një proces të caktuar dhe nuk ndryshon, ndërsa PID mund të lidhet me një proces tjetër pas përfundimit të procesit aktual, i asociuar me këtë PID).
- Për platformën Linux është shtuar funksioni process_madvise(), i cili lejon një proces të ekzekutojë thirrjen sistemore madvise() në emër të një processi tjetër, duke identifikuar procesin e synuar me pidfd. Me anë të madvise(), mund të informoni bërthamën për veçoritë e punës me memorien për optimizimin e menaxhimit të memorjes së procesit; për shembull, bazuar në informacionin e dorëzuar, bërthama mund të inicojë çlirimin e memorjes së lirë shtesë. Thirrja madvise() nga një proces tjetër mund të kërkohet në situatat kur informacioni e nevojshëm për optimizimin nuk është i njohur për procesin aktual, por koordinohet nga një proces menaxhues të prapavijës, i cili mund të inicojë vetë tërheqjen e memorjes së papërdorur nga proceset.
- Për platformën Linux është shtuar funksioni process_mrelease(), i cili mundëson shpejtimin e çlirimit të memories së procesit që përfundon ekzekutimin e tij. Në rrethana normale, çlirimi i burimeve dhe përfundimi i procesit nuk ndodhin menjëherë dhe për arsye të ndryshme mund të vonohen, çka pengon funksionimin e sistemeve të reagimit të hershëm ndaj mungesës së memories, siç është oomd (i ofruar në systemd). Me anë të thirrjes process_mrelease, këto sisteme mund të nisin më parashikueshëm kthimin e memories nga proceset e detyruara për t'u përfunduar.
- Implementimi i integruar i DNS-resolver-it ka marrë mbështetje për opsionin "no-aaaa", i cili lejon që për të thjeshtëzuar diagnostikimin e problemeve të ndaloni dërgimin e kërkesave DNS për rekordet AAAA (përkufizimi i adresës IPv6 sipas emrit të hostit), duke përfshirë gjatë ekzekutimit të funksioneve NSS, si getaddrinfo(). Ky opsion nuk ndikon në trajtimin e lidhjeve të adresave IPv6, të përkufizuara në /etc/hosts dhe thirrjet getaddrinfo() me flagun AI_PASSIVE.
- Për platformën Linux janë shtuar funksionet fsopen, fsmount, move_mount, fsconfig, fspick, open_tree dhe mount_setattr, të cilat ofrojnë qasje në një API të ri të bërthamës për menaxhimin e montimit të sistemeve të skedarëve, duke marrë parasysh hapësirat e emrave të pikave të montimit (mount namespaces). Funksionet e propozuara lejojnë përpunimin e veçantë të fazave të ndryshme të montimit (përpunimin e superblokut, marrjen e informacionit mbi FS-në, montimin, ngjitjen në pikën e montimit), të cilat më parë ishin realizuar përmes një funksioni të përgjithshëm mount(). Funksionet e veçanta mundësojnë realizimin e skenarëve më të ndërlikuar të montimit dhe ekzekutimin e veprimeve të tilla si rikonfigurimi i superblokut, aktivizimi i opsioneve, ndryshimi i pikës së montimit dhe zhvendosja në një hapësirë tjetër emri. Për më tepër, përpunimi i ndarë lejon përcaktimin e saktë të arsyeve të kthimit të kodit të gabimeve dhe caktimin e disa burimeve për FS-të me shumë shtresa, siç është overlayfs.
- Në localedef është implementuar mbështetje për përpunimin e skedarëve me përcaktime locales, të ofruara në kodimin UTF-8 në vend të ASCII.
- Janë shtuar funksione për konvertimin e kodimeve multi-byte mbrtoc8 dhe c8rtomb, të përputhshme me specifikimet ISO C2X N2653 dhe C++20 P0482R6.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r llojin char8_t, tĂ« pĂ«rcaktuar nĂ« projektin e standardit ISO C2X N2653.
- Shtohen funksionet arc4random, arc4random_buf dhe arc4random_uniform, të cilat ofrojnë mbështetje për thirrjen sistemike getrandom dhe ndërfaqen /dev/urandom, duke kthyer numra të rastësishëm të cilësisë së lartë.
- Në platformën Linux është implementuar mbështetje për arkitekturën e grupit të urdhërave LoongArch, e cila përdoret në procesorët Loongson 3 5000 dhe zbaton një ISA të ri RISC, të ngjashëm me MIPS dhe RISC-V. Aktualisht është e disponueshme vetëm mbështetja për variantin 64-bit të LoongArch (LA64). Kërkohet një minimum i versioneve binutils 2.38, GCC 12 dhe kernel Linux 5.19.
- Mekanizmi prelink shpallet i vjetruar dhe do të hiqet në versionin e ardhshëm, si dhe variablat e lidhura mjedisore LD_TRACE_PRELINKING dhe LD_USE_LOAD_BIAS dhe mundësitë e lidhësit.
- Kodi për kontrollin e versionit të kernelit Linux dhe trajtimin e variablës mjedisore LD_ASSUME_KERNEL është hequr. Versioni minimal i mbështetur gjatë ndërtimit të Glibc përcaktohet përmes fushës ELF NT_GNU_ABI_TAG.
- Në platformën Linux është ndërprerë mbështetje për variablën mjedisore LD_LIBRARY_VERSION.
Burimi: opennet.ru
