Glibc 2.31 System Library Version

Apre sis mwa nan devlopman pibliye lage bibliyotèk sistèm lan Bibliyotèk GNU C (glibc) 2.31, ki konplètman konfòme ak kondisyon ki nan estanda ISO C11 ak POSIX.1-2008. Nouvo lage a gen ladan repare soti nan 58 devlopè.

Soti nan sa yo aplike nan Glibc 2.31 amelyorasyon ou ka sonje:

  • Te ajoute makro _ISOC2X_SOURCE pou pèmèt kapasite yo defini nan bouyon estanda ISO lavni an C2X. Karakteristik sa yo aktive tou lè w ap itilize makro _GNU_SOURCE a oswa lè w ap bati nan gcc ak drapo "-std=gnu2x" la;
  • Pou fonksyon ki defini nan fichye header "math.h" ki awondi rezilta yo nan yon kalite ki pi piti, yo pwopoze makro kalite jenerik korespondan yo nan fichye "tgmath.h", jan espesifikasyon TS 18661-1:2014 ak TS yo mande sa. 18661-3: 2015;
  • Te ajoute pthread_clockjoin_np() fonksyon, ki tann pou fil la fini, pran an kont tan an (si tan an rive anvan fini, fonksyon an ap retounen yon erè). Kontrèman ak pthread_timedjoin_np(), nan pthread_clockjoin_np() li posib pou defini ki kalite revèy pou kalkile timeout la - CLOCK_MONOTONIC (pran an kont tan sistèm lan pase nan mòd dòmi) oswa CLOCK_REALTIME;
  • Resolve DNS la kounye a sipòte opsyon trust-ad nan /etc/resolv.conf ak drapo RES_TRUSTAD nan _res.options, lè yo mete, drapo DNSSEC la transmèt nan demann DNS. AD (done otantifye). Nan mòd sa a, drapo AD mete sèvè a vin disponib pou aplikasyon ki rele fonksyon tankou res_search(). Pa default, si opsyon yo sijere yo pa mete, glibc pa presize drapo AD a nan demann yo epi otomatikman efase li nan repons yo, ki endike ke chèk DNSSEC yo manke;
  • Konstwi lyezon apèl sistèm k ap travay pou Glibc pa mande pou enstale dosye header Linux kernel yo ankò. Eksepsyon a se achitekti RISC-V 64-bit;
  • Elimine vilnerabilite CVE-2019-19126, ki pèmèt ou kontoune pwoteksyon an
    ASLR nan pwogram ki gen drapo setuid la epi detèmine layout adrès la nan bibliyotèk chaje yo atravè manipilasyon varyab anviwònman LD_PREFER_MAP_32BIT_EXEC.

Chanjman ki kraze konpatibilite:

  • totalorder(), totalordermag(), ak fonksyon menm jan an pou lòt kalite pwen k ap flote kounye a aksepte endikasyon kòm agiman pou elimine avètisman sou konvèti valè nan eta a. NaN, an akò ak rekòmandasyon TS 18661-1 yo pwopoze pou pwochen estanda C2X la.
    Ègzèkutabl ki deja egziste ki pase agiman pwen k ap flote dirèkteman ap kontinye kouri san modifikasyon;

  • Fonksyon stime depi lontan an pa disponib ankò pou binè ki lye ak glibc, epi definisyon li yo te retire nan time.h. Pou fikse tan sistèm lan, sèvi ak fonksyon clock_settime. Nan tan kap vini an, nou planifye pou retire fonksyon an depreche ftime, osi byen ke dosye header sys/timeb.h (yo dwe itilize gettimeofday oswa clock_gettime olye de ftime);
  • Fonksyon gettimeofday la pa bay enfòmasyon sou zòn tan nan tout sistèm lan ankò (karakteristik sa a te enpòtan nan epòk 4.2-BSD e li te obsève pandan plizyè ane). Agiman 'tzp' a ta dwe kounye a pase yon pointeur nil, ak fonksyon an localtime() ta dwe itilize pou jwenn enfòmasyon sou zòn tan ki baze sou tan aktyèl la. Lè w rele gettimeofday ak yon agiman ki pa zewo 'tzp', ap retounen jaden vid tz_minuteswest ak tz_dsttime nan estrikti timezone a. Fonksyon gettimeofday li menm depreke anba POSIX (rekòmande clock_gettime olye de gettimeofday), men pa gen plan pou retire li nan glibc;
  • settimeofday pa sipòte similtane pase paramèt pou fikse tan an ak konpanse tan-koreksyon an. Lè w ap rele settimeofday, youn nan agiman yo (tan oswa konpanse) dwe kounye a mete nan nil, otreman apèl la fonksyon ap echwe ak yon erè EINVAL. Menm jan ak gettimeofday, fonksyon settimeofday demode nan POSIX e li rekòmande pou ranplase pa fonksyon clock_settime oswa fanmi fonksyon adjtime;
  • Sipò pou achitekti SPARC ISA v7 te sispann (sipò v8 kenbe pou kounye a, men sèlman pou processeurs ki sipòte enstriksyon CAS, tankou processeurs LEON, pa processeur SuperSPARC).
  • Si koupi echwe nan "parese", kote linker a pa chèche senbòl yon fonksyon jiskaske premye apèl nan fonksyon sa a, fonksyon dlopen kounye a fòse pwosesis la fini (anvan retounen NULL sou echèk);
  • Pou MIPS hard-float ABI, yo itilize pile ègzèkutabl la kounye a, sof si konstriksyon an klèman mete restriksyon sou itilizasyon kernel Linux 4.8+ atravè paramèt "-enable-kernel=4.8.0" (avèk nwayo jiska 4.8, aksidan yo). obsève pou kèk konfigirasyon MIPS);
  • Liaison yo alantou apèl sistèm ki gen rapò ak manipilasyon tan yo te deplase pou itilize apèl sistèm time64 la, si prezan (sou sistèm 32-bit, glibc premye eseye nouvo apèl sistèm ki manipile kalite tan 64-bit, epi si pa genyen okenn, tonbe. tounen nan ansyen apèl yo 32-bit).

Sous: opennet.ru

Add nouvo kòmantè