Glibc 2.31 Systembibliothéik Verëffentlechung

No sechs Méint Entwécklung publizéiert System Bibliothéik Verëffentlechung GNU C Bibliothéik (glibc) 2.31, déi voll mat den Ufuerderunge vun ISO C11 a POSIX.1-2008 Standarden entsprécht. Déi nei Verëffentlechung enthält Fixe vu 58 Entwéckler.

Vun deenen, déi am Glibc 2.31 implementéiert goufen Verbesserungen Dir kënnt Notiz:

  • _ISOC2X_SOURCE Makro bäigefüügt fir Fäegkeeten z'erméiglechen, definéiert am Entworf zukünfteg ISO Standard C2X. Dës Funktiounen sinn och aktivéiert wann Dir den _GNU_SOURCE Makro benotzt oder wann Dir am gcc mam Fändel "-std = gnu2x" baut;
  • Fir Funktiounen, déi an der Headerdatei "math.h" definéiert sinn, déi hir Resultater op e méi klengen Typ ëmginn, ginn déi entspriechend generesch Typ Makroen an der Datei "tgmath.h" proposéiert, wéi néideg vun de Spezifikatioune TS 18661-1:2014 an TS 18661-3: 2015;
  • Derbäigesat pthread_clockjoin_np () Funktioun, déi waart bis de Fuedem fäerdeg ass, andeems d'Timeout berücksichtegt gëtt (wann den Timeout virum Ofschloss geschitt, gëtt d'Funktioun e Feeler zréck). Géigesaz pthread_timedjoin_np(), an pthread_clockjoin_np () ass et méiglech der Zort Timer fir Berechent der Zäit ze definéieren - CLOCK_MONOTONIC (hëlt Rechnung der Zäit vum System am Schlof Modus verbraucht) oder CLOCK_REALTIME;
  • Den DNS-Resolver ënnerstëtzt elo d'Vertrauens-Annonce-Optioun an /etc/resolv.conf an den RES_TRUSTAD-Fändel an _res.options, wann agestallt, gëtt den DNSSEC-Fändel an DNS-Ufroen iwwerdroen AD (authentifizéiert Donnéeën). An dësem Modus gëtt den AD Fändel, deen vum Server gesat gëtt, verfügbar fir Uwendungen déi Funktiounen wéi res_search () ruffen. Par défaut, wann déi proposéiert Optiounen net gesat ginn, glibc spezifizéiert den AD Fändel net an Ufroen a läscht se automatesch an Äntwerten, wat beweist datt DNSSEC Kontrollen fehlen;
  • Bauen vun Aarbechtssystem Uruff Bindungen fir Glibc erfuerdert net méi d'Installatioun vun de Linux Kernel Header Dateien. Ausnam ass d'64-Bit RISC-V Architektur;
  • Eliminéiert Schwachstelle CVE-2019-19126, wat Iech erlaabt de Schutz ëmzegoen
    ASLR a Programmer mat der setuid Fändel a bestëmmen d'Adress Layout an gelueden Bibliothéiken duerch Manipulatioun vun der LD_PREFER_MAP_32BIT_EXEC Ëmfeld Variabel.

Ännerungen déi d'Kompatibilitéit briechen:

  • totalorder (), totalordermag (), an ähnlech Funktiounen fir aner Floating-Point Typen akzeptéieren elo Pointer als Argumenter fir Warnungen iwwer d'Konvertéierung vu Wäerter am Staat ze eliminéieren Nee, am Aklang mat den Empfehlungen vum TS 18661-1 fir den zukünftege C2X Standard proposéiert.
    Bestehend ausführbar, déi schwiewend Punktargumenter direkt passéieren, lafen weider ouni Ännerung;

  • D'laang-deprecated stime Funktioun ass net méi sinn fir glibc-verbonne binären, a seng Definitioun gouf vun Zäit geläscht.h. Fir d'Systemzäit ze setzen, benotzt d'clock_settime Funktioun. An Zukunft plangen mir d'deprecéiert ftime Funktioun ze läschen, wéi och d'sys/timeb.h Header Datei (gettimeofday oder clock_gettime soll amplaz ftime benotzt ginn);
  • D'Gettimeofday Funktioun passéiert net méi Informatioun iwwer d'systemwäit Zäitzone (dës Feature war relevant an den Deeg vum 4.2-BSD a gouf fir vill Joren ofgeschaaft). D'Argument 'tzp' soll elo en Null-Zeiger iwwerginn ginn, an d'Lokalzäit() Funktioun soll benotzt ginn fir Zäitzoninformatioun op Basis vun der aktueller Zäit ze kréien. Wann Dir gettimeofday mat engem net-null Argument 'tzp' rufft, ginn eidel Felder tz_minuteswest an tz_dsttime an der Zäitzonstruktur zréck. D'gettimeofday Funktioun selwer gëtt ënner POSIX ofgeschaaft (clock_gettime ass recommandéiert amplaz gettimeofday), awer et gi keng Pläng fir se aus glibc ze läschen;
  • settimeofday ënnerstëtzt net méi gläichzäiteg Passe vu Parameteren fir d'Zäit an d'Zäitkorrektur Offset ze setzen. Wann Dir settimeofday rufft, muss ee vun den Argumenter (Zäit oder Offset) elo op Null gesat ginn, soss fällt de Funktiounsruff mat engem EINVAL Feeler. Wéi gettimeofday, ass d'Settimeofday Funktioun am POSIX ofgeschaaft a gëtt recommandéiert duerch d'clock_settime Funktioun oder d'adjtime Famill vu Funktiounen ersat ze ginn;
  • Ënnerstëtzung fir d'SPARC ISA v7 Architektur gouf gestoppt (v8 Ënnerstëtzung gëtt fir de Moment behalen, awer nëmme fir Prozessoren déi CAS Instruktiounen ënnerstëtzen, wéi LEON Prozessoren, net SuperSPARC Prozessoren).
  • Wann d'Paaring feelt an "Lazy", an deem de Linker net no Symboler vun enger Funktioun sicht bis den éischten Uruff un dës Funktioun, forcéiert d'Dlopen Funktioun elo de Prozess ofzeschléissen (virdrun NULL zréck bei Echec);
  • Fir den MIPS hard-float ABI gëtt den ausführbare Stack elo benotzt, ausser de Build explizit d'Benotzung vum Linux 4.8+ Kernel iwwer de "-enable-kernel=4.8.0" Parameter beschränkt (mat Kernelen bis 4.8, Crashen sinn observéiert fir e puer MIPS Konfiguratiounen);
  • D'Bindungen ronderëm System Uriff am Zesummenhang mat Zäitmanipulatioun goufen geplënnert fir den time64 System Uruff ze benotzen, wann et präsent ass (op 32-Bit Systemer, glibc probéiert fir d'éischt nei System Uriff déi den 64-Bit Zäittyp manipuléieren, a wann et keng ass, fällt zréck op déi al 32-Bit Appellen).

Source: opennet.ru

Setzt e Commentaire