Pas pas gjashtĂ« muajsh zhvillimi lĂ«shimi i bibliotekĂ«s sistemore (glibc) , e cila plotĂ«son plotĂ«sisht kĂ«rkesat e standardeve ISO C11 dhe POSIX.1-2008. ĂshtĂ« pĂ«rfshirĂ« njĂ« pĂ«rmirĂ«sim nga 58 zhvillues nĂ« kĂ«tĂ« lĂ«shim tĂ« ri.
Nga ato që janë realizuar në Glibc 2.31 mund të theksohet:
- ĂshtĂ« shtuar makrosi _ISOC2X_SOURCE pĂ«r tĂ« pĂ«rfshirĂ« funksionalitetet e pĂ«rcaktuara nĂ« draftin e ardhshĂ«m tĂ« standardit ISO . KĂ«to funksionalitete pĂ«rfshihen gjithashtu kur pĂ«rdoret makrosi _GNU_SOURCE ose kur mblidhet nĂ« gcc me flamurin «-std=gnu2x»;
- Për funksionet e përcaktuara në skedarin e titullit «math.h» që rrethojnë rezultatet e tyre në një tip më të vogël, në skedarin «tgmath.h» janë propozuar makros të përgjithshëm, siç kërkohet nga specifikimet TS 18661-1:2014 dhe TS 18661-3:2015;
- ĂshtĂ« shtuar funksioni pthread_clockjoin_np(), i cili pret pĂ«r pĂ«rfundimin e njĂ« thread-i duke marrĂ« parasysh kohĂ«n limit (nĂ«se skadon para se tĂ« pĂ«rfundojĂ«, funksioni do tĂ« kthejĂ« njĂ« gabim). Ndryshe nga , nĂ« pthread_clockjoin_np() lejohet pĂ«rcaktimi i tipit tĂ« timer-it pĂ«r llogaritjen e kohĂ«s limite â CLOCK_MONOTONIC (e cila merr parasysh kohĂ«n e kaluar nga sistemi nĂ« gjumĂ«) ose CLOCK_REALTIME;
- Në DNS-resolver është shtuar mbështetje për opsionin trust-ad në /etc/resolv.conf dhe flamurin RES_TRUSTAD në _res.options, duke u vendosur që në kërkesat DNS të transmetohet flamuri DNSSEC (të dhëna të autentikuara). Në këtë mod, flamuri AD i vendosur nga serveri bëhet i disponueshëm për aplikacionet që thërrasin funksione si res_search(). Në parazgjedhje, nëse opsionet e propozuara nuk aktivizohen, glibc nuk e shënon flamurin AD në kërkesa dhe automatikisht e pastron atë në përgjigjet, duke treguar se nuk ka verifikim të DNSSEC;
- Për ndërtimin e mbulesave operuese të thirrjeve për Glibc, tani nuk është e nevojshme të instalohet skedari i titujve të bërthamakut Linux. Përshtatshmëria për arkitekturën 64-bit RISC-V mbetet ende në dispozicion;
- ĂshtĂ« eliminuar , e cila lejon anashkalimin e mbrojtjes
ASLR në programet me flamurin setuid dhe të përcaktojë renditjen e adresave në bibliotekat e ngarkuara duke manipuluar me variablën mjedisore LD_PREFER_MAP_32BIT_EXEC.
Ndryshime që dëmtojnë përputhshmërinë:
- Në totalorder(), totalordermag() dhe funksione të ngjashme për lloje të tjera me pikë fluturuese tani pranojnë si argument tregues për të përjashtuar paralajmërimet për konvertimin e vlerave në gjendjen , në përputhje me rekomandimet TS 18661-1, të propozuara për standardin e ardhshëm C2X.
Skedarët ekzistues ekzekutivë, në të cilat argumentet me pikë fluturuese kalohen drejtpërdrejt, do të vazhdojnë të funksionojnë pa ndryshime; - Funksioni i shpallur prej kohësh stime tani nuk është në dispozicion për skedarët binarë të lidhur me glibc, dhe definicioni i tij është hequr nga time.h. Për vendosjen e kohës së sistemit duhet të përdoret funksioni clock_settime. Në të ardhmen është planifikuar të hiqet gjithashtu funksioni i shpallur staret dhe skedari titull sys/timeb.h (në vend të stime duhet të përdoret gettimeofday ose clock_gettime);
- Funksioni gettimeofday tani nuk transmeton tĂ« dhĂ«na mbi zonĂ«n e kohĂ«s sĂ« sistemit (kjo mundĂ«si ishte e rĂ«ndĂ«sishme nĂ« kohĂ«n e 4.2-BSD dhe Ă«shtĂ« shpallur e vjetruar pĂ«r shumĂ« vite). NĂ« argumentin âtzpâ tani duhet tĂ« kaloni njĂ« tregues zero, dhe pĂ«r tĂ« marrĂ« informacione mbi zonĂ«n e kohĂ«s nĂ« lidhje me kohĂ«n aktuale tĂ« pĂ«rdorni funksionin localtime(). Kur thirret gettimeofday me njĂ« argument âtzpâ qĂ« nuk Ă«shtĂ« zero, do tĂ« kthehen fusha tĂ« zbrazĂ«ta tz_minuteswest dhe tz_dsttime nĂ« strukturĂ«n timezone. Funksioni vetĂ« gettimeofday konsiderohet i vjetruar nĂ« POSIX (nĂ« vend tĂ« gettimeofday rekomandohet tĂ« pĂ«rdoret clock_gettime), por nuk Ă«shtĂ« planifikuar qĂ« tĂ« hiqet nga glibc;
- Në settimeofday është ndalur mbështetjes për kalimin e njëkohshëm të parametrave për vendosjen e kohës dhe ndreqjen e offset-it të kohës. Kur thirret settimeofday, një nga argumentet (koha ose offset-i) tani duhet të vendoset domosdoshmërisht në vlerën null, përndryshe thirrja e funksionit do përfundojë me gabimin EINVAL. Ashtu si gettimeofday, funksioni settimeofday konsiderohet i vjetruar në POSIX dhe në vend të tij rekomandohet të përdoret funksioni clock_settime ose grupi i funksioneve adjtime;
- ĂshtĂ« ndaluar mbĂ«shtetje pĂ«r arkitekturĂ«n SPARC ISA v7 (mbĂ«shtetje pĂ«r v8 ende ruhet, por vetĂ«m pĂ«r procesorĂ«t qĂ« mbĂ«shtesin instruksionet CAS, siç janĂ« procesorĂ«t LEON, por jo procesorĂ«t SuperSPARC).
- Në rast të dështimit të lidhjes në modin ««, kur lidhësi nuk kryen kërkimin e simboleve të funksionit deri në thirrjen e parë të këtij funksioni, funksioni dlopen tani përfundon për forcërisht procesin (më parë në rast dështimi kthehej NULL);
- PĂ«r ABI MIPS hard-float tani pĂ«rdoret njĂ« stek ekzekutiv, nĂ«se gjatĂ« ndĂ«rtimit nuk Ă«shtĂ« dhĂ«nĂ« qartĂ« njĂ« kufizim pĂ«r pĂ«rdorimin e bĂ«rthamakut Linux 4.8+ pĂ«rmes parametrave «âenable-kernel=4.8.0» (me bĂ«rthamat deri nĂ« 4.8 shfaqen dĂ«shtime pĂ«r disa konfigurime MIPS);
- Përgjithësitë mbi thirrjet sistemore lidhur me manipulimin e kohës janë përkthyer për të përdorur thirrjen sistemore time64, nëse është e pranishme (në sistemet 32-bit glibc fillimisht përpiqet të përdorë thirrjet e reja sistemore që manipulojnë tipin 64-bit për kohën, dhe nëse ato nuk ekzistojnë, kthehet në thirrjet e vjetra 32-bit).
Burimi: opennet.ru
