Glibc 2.31 sistemaren liburutegiaren bertsioa

Sei hilabeteko garapenaren ostean argitaratuko sistemaren liburutegiaren kaleratzea GNU C Liburutegia (glibc) 2.31, ISO C11 eta POSIX.1-2008 arauen eskakizunak guztiz betetzen dituena. Bertsio berriak 58 garatzaileren konponketak biltzen ditu.

Glibc 2.30-n inplementatutakoetatik hobekuntzak ohar zaitezke:

  • _ISOC2X_SOURCE makroa gehitu da etorkizuneko ISO arau zirriborroan definitutako gaitasunak gaitzeko C2X. Ezaugarri hauek ere gaituta daude _GNU_SOURCE makroa erabiltzean edo "-std=gnu2x" banderarekin gcc-n eraikitzean;
  • Emaitzak mota txikiago batera biribiltzen dituzten "math.h" goiburuko fitxategian definitutako funtzioetarako, dagozkion mota generiko makroak proposatzen dira "tgmath.h" fitxategian, TS 18661-1:2014 eta TS zehaztapenek eskatzen duten moduan. 18661-3: 2015;
  • pthread_clockjoin_np() funtzioa gehitu da, haria amaitu arte itxaroten duena, denbora-muga kontuan hartuta (denbora-muga amaitu aurretik gertatzen bada, funtzioak errore bat itzuliko du). Ez bezala pthread_timedjoin_np(), pthread_clockjoin_np()-n denbora-muga kalkulatzeko tenporizadore mota defini daiteke - CLOCK_MONOTONIC (sistemak lo moduan emandako denbora kontuan hartzen du) edo CLOCK_REALTIME;
  • DNS konpontzaileak /etc/resolv.conf-en trust-ad aukera eta _res.options-en RES_TRUSTAD bandera onartzen ditu orain, ezarrita dagoenean, DNSSEC bandera DNS eskaeretan transmititzen da. AD (autentifikatutako datuak). Modu honetan, zerbitzariak ezarritako AD bandera eskuragarri egongo da res_search(() bezalako funtzioak deitzen dituzten aplikazioentzat. Lehenespenez, iradokitako aukerak ezartzen ez badira, glibc-k ez du AD markarik zehazten eskaeretan eta automatikoki garbitzen du erantzunetan, DNSSEC egiaztapenak falta direla adieraziz;
  • Glibc-erako laneko sistema-deien loturak eraikitzeak ez du Linux nukleoaren goiburuko fitxategiak instalatu behar. Salbuespena 64 biteko RISC-V arkitektura da;
  • Ezabatuta zaurgarritasuna CVE-2019-19126, babesa saihesteko aukera ematen duena
    ASLR setuid bandera duten programetan eta kargatutako liburutegietan helbide-diseinua zehaztu LD_PREFER_MAP_32BIT_EXEC ingurune-aldagaiaren manipulazioaren bidez.

Bateragarritasuna hausten duten aldaketak:

  • totalorder(), totalordermag() eta beste puntu mugikorreko beste mota batzuen antzeko funtzioek orain erakusleak onartzen dituzte argumentu gisa, egoeran balioak bihurtzeari buruzko abisuak ezabatzeko. NaN, etorkizuneko C18661X estandarrerako proposatutako TS 1-2 gomendioen arabera.
    Koa mugikorreko argumentuak zuzenean pasatzen dituzten exekutagarriek aldaketarik gabe exekutatzen jarraituko dute;

  • Aspalditik zaharkituta zegoen stime funtzioa jada ez dago erabilgarri glibc-ekin lotutako bitarrentzat, eta bere definizioa kendu da time.h. Sistemaren ordua ezartzeko, erabili clock_settime funtzioa. Etorkizunean, zaharkitutako ftime funtzioa kentzeko asmoa dugu, baita sys/timeb.h goiburuko fitxategia ere (gettimeofday edo clock_gettime erabili behar dira ftimeren ordez);
  • gettimeofday funtzioak jada ez du sistema osorako ordu-eremuari buruzko informazioa pasatzen (eginbide hau garrantzitsua zen 4.2-BSD-ren garaian eta zaharkituta egon da urte askotan). 'tzp' argumentuari erakusle nulu bat pasatu behar zaio orain, eta localtime() funtzioa uneko orduaren arabera ordu-zonaren informazioa lortzeko erabili behar da. 'tzp' zero ez den argumentu batekin gettimeofday deitzeak tz_minuteswest eta tz_dsttime eremu hutsak itzuliko ditu ordu-eremuaren egituran. gettimeofday funtzioa bera zaharkituta dago POSIX-en (clock_gettime gomendatzen da gettimeofday-ren ordez), baina ez dago glibc-tik kentzeko asmorik;
  • settimeofday jada ez du onartzen ordua eta denbora zuzentzeko desplazamendua ezartzeko parametroak aldi berean pasatzea. Settimeofday deitzean, argumentuetako bat (denbora edo desplazamendua) nulu gisa ezarri behar da, bestela funtzio-deiak huts egingo du EINVAL errore batekin. gettimeofday bezala, settimeofday funtzioa POSIX-en zaharkituta dago eta clock_settime funtzioarekin edo adjtime funtzioen familiarekin ordezkatzea gomendatzen da;
  • SPARC ISA v7 arkitekturarako euskarria eten egin da (v8 euskarria mantentzen da oraingoz, baina CAS instrukzioak onartzen dituzten prozesadoreentzat bakarrik, hala nola LEON prozesadoreentzat, ez SuperSPARC prozesadoreentzat).
  • Parekatzeak huts egiten badu "alferrak", zeinetan estekatzaileak ez ditu funtzio baten ikurrak bilatzen funtzio horren lehen deia egin arte, dlopen funtzioak orain prozesua amaitzera behartzen du (aurrez NULL itzultzen zuen hutsegitean);
  • MIPS hard-float ABI-rako, pila exekutagarria erabiltzen da orain, eraikuntzak Linux kernel 4.8+en erabilera esplizituki mugatzen ez badu β€œ-enable-kernel=4.8.0” parametroaren bidez (4.8ra arteko nukleoekin, hutsegiteak dira). MIPS konfigurazio batzuetan ikusitakoa);
  • Denbora manipulazioari lotutako sistema-deien inguruko loturak time64 sistema-deia erabiltzera eraman dira, baldin badago (32 biteko sistemetan, glibc-k lehenik 64 biteko denbora mota manipulatzen duten sistema-dei berriak probatzen ditu, eta ez badago, erortzen da. 32 biteko dei zaharretara itzuli).

Iturria: opennet.ru

Gehitu iruzkin berria