Etter seks mÄneders utvikling utgivelse av systembiblioteket (glibc) , som fullt ut oppfyller kravene i standardene ISO C11 og POSIX.1-2008. Den nye utgaven inkluderer rettelser fra 58 utviklere.
Fra funksjoner implementert i Glibc 2.31 kan nevnes:
- Lagt til makro _ISOC2X_SOURCE for Ä aktivere funksjonalitet definert i utkastet til den fremtidige ISO-standarden . Denne funksjonaliteten aktiveres ogsÄ ved bruk av makroen _GNU_SOURCE eller ved bygging med gcc med flagget «-std=gnu2x»;
- For funksjoner definert i header-filen «math.h» som runder av resultater til en mindre datatype, er det foreslÄtt passende generiske makroer i filen «tgmath.h», som krevd av spesifikasjonene TS 18661-1:2014 og TS 18661-3:2015;
- Lagt til funksjonen pthread_clockjoin_np(), som venter pĂ„ at en trĂ„d skal fullfĂžres med hensyn til en tidsgrense (hvis tidsgrensen utlĂžper fĂžr fullfĂžring, vil funksjonen returnere en feil). I motsetning til , tillater pthread_clockjoin_np() spesifikasjon av timer type for beregning av tidsgrensen â CLOCK_MONOTONIC (tar hensyn til tiden systemet har vĂŠrt i hvilemodus) eller CLOCK_REALTIME;
- I DNS-resolveren er stÞtte for trust-ad alternativet lagt til i /etc/resolv.conf og flagget RES_TRUSTAD i _res.options, som, nÄr aktivert, gjÞr at DNSSEC-flagget overfÞres i DNS-forespÞrslene (authenticated data). I denne modusen blir den AD-flagget som er satt av serveren, tilgjengelig for applikasjoner som kaller funksjoner som ligner pÄ res_search(). Som standard, dersom de foreslÄtte alternativene ikke er aktivert, angir glibc ikke AD-flagget i forespÞrslene og fjerner det automatisk i svarene, noe som indikerer at DNSSEC verifikasjon ikke har blitt utfÞrt;
- For Ä bygge fungerende systemanrop wrappers for Glibc er det nÄ ikke nÞdvendig Ä installere Linux kernel header-filer. Det eneste unntaket er 64-bits arkitektur RISC-V;
- Fikset , som gjÞr det mulig Ä omgÄ beskyttelsen
ASLR i programmer med setuid-flagg og bestemme adressefordelingen i lastede biblioteker ved manipulasjon av miljĂžvariabelen LD_PREFER_MAP_32BIT_EXEC.
Endringer som bryter bakoverkompatibilitet:
- I totalorder(), totalordermag() og lignende funksjoner for andre flyttalls typer, aksepterer nÄ pekere som argument for Ä unngÄ varsler om konvertering av verdier til tilstanden , i samsvar med anbefalingene i TS 18661-1, foreslÄtt for den fremtidige standarden C2X.
Eksisterende kjÞrbare filer, der flyttallsargumenter sendes direkte, vil fortsette Ä fungere uten endringer; - Den lenge annonserte utdaterte funksjonen stime er nÄ utilgjengelig for binÊrfiler knyttet til glibc, og dens definisjon er fjernet fra time.h. For Ä sette systemtiden, bÞr funksjonen clock_settime brukes. I fremtiden planlegges det Ä fjerne den ogsÄ utdaterte funksjonen ftime, samt header-filen sys/timeb.h (i stedet for ftime bÞr gettimeofday eller clock_gettime brukes);
- Funksjonen gettimeofday overfÞrer nÄ ikke lenger informasjon om det generelle systemets tidssone (denne muligheten var relevant pÄ 4.2-BSD og har vÊrt erklÊrt utdaterte i mange Är). I argumentet 'tzp' bÞr det nÄ sendes en nullpeker, og for Ä fÄ opplysninger om tidssonen knyttet til den nÄvÊrende tiden, bÞr funksjonen localtime() brukes. NÄr gettimeofday kalles med et ikke-null argument 'tzp', vil tomme felt tz_minuteswest og tz_dsttime bli returnert i strukturen timezone. Funksjonen gettimeofday anses ogsÄ som utdaterte i POSIX (det anbefales Ä bruke clock_gettime i stedet for gettimeofday), men den vil ikke bli fjernet fra glibc;
- I settimeofday er stÞtten for samtidig overfÞring av parametere for Ä sette tid og korrektiv tidsforskyvning avsluttet. NÄr settimeofday kalles, mÄ ett av argumentene (tid eller forskyvning) nÄ nÞdvendigvis settes til null, ellers vil funksjonskallet avsluttes med feilmeldingen EINVAL. Akkurat som gettimeofday, anses funksjonen settimeofday for utdaterte i POSIX, og det anbefales Ä bruke funksjonen clock_settime eller funksjonsfamilien adjtime i stedet;
- StĂžtten for arkitekturen SPARC ISA v7 er avsluttet (stĂžtten for v8 er fortsatt bevart, men bare for prosessorer med stĂžtte for CAS-instruksjoner, som LEON-prosessorer, men ikke SuperSPARC-prosessorer).
- I tilfelle avbinding mislykkes i «« modus, der linker ikke sÞker etter funksjonssymboler fÞr fÞrste kall til denne funksjonen, vil funksjonen dlopen nÄ tvinge prosessen til Ä avslutte (tidligere ble NULL returnert ved feil);
- For ABI MIPS hard-float, brukes nÄ en kjÞrende stakk, med mindre det er spesifisert en begrensning for bruken av Linux-kjernen 4.8+ under bygging gjennom parameteren «--enable-kernel=4.8.0» (med kerner opp til 4.8, observeres det krasj for noen MIPS-konfigurasjoner);
- Binde over systemkall relatert til tidsmanipulering er oversatt til bruk av systemkallet time64, nÄr det er tilgjengelig (pÄ 32-biters systemer prÞver glibc fÞrst Ä bruke de nye systemkallene som manipulerer 64-biters tidstype, og hvis de ikke er tilstede, faller det tilbake til de gamle 32-biters kallene).
Kilde: opennet.ru
