Glibc 2.31 System Library Tu

Lẹhin osu mẹfa ti idagbasoke atejade idasilẹ ìkàwé eto GNU C Library (glibc) 2.31, eyi ti o ni kikun ni ibamu pẹlu awọn ibeere ti ISO C11 ati POSIX.1-2008. Itusilẹ tuntun pẹlu awọn atunṣe lati ọdọ awọn olupilẹṣẹ 58.

Ti ṣe imuse ni Glibc 2.30 awọn ilọsiwaju o le ṣe akiyesi:

  • Ṣafikun _ISOC2X_SOURCE Makiro lati jẹ ki awọn agbara ti a ṣalaye ni apẹrẹ ISO ti ọjọ iwaju C2X. Awọn ẹya wọnyi tun ṣiṣẹ nigba lilo macro _GNU_SOURCE tabi nigba kikọ ni gcc pẹlu asia “-std=gnu2x”;
  • Fun awọn iṣẹ ti a ṣalaye ninu faili akọsori "math.h" ti o yika awọn abajade wọn si iru ti o kere ju, awọn macro iru jeneriki ti o baamu ni a dabaa ninu faili “tgmath.h”, bi o ṣe nilo nipasẹ awọn pato TS 18661-1: 2014 ati TS Ọdun 18661-3: Ọdun 2015;
  • Iṣẹ pthread_clockjoin_np () ti a ṣafikun, eyiti o duro de okun lati pari, ni akiyesi akoko ipari (ti akoko ba waye ṣaaju ipari, iṣẹ naa yoo da aṣiṣe pada). Ko dabi pthread_timedjoin_np(), ni pthread_clockjoin_np () o jẹ ṣee ṣe lati setumo awọn iru ti aago fun oniṣiro awọn akoko - CLOCK_MONOTONIC (gba sinu iroyin awọn akoko lo nipa awọn eto ni orun mode) tabi CLOCK_REALTIME;
  • Olupinpin DNS ni bayi ṣe atilẹyin aṣayan igbẹkẹle-igbẹkẹle ni /etc/resolv.conf ati asia RES_TRUSTAD ni _res.options, nigba ti ṣeto, asia DNSSEC ti wa ni gbigbe ni awọn ibeere DNS AD (data ti o jẹ otitọ). Ni ipo yii, asia AD ti a ṣeto nipasẹ olupin yoo wa fun awọn ohun elo ti o pe awọn iṣẹ bii res_search (). Nipa aiyipada, ti a ko ba ṣeto awọn aṣayan ti a daba, glibc ko ṣe pato asia AD ni awọn ibeere ati pe o sọ di mimọ laifọwọyi ni awọn idahun, nfihan pe awọn sọwedowo DNSSEC ti nsọnu;
  • Awọn isopọ ipe eto iṣẹ ṣiṣe fun Glibc ko nilo fifi sori ẹrọ awọn faili akọsori ekuro Linux. Iyatọ jẹ 64-bit RISC-V faaji;
  • Imukuro ailagbara CVE-2019-19126, eyiti o fun ọ laaye lati fori aabo naa
    ASLR ninu awọn eto pẹlu asia setuid ati pinnu iṣeto adirẹsi ni awọn ile-ikawe ti kojọpọ nipasẹ ifọwọyi ti LD_PREFER_MAP_32BIT_EXEC oniyipada ayika.

Awọn iyipada ti o bajẹ ibamu:

  • totalorder (), totalordermag (), ati awọn iṣẹ ti o jọra fun awọn oriṣi aaye lilefoofo miiran ni bayi gba awọn itọka bi awọn ariyanjiyan lati yọkuro awọn ikilọ nipa awọn iye iyipada ni ipinlẹ OòN, ni ibamu pẹlu awọn iṣeduro ti TS 18661-1 dabaa fun ojo iwaju C2X bošewa.
    Awọn ipaniyan ti o wa tẹlẹ ti o kọja awọn ariyanjiyan aaye lilefoofo taara yoo tẹsiwaju lati ṣiṣẹ laisi iyipada;

  • Iṣẹ akoko igba pipẹ ko si fun awọn alakomeji ti o ni asopọ glibc, ati pe a ti yọ itumọ rẹ kuro lati time.h. Lati ṣeto akoko eto, lo iṣẹ clock_settime. Ni ojo iwaju, a gbero lati yọkuro iṣẹ ftime ti a ti parẹ, bakanna bi faili akọsori sys/timeb.h (gettimeofday tabi clock_gettime yẹ ki o lo dipo ftime);
  • Функция gettimeofday отныне не передаёт сведения о общесистемном часовом поясе (данная возможность была актуальна во времена 4.2-BSD и много лет объявлена устаревшей). В аргументе ‘tzp’ теперь следует передавать нулевой указатель, а для получения сведений о часовом поясе в привязке к текущему времени использовать функцию localtime(). При вызове gettimeofday с ненулевым аргументом ‘tzp’ будут возвращены пустые поля tz_minuteswest и tz_dsttime в структуре timezone. Сама функция gettimeofday считается устаревшей в POSIX (вместо gettimeofday рекомендуется использовать clock_gettime), но удалять её из glibc не планируется;
  • settimeofday ko ṣe atilẹyin gbigbe nigbakanna ti awọn paramita fun eto akoko ati aiṣedeede atunṣe akoko. Nigbati o ba n pe settimeofday, ọkan ninu awọn ariyanjiyan (akoko tabi aiṣedeede) gbọdọ ṣeto bayi si asan, bibẹẹkọ ipe iṣẹ yoo kuna pẹlu aṣiṣe EINVAL kan. Gẹgẹ bi gettimeofday, iṣẹ settimeofday ti lọ silẹ ni POSIX ati pe a gba ọ niyanju lati rọpo nipasẹ iṣẹ clock_settime tabi idile awọn iṣẹ adjtime;
  • Atilẹyin fun faaji SPARC ISA v7 ti dawọ duro (atilẹyin v8 wa ni idaduro fun bayi, ṣugbọn fun awọn ilana ti o ṣe atilẹyin awọn ilana CAS, gẹgẹ bi awọn olutọsọna LEON, kii ṣe awọn ilana SuperSPARC).
  • В случает сбоя связывания в режиме «ọlẹ", ninu eyiti ọna asopọ ko wa awọn aami iṣẹ kan titi ti ipe akọkọ si iṣẹ naa, iṣẹ dlopen bayi fi agbara mu ilana naa lati fopin si (pada NULL tẹlẹ lori ikuna);
  • Fun MIPS lilefofo loju omi lilefoofo ABI, akopọ ti o ṣiṣẹ ni a ti lo ni bayi, ayafi ti kikọ ba ni ihamọ ni ihamọ lilo Linux 4.8+ ekuro nipasẹ paramita “-enable-kernel=4.8.0” (pẹlu awọn kernels to 4.8, awọn ipadanu jẹ ṣe akiyesi fun diẹ ninu awọn atunto MIPS);
  • Awọn asopọ ni ayika awọn ipe eto ti o ni ibatan si ifọwọyi akoko ni a ti gbe lati lo ipe eto time64, ti o ba wa (lori awọn eto 32-bit, glibc kọkọ gbiyanju awọn ipe eto tuntun ti o ṣakoso iru akoko 64-bit, ati pe ti ko ba si, ṣubu pada si awọn atijọ 32-bit awọn ipe).

orisun: opennet.ru

Fi ọrọìwòye kun