Glibc 2.31 Нашри китобхонаи система

Пас аз шаш моҳи рушд нашр кардааст нашри китобхонаи системавӣ Китобхонаи GNU C (glibc) 2.31, ки пурра ба талаботи стандартҳои ISO C11 ва POSIX.1-2008 мувофиқат мекунад. Нашри нав ислоҳи 58 таҳиягарро дар бар мегирад.

Аз онҳое, ки дар Glibc 2.31 амалӣ карда шудаанд беҳбудиҳо шумо метавонед қайд кунед:

  • Илова кардани макросҳои _ISOC2X_SOURCE барои фаъол кардани қобилиятҳое, ки дар лоиҳаи стандарти ояндаи ISO муайян шудаанд C2X. Ин хусусиятҳо инчунин ҳангоми истифодаи макроси _GNU_SOURCE ё ҳангоми сохтани gcc бо парчами "-std=gnu2x" фаъол карда мешаванд;
  • Барои функсияҳое, ки дар файли сарлавҳаи "math.h" муайян шудаанд, ки натиҷаҳои онҳоро ба навъи хурдтар гирд мекунанд, макросҳои навъи умумии мувофиқ дар файли "tgmath.h" пешниҳод карда мешаванд, ки тибқи мушаххасоти TS 18661-1:2014 ва TS талаб карда мешаванд. 18661-3: 2015;
  • Функсияи pthread_clockjoin_np() илова карда шуд, ки интизори анҷоми ришта, бо дарназардошти тайм-аут (агар пеш аз ба итмом расидани вақт ба амал ояд, функсия хатогиро бармегардонад). Баръакси pthread_timedjoin_np(), дар pthread_clockjoin_np() мумкин аст, ки навъи таймер барои ҳисоб кардани вақт - CLOCK_MONOTONIC (вақти дар ҳолати хоб сарфкардаи системаро ба назар мегирад) ё CLOCK_REALTIME;
  • Ҳоло ҳалкунандаи DNS варианти эътимоди таблиғро дар /etc/resolv.conf ва парчами RES_TRUSTAD дар _res.options дастгирӣ мекунад, вақте ки гузошта мешавад, парчами DNSSEC дар дархостҳои DNS интиқол дода мешавад. AD (маълумоти тасдиқшуда). Дар ин реҷа, парчами AD, ки сервер муқаррар кардааст, барои барномаҳое дастрас мешавад, ки ба монанди res_search() функсияҳоро даъват мекунанд. Бо нобаёнӣ, агар имконоти пешниҳодшуда муқаррар нашуда бошанд, glibc парчами AD-ро дар дархостҳо нишон намедиҳад ва дар посухҳо онро ба таври худкор тоза мекунад ва нишон медиҳад, ки санҷишҳои DNSSEC мавҷуд нестанд;
  • Сохтани пайвандҳои зангҳои системаи корӣ барои Glibc дигар насб кардани файлҳои сарлавҳаи ядрои Linux-ро талаб намекунад. Истисно меъмории 64-бита RISC-V мебошад;
  • Бартараф карда шуд осебпазирӣ CVE-2019-19126, ки ба шумо имкон медиҳад, ки муҳофизатро аз даст диҳед
    ASLR дар барномаҳо бо парчами setuid ва муайян кардани тарҳбандии суроғаҳо дар китобхонаҳои боршуда тавассути коркарди тағирёбандаи муҳити LD_PREFER_MAP_32BIT_EXEC.

Тағйироте, ки мутобиқатро вайрон мекунанд:

  • totalorder (), totalordermag () ва функсияҳои шабеҳ барои дигар намудҳои нуқтаи шинокунанда ҳоло нишондодҳоро ҳамчун далелҳо барои бартараф кардани огоҳиҳо дар бораи табдил додани арзишҳо дар ҳолати қабул мекунанд НаН, мувофиқи тавсияҳои TS 18661-1, ки барои стандарти ояндаи C2X пешниҳод шудааст.
    Файлҳои иҷрошавандае, ки далелҳои нуқтаи шинокунандаро мустақиман интиқол медиҳанд, бидуни тағир кор карданро идома медиҳанд;

  • Функсияи stime, ки дер боз бекор карда шудааст, дигар барои бинарҳои ба glibc алоқаманд дастрас нест ва таърифи он аз time.h хориҷ карда шудааст. Барои муқаррар кардани вақти система, функсияи clock_settime -ро истифода баред. Дар оянда, мо нақша дорем, ки функсияи бекоршудаи ftime, инчунин файли сарлавҳаи sys/timeb.h -ро хориҷ кунем (ба ҷои ftime бояд gettimeofday ё clock_gettime истифода шавад);
  • Функсияи gettimeofday дигар маълумотро дар бораи минтақаи вақти тамоми система намегузаронад (ин хусусият дар рӯзҳои 4.2-BSD мувофиқ буд ва солҳои зиёд бекор карда шудааст). Аргументи 'tzp' акнун бояд ба нишоннамои нул интиқол дода шавад ва функсияи localtime() барои ба даст овардани маълумоти минтақаи вақт дар асоси вақти ҷорӣ истифода шавад. Занг задан ба gettimeofday бо аргументи ғайрисифр 'tzp' майдонҳои холии tz_minuteswest ва tz_dsttime дар сохтори минтақаи вақтро бармегардонад. Худи функсияи gettimeofday зери POSIX бекор карда шудааст (ба ҷои gettimeofday clock_gettime тавсия дода мешавад), аммо нақшаи нест кардани он аз glibc вуҷуд надорад;
  • settimeofday дигар гузариши ҳамзамон параметрҳоро барои муқаррар кардани вақт ва ҷуброни ислоҳи вақт дастгирӣ намекунад. Ҳангоми занг задан ба settimeofday, яке аз аргументҳо (вақт ё офсет) ҳоло бояд ба нул муқаррар карда шавад, вагарна занги функсия бо хатогии EINVAL ноком мешавад. Мисли gettimeofday, функсияи settimeofday дар POSIX бекор карда шудааст ва тавсия дода мешавад, ки бо функсияи clock_settime ё оилаи adjtime функсияҳо иваз карда шаванд;
  • Дастгирии меъмории SPARC ISA v7 қатъ карда шуд (дастгирии v8 ҳоло нигоҳ дошта мешавад, аммо танҳо барои протсессорҳое, ки дастурҳои CAS-ро дастгирӣ мекунанд, ба монанди протсессори LEON, на протсессори SuperSPARC).
  • Агар пайвастшавӣ дар "танбал", ки дар он пайвандкунанда аломатҳои функсияро то занги аввал ба ин функсия ҷустуҷӯ намекунад, функсияи dlopen ҳоло равандро маҷбур мекунад, ки қатъ шавад (қаблан ҳангоми нокомӣ NULL-ро баргардонд);
  • Барои ABI сахт шинокунандаи MIPS, ҳоло стеки иҷрошаванда истифода мешавад, ба шарте ки сохтмон истифодаи ядрои Linux 4.8+ тавассути параметри "-enable-kernel=4.8.0" (бо ядроҳои то 4.8, садамаҳо ба таври возеҳ маҳдуд накунанд) барои баъзе конфигуратсияҳои MIPS мушоҳида мешавад);
  • Пайвастшавӣ дар атрофи зангҳои системавӣ, ки бо коркарди вақт алоқаманданд, барои истифодаи занги системаи time64 интиқол дода шудаанд, агар мавҷуд бошад (дар системаҳои 32-битӣ, glibc аввал зангҳои нави системаро месанҷад, ки намуди 64-битии вақтро идора мекунанд ва агар вуҷуд надошта бошанд, меафтад. бозгашт ба зангҳои кӯҳна 32-бит).

Манбаъ: opennet.ru

Илова Эзоҳ