Glibc 2.31 System Library Release

Eftir sex mánaða þróun birt útgáfu kerfisbókasafns GNU C bókasafn (glibc) 2.31, sem uppfyllir að fullu kröfur ISO C11 og POSIX.1-2008 staðla. Nýja útgáfan inniheldur lagfæringar frá 58 forriturum.

Frá þeim sem innleiddar voru í Glibc 2.31 úrbætur þú getur tekið eftir:

  • Bætt við _ISOC2X_SOURCE fjölvi til að virkja möguleika sem eru skilgreindir í drögum að framtíðar ISO staðli C2X. Þessir eiginleikar eru einnig virkir þegar _GNU_SOURCE fjölvi er notað eða þegar þú byggir inn gcc með „-std=gnu2x“ fánanum;
  • Fyrir aðgerðir sem eru skilgreindar í hausskránni "math.h" sem námunda niðurstöður þeirra í smærri gerð, eru samsvarandi almennar gerðir fjölvi lagðar til í skránni "tgmath.h", eins og krafist er í forskriftunum TS 18661-1:2014 og TS 18661-3: 2015;
  • Bætti við pthread_clockjoin_np() falli, sem bíður eftir að þráðurinn ljúki, að teknu tilliti til tímaleysis (ef tíminn á sér stað áður en henni er lokið mun fallið skila villu). Ólíkt pthread_timedjoin_np(), í pthread_clockjoin_np() er hægt að skilgreina tegund tímamælis til að reikna út tímalengd - CLOCK_MONOTONIC (tekir mið af þeim tíma sem kerfið eyðir í svefnham) eða CLOCK_REALTIME;
  • DNS leysirinn styður nú traustauglýsingavalkostinn í /etc/resolv.conf og RES_TRUSTAD fánann í _res.options, þegar hann er stilltur er DNSSEC fáninn sendur í DNS beiðnum AD (staðfest gögn). Í þessum ham verður AD fáninn sem þjónninn setur aðgengilegur forritum sem kalla aðgerðir eins og res_search(). Sjálfgefið, ef leiðbeinandi valkostir eru ekki stilltir, tilgreinir glibc ekki AD fána í beiðnum og hreinsar það sjálfkrafa í svörum, sem gefur til kynna að DNSSEC athuganir vanti;
  • Að byggja upp starfandi kerfiskallbindingar fyrir Glibc þarf ekki lengur að setja upp Linux kjarnahausaskrárnar. Undantekningin er 64-bita RISC-V arkitektúrinn;
  • Útrýmt varnarleysi CVE-2019-19126, sem gerir þér kleift að komast framhjá vörninni
    ASLR í forritum með setuid fánanum og ákvarða heimilisfangið í hlaðnum bókasöfnum með því að nota LD_PREFER_MAP_32BIT_EXEC umhverfisbreytuna.

Breytingar sem brjóta eindrægni:

  • totalorder(), totalordermag() og svipaðar aðgerðir fyrir aðrar fljótandi gerðir samþykkja nú ábendingar sem rök til að útrýma viðvörunum um að breyta gildum í ástandi NaN, í samræmi við ráðleggingar TS 18661-1 sem lagðar eru til fyrir framtíðar C2X staðal.
    Núverandi keyrslur sem fara beint framhjá fljótandi punktum munu halda áfram að keyra án breytinga;

  • Stime-fallið sem er löngu úrelt er ekki lengur tiltækt fyrir glibc-tengda tvíþætti og skilgreining þess hefur verið fjarlægð frá tíma.h. Til að stilla kerfistímann skaltu nota clock_settime aðgerðina. Í framtíðinni ætlum við að fjarlægja úrelta ftime aðgerðina, sem og sys/timeb.h hausskrána (gettimeofday eða clock_gettime ætti að nota í stað ftime);
  • Gettimeofday aðgerðin sendir ekki lengur upplýsingar um tímabelti kerfisins (þessi eiginleiki átti við á dögum 4.2-BSD og hefur verið úrelt í mörg ár). 'tzp' röksemdin ætti nú að vera komin framhjá núllbendingu og staðbundið () fallið ætti að nota til að fá tímabeltisupplýsingar byggðar á núverandi tíma. Ef hringt er í gettimeofday með „tzp“ rökum sem ekki eru núll mun það skila tómum tz_minuteswest og tz_dsttime reitunum í tímabeltisskipulaginu. Gettimeofday fallið sjálft er úrelt undir POSIX (mælt er með clock_gettime í stað gettimeofday), en engin áform eru um að fjarlægja hana úr glibc;
  • settimeofday styður ekki lengur samtímis sendingu færibreyta til að stilla tíma og tímaleiðréttingarjöfnun. Þegar hringt er í settimeofday verður nú að stilla ein af breytunum (tími eða offset) á núll, annars mun fallkallið mistakast með EINVAL villu. Eins og gettimeofday, er settimeofday fallið úrelt í POSIX og mælt er með því að það sé skipt út fyrir clock_settime fallið eða adjtime fjölskyldu falla;
  • Stuðningur við SPARC ISA v7 arkitektúr hefur verið stöðvaður (v8 stuðningur er haldið í bili, en aðeins fyrir örgjörva sem styðja CAS leiðbeiningar, eins og LEON örgjörva, ekki SuperSPARC örgjörva).
  • Ef pörun mistekst í "latur", þar sem tengillinn leitar ekki að táknum falls fyrr en fyrsta símtalið til þess falls, neyðir dlopen aðgerðin nú til að ljúka ferlinu (skilaði áður NULL við bilun);
  • Fyrir MIPS hard-float ABI er keyranlegi staflan nú notaður, nema byggingin takmarki sérstaklega notkun Linux kjarna 4.8+ með „-enable-kernel=4.8.0“ færibreytunni (með kjarna allt að 4.8 eru hrun fylgst með sumum MIPS stillingum);
  • Bindingarnar í kringum kerfissímtöl sem tengjast tímastjórnun hafa verið færðar til að nota time64 kerfiskallið, ef það er til staðar (í 32-bita kerfum reynir glibc fyrst ný kerfissímtöl sem vinna með 64-bita tímagerðina, og ef þau eru engin, fellur aftur í gömlu 32-bita símtölin).

Heimild: opennet.ru

Bæta við athugasemd