GNU C Library

Скріншот програми:
GNU C Library
Дані програми:
Версія: 2.28 оновлений
Дата завантаження: 16 Aug 18
Розробник: Roland McGrath
Ліцензія: Безкоштовно
Популярність: 10

Rating: 1.0/5 (Total Votes: 1)

Бібліотека GNU C - вільне та вільне програмне забезпечення для бібліотек для будь-якого дистрибутива GNU / Linux. Він також відомий як Glibc і вимагається будь-якою UNIX-подібною комп'ютерною операційною системою. Бібліотека GNU C керує визначенням системних викликів, а також різними іншими основними функціями, такими як malloc, open, exit, printf та ін.


Використовується за умовчанням у всіх операційних системах на базі ядра Linux

Бібліотека GNU C встановлюється і використовується за умовчанням у всіх операційних системах на базі ядра Linux, розроблених з нуля, щоб виступати в якості основної бібліотеки C в GNU-системах та будь-якій іншій операційній системі, що працює на ядрі Linux.


Призначений для переносу

Glibc - це високоефективна бібліотека C, повністю написана на мові програмування C. Він розроблений таким чином, щоб бути портативним, інтернаціоналізувати та спроектований для підтримки всіх відповідних стандартів, включаючи POSIX.1-2008 та ISO C11.


Підтримує функції відомих варіантів UNIX

Хоча бібліотека GNU C має повністю інтернаціоналізований інтерфейс, вона намагається підтримувати функції відомих варіантів UNIX, таких як BSD та System V, завдяки вбудованим режимам сумісності.

Початок роботи з бібліотекою GNU C

Хоча бібліотека GNU C за замовчуванням встановлюється майже у всіх операційних системах GNU / Linux, ви також можете перевстановити її самостійно, використовуючи вихідний пакет, що розміщений на його веб-сайті або Softoware безкоштовно. Для початку завантажте та збережіть архів у домашньому каталозі.

Розпакуйте архів з утилітою менеджера архівів, відкрийте вікно термінала, перейдіть до того місця, де було вилучено архівні файли, запустіть & lsquo; ./конфігурувати & rsquo; команду для налаштування програми (див. команду & lsquo; ./ configure --help & rsquo; для різних параметрів оптимізації).

Потім запустіть & lsquo; зробити & rsquo; команду для компіляції бібліотеки, яка може бути встановлена ​​всередині системи, запустивши одну з & lsquo; зробити установку & rsquo; або & lsquo; sudo make install & rsquo; команди, залежно від вашого кореня або привілейованого користувача.

Що нового у цьому випуску:

  • https://sourceware.org/ml/libc-announce/2018/msg00000.html

Що нового у версії 2.27:

  • https://sourceware.org/ml/libc-announce/2018/msg00000.html

Що нового у версії:

  • Мінімальна версію ядра Linux, яку можна використовувати з цією версією бібліотеки GNU C, складає 3.2, за винятком i [4567] 86 та x86_64, де для ядра версії 2.6.32 або пізнішої версії Linux (архітектури, які вже потребували ядра) версії набагато пізніше 3.2, ці вимоги залишаються незмінними). Linux 3.2 або пізніші заголовки ядра потрібні для всіх архітектур.
  • Локалізація pap_AN була знищена. Довгий час це було застарілим. Він замінено на pap_AW & amp; pap_CW, обидва з яких вже давно включені в попередні релізи.
  • Функції readdir_r та readdir64_r застаріли. Замість цього рекомендується скористатися readdir і readdir64.
  • Тип "union wait" був вилучений. Це було застарілим на початку 1990-х і ніколи не було частиною POSIX. Код програми повинен використовувати тип int, а не "union wait".
  • Додано нову дію NSS, що полегшує велике розподілене адміністрування системи. Дія MERGE дозволяє об'єднати віддалені користувацькі магазини, такі як LDAP, у локальні магазини користувачів, наприклад / etc / groups, щоб забезпечити прості у використанні, оновлені та керовані набори об'єднаних облікових даних. Нову дію можна використовувати, налаштувавши її в /etc/nsswitch.conf: group: files [SUCCESS = merge] nis Реалізовано Stephen Gallagher (Red Hat).
  • Незареєстрована змінна __malloc_initialize_hook була вилучена з API.
  • Довгий параметр невикористаний localedef -old стиль був вилучений. Це не зробило нічого протягом більше 16 років. Сценарії, які використовують цей параметр, можуть безпечно його скинути.
  • nextupl, nextup, nextupf, nextdownl, nextdown та nextdownf додаються до libm. Вони визначені TS 18661 та IEEE754-2008. Функції nextup повертають наступне представлене значення у напрямку позитивної нескінченності, а функції nextdown повертають наступне представлене значення у напрямку негативної нескінченності. В даний час вони ввімкнені як розширення GNU.
  • Зміни, пов'язані з безпекою:
  • Необхідна копія стека в _nss_dns_getnetbyname_r була вилучена. Це може призвести до переповнення стека, коли getnetbyname було викликано з надмірно довгою іменем. (CVE-2016-3075)
  • Раніше getaddrinfo скопіював великі обсяги адресних даних у стек, навіть після того, як було застосовано виправлення для CVE-2013-4458, що може призвести до переповнення стека. Зараз getaddrinfo використовує купу розподілу. Про це повідомляє Майкл Петлан. (CVE-2016-3706)
  • Функція glob перенасичувалася буфером на основі стека, коли її викликали разом із прапором GLOB_ALTDIRFUNC, і виявлено довге ім'я файлу. Про це повідомляє Олександр Черепанов. (CVE-2016-1234)
  • Клієнт Sun RPC UDP може вичерпати весь доступний простір у стекі, коли він затоплений зробленими ICMP та UDP повідомленнями. Про це повідомляє Ольді Ернандес "alloca plugin for GCC. (CVE-2016-4429)
  • Код керування іменем сервера IPv6 у libresolv може призвести до витоку пам'яті для кожної створеної нитки, виконує пошук з невдалої назви та завершує роботу. З часом це може призвести до відмови в обслуговуванні через виснаження пам'яті. Про це повідомляє Маттіас Шиффер. (CVE-2016-5417)
  • Наступні помилки вирішені за допомогою цієї версії:
  • [1170] localedata: ne_NP: оновити файл визначення визначення мови Непалу [3629] manual: опис stpcpy в string.texi відноситься до MS-DOG замість MS-DOS. [6527] malloc: [powerpc] Вирівнювання Malloc недостатнє для PowerPC [6796] math: fdim () не встановлює errno при переповненні [10354] libc: posix_spawn слід використовувати vfork () у більшій кількості випадків, ніж на даний момент [11213] localedata: localedata: додати авторське право на відмову від відповідальності на файли локалей [12143] localedata: chr_US: новий регіон черокі [12450] localedata: sgs_LT: новий регіон [12676] localedata: ln_CD: новий мовний код [13237] localedata: LC_ADDRESS.country_name: оновити всі локації з останнім CLDR дані [13304] math: fma, fmaf, fmal створюють неправильні результати [14259] build: - localedir аргумент для налаштування ігнорується [14499] nptl: Чи викликає posix_spawn atfork handlers / use vfork? [14750] libc: умова стану в posix_spawn vfork використання проти обробників сигналів [14934] localedata: es_CL: неправильний перший тиждень chilean locale [15262] localedata: LC_MESSAGES.yesexpr / noexpr: непослідовне використання romantisation [15263] localedata: LC_MESSAGES.yesexpr / noexpr: непослідовне використання 1/0 і +/- [15264] localedata: LC_MESSAGES.yesstr / nostr: відсутній у багатьох локаціях [15368] nptl: raise () не асинхронно-сигнал-безпечний [15479] math: ceil, floor, round and trunc raise inexact [15578] localedata: kk_KZ: various updates [16003] localedata: pap_AN: старий регіон [16137] localedata: iw_IL: старий мовний код [16190] localedata: eo: new esperanto locale [16374] localedata: lv_LV: змінити символ валюти в LC_MONETARY до євро [16742] malloc: race condition: pthread_atfork () викликається до першого malloc () призводить до несподіваної блокування поведінки / тупикових ситуацій [16975] localedata: LC_MESSAGES.yesexpr / noexpr: переглянути капіталізацію у всіх локалах [16983] localedata: postal_fmt не дозволяє% l та% n модифікатори [17565] localedata : pt_PT: неправильний (робочий) тиждень початок [17899] математика: [powerpc] floorl повертає негативний нуль з FE_DOWNWARD [17950] build: Build не вдається з використанням -msse [18205] localedata: be_BY *: wrong first_weekday and first_workday [18433] libc : posix_spawn неправильно повертається після неможливості виконати [18453] localedata: charmaps / IBM875: неправильні коди [18712] string: bits / string2.h несумісний з -O2 -Werror = упакований -Wsystem-заголовки [18896] localedata: he_IL: покращення для валюти [18911] localedata: ro_RO: виправлення назви дня тижня для "вівторок" в даних румунською мовою [18960] мови: s390: _nl_locale_subfreeres використовує larl opcode на неправильному символі [19056] libc: Припинити readdir_r [19133] localedata: pt_ *: дні & amp; місяць має бути невеликим для португальської мови [19198] localedata: nl_NL: невеликі удосконалення для нідерландських локалей [19257] мережа: витік пам'яті за протоколом __res_vinit з серверами імен IPv6 (CVE-2016-5417) [19269] build: tst-audit4 і tst-audit10 з gcc-6 на неавтоматичному комп'ютері [19400] мовою: відсутня мова в "iso-639.def", тривіальне виправлення в описі [19431] malloc: вимикач між fflush, getdelim і fork [19505] libc: Невірний перевірка дійсності дескриптора файлів в posix_spawn_file_actions_add (open, close, dup2) [19509] dynamic link: dlsym, dlvsym не повідомляють про помилки через dlerror при використанні RTLD_NEXT [19512] locale: Stale `#ifndef HAVE_BUILTIN_EXPECT 'в` intl / {gettextP , loadinfo}.h] [19534] libc: execle, execlp може використовувати malloc [19568] localedata: * _CH: швейцарські локали мають непослідовний початок тижня [19573] мережа: res_nclose і __res_maybe_init не погоджуюсь з ініціалізацією імені сервера, порушуючи Hesiod [19575] localedata: Status з таблиці GB18030 [19581] localedata: sr_ * date_fmt рядок містить додаткову нову лінію [19583] рядок: SSSE3_Fast_Copy_Backward прапор повинен бути включений для сервера AMD Excavator [19592] math: [ldbl-128ibm] недопустимий режим без округлення за замовчуванням [19593 ] математика: [ldbl-128ibm] неправильна в режимах округлення без за замовчуванням [19594] math: [ldbl-128ibm] неправильний режим у режимі округлення без за замовчуванням [19595] math: [ldbl-128ibm] fmodl неправильний для результатів в субнормальній [19602] математика: [ldbl-128ibm] fmodl обробка рівних аргументів з низькою нульовою частиною неправильна [19603] математика: [ldbl-128ibm] remainderl, remquol неправильна обробка знаків в тестах рівності [19610] dynamic link: ldconfig - X видаляє застарілі символічні посилання [19613] libc: s390x (64 біт) розширення макросу WCOREDUMP та інші [19633] мови: strfmon_l застосовує глобальний формат числення для форматування чисел [19642]: витік пам'яті в getnameinfo [19648] libc: test-skeleton.c: Не встановлюйте RLIMIT_DATA [19653] libc: Потенціал для нульового покажчика вказівника (CWE-476) в glibc-2.22 [19654] math: [x86_64] Потрібна тестова інструкція для виправлення BZ # 19590 [19671] localedata: () в 'tst-fmon.c' & amp; 'tst-numeric.c' [19674] math: [ldbl-128ibm] powl неправильне переповнення обробки [19677] math: [ldbl-128ibm] remainderl тест рівності невірний для нульової низької частини [19678] math: [ldbl-128ibm] nextafterl , nexttowardl невірний знак нульового результату [19679] динамічний зв'язок: gcc-4.9.3 C ++ обробка виключень через незбалансоване стек [19726] locale: перетворення UCS4LE на INTERNAL за допомогою iconv () не оновлює покажчики та довжини у випадку помилки . [19727] locale: Перетворення з / в UTF-xx з iconv () не завжди повідомляє про помилки у значеннях сурогатів UTF-16.[19755] nscd: nscd відсутність твердження в gc [19758] динамічна посилання: типо в EXTRA_LD_ENVVARS для x86-64 [19759] libc: mempcpy не слід вставляти [19762] динамічна посилання: HAS_CPU_FEATURE / HAS_ARCH_FEATURE легко вловлювати [ 19765] libc: s390 потребує оптимізованого mempcpy [19779] glob: glob: переповнення буфера з GLOB_ALTDIRFUNC через невірне припущення (NAME) для термінів NAME_MAX (CVE-2016-1234) [19783] build: benchtests не підтримуються - hard-coded-path -in-tests [19787] мережа: відсутні та неправильні перевірки обрізання в getnameinfo [19790] math: [ldbl-128ibm] nearby непотрібні неправильні режими округлення без за замовчуванням [19791] network: невдача підтвердження в res_query.c з un-connectable ім'ям адреси сервера [19792] libc: MIPS: backtrace дає нескінченну відстань з makecontext [19822] math: libm.тому встановіть clobbers стару версію [19825] мережа: resolv: send_vc може повертати неініціалізовані дані у другій відповіддю getaddrinfo [19830] мережа: nss_dns: слід перевірити довжину RDATA по довжині буфера [19831] мережа: nss_dns: getaddrinfo повертає неініціалізовані дані, коли стикаються з A / AAAA записи невірного розміру [19837] nss: nss_db: повторення для деяких довгих рядків з більшим буфером [19848] math: powl (10, n) при n = -4, -5, -6, -7 є [19860] build: x86_64: помилки компіляції для tst-audit10 та tst-auditmod10b [19861] nptl: libpthread IFUNC resolver for fork може призвести до аварії [19862] мережа: resolv, nss_dns: видалити залишкову реєстрацію несподіваних типів записів [19865] мережа: виправлення твердження або витік пам'яті у _nss_dns_getcanonname_r [19868] мережа: nss_dns: netent код не пропускає записи, що не є PTR [ 19879] мережа: nss_dns: переповнення стека в getnetbyname implementa (CVE-2016-3075) [19881] рядок: покращення x86-64 memset [19907] рядок: помилкові тести memcpy [19916] dynamic link: S390: fprs / vrs не зберігаються / відновлюються під час розпізнавання символів [19925] libc : termios.h XCASE namespace [19928] рядок: memmove-vec-unaligned-erms.S llcc: clone (CLONE_VM) доступ до недійсної батьківської пам'яті [19963] localedata: en_IL: new locale [19989] [libc: limits.h NL_NMAX namespace [19931] stdio: витік пам'яті у vfprintf [19957] libc: clone ] stdio: stdio.h cuserid namespace [19994] мережа: getaddrinfo не відновлює прапорець RES_USE_INET6 у файлах gethosts [19996] locale: langinfo.h nl_langinfo_l namespace [20005] stdio: fflush на відкритому файлі з fmemopen скидає позицію на 0 [20010] мережа: getaddrinfo: переповнення стеків в хостовому перекладі (CVE-2016-3706) [20012] stdio: libio: fmemopen додавання режиму відмови [20014] stdio: stdio.h простір імен для попередніх потоків мережа POSIX [20017]: resolv: використовувати gmtime_r замість gmtime у p_secstodate [20023] libc: fcntl.h timespec простір імен [20024] math: [x86_64] векторизовані sincos перебирає мережу стека [20031]: nss_hesiod: переповнення купи в get_txt_records [20041] time: sys / time.h timespec namespace [20043] libc: unistd.h відсутній cuserid для UNIX98 і до [20044] libc: unistd .h відсутній pthread_atfork для UNIX98 [20051] libc: ttyslot у неправильному заголовку за неправильних умов [20054] libc: gethostname не заявлено для XPG4 [20055] libc: termios.h відсутній tcgetsid для XPG4 [20072] динамічний зв'язок: x86 init_cpu_features називається двічі у статичному виконуваному файлі [20073] libc: sys / stat.h fchmod namespace [20074] libc: stdlib.h rnrrn namespace [20076] libc: sys / stat .h відсутній S_IFSOCK, S_ISSOCK для XPG4 [20094] libc: stdlib.h не повинен оголосити grantpt, ptsname, unlockpt для XPG3 [20111] libc: struct sockaddr_storage не може бути агреговано-скопійованим [20112] мережею: sunrpc: stack (frame) overflow в Sun RPC clntudp_call (CVE-2016-4429) [20115] рядок: додаткове вирівнювання в memset-vec-unaligned-erms.S [20119] libc: неправильна маска для рівня рівня процесорів від CPUID [20139] динамічна посилання: верхня частина zmm вирівнюється до нуля, якщо Glibc побудований з AS, що не підтримує AVX512 [20151] math: [ldbl-128 / ldbl-128ibm] j0l, j1l, y0l, y1l повернути sNaN для аргументу sNaN [20153] math: [ldbl-128ibm] sqrtl (sNaN) повертає sNaN [20156] математика: [ldbl-128ibm] ceill, rintl тощо повернення sNaN для аргументу sNaN [20157] математика: [powerpc] fabsl (sNaN) неправильно піднімає "недійсний" [20160] математика: [p owerpc] ceil, rint та ін.return sNaN для входу sNaN [20178] libc: posix_spawn (p) не слід викликати вихід [20191] stdio: libio: vtables hardening [20195] string: виявлення FMA4 вимагає виконання CPUID з реєстром eax = 0x80000001 [20198] libc: quick_exit неправильно руйнує C + + 11 об'єктів потоку. [20205] math: [i386 / x86_64] nextafterl неправильні збільшувальні негативні субнорнали [20212] математика: acos (sNaN) повертає sNaN [20213] математика: asin (sNaN) повертає sNaN [20214] мережа: заголовок Linux синхронізація з linux / in6. h та ipv6.h знову.[20218] математика: [i386] asinhl (sNaN) повертає sNaN [20219] математика: [i386] atanhl (sNaN) повертає sNaN [20222] stdio: fopencookie: покажчики функціональності [20224] математика: [i386] cbrtl (sNaN) повертає sNaN [20225] математика: ldexp, scalbn, scalbln повернення sNaN для входу sNaN [20226] математика: [i386 / x86_64] expl, exp10l, expm1l повернути sNaN для входу sNaN [20227] math: [i386 / x86_64] logl (sNaN ) повертає sNaN [20228] математика: [i386 / x86_64] log10l (sNaN) повертає sNaN [20229] математика: [i386 / x86_64] log1pl (sNaN) повертає sNaN [20232] math: [ldbl-128] expm1l (sNaN) sNaN [20233] math: [i386 / x86_64] log2l (sNaN) повертає sNaN [20233] math: [ldbl-128ibm] expm1l (sNaN) повертає sNaN [20234] 20237] nss: nss_db: get * ent segfaults без попереднього набору * ent [20240] math: modf (sNaN) повертає sNaN [20248] libc: debug / tst-longjump_chk2 викликає printf від обробника сигналу [20250] math: frexp (sNaN ) повертає sNaN [20252] математика: atan2 (sNaN, qNaN) не піднімає "недійсний" [20255] ma th: [i386] fdim, fdimf return з перевищенням діапазону та точністю / подвійним округленням [20256] math: [i386 / x86_64] fdiml повертає sNaN для входу sNaN [20260] string: ../sysdeps/x86/bits/string.

    h: 1092: 3: помилка: нижній індекс масиву нижче граничних рівнів масиву [-Werror = array-bounds] [20262] nis: _nss_nis_initgroups_dyn завжди повертає NSS_STATUS_NOTFOUND [20263] nptl: надійний глушник mutex, якщо інший потік вимагає затримки блокування / linux) [20277] libc: $ dp не ініціалізується правильно в sysdeps / hppa / start.S [20284] malloc: malloc: Уникнення корумпованого арена викликає непотрібні відмови MMap [20296] math: [i386 / x86_64] scalbl повертає sNaN для sNaN, відсутні "недійсні" винятки [20314] nptl: make [4]: ​​*** [/usr/include/stdlib.h] Помилка 1 [20316] localedata: id_ID: Februari замість Pebruari [20327] рядок: POWER8 strcasecmp повертає неправильний результат [20347] math: Failure: test: j0_downward (0xap + 0) [20348] libc: FAIL: misc / tst-preadvwritev64 [20349] libc: 64-розрядне значення передається по-різному в p (readv, writev) {64} [20350] libc: Немає тесту для p (читайте, пишіть) 64 [20357] math: Невірний cos результат для 1.5174239687223976 [20384] build: Не запускайте тести libmvec-sincos-avx * на non avx m achines

Що нового у версії 2.23:

  • CVE-2015-7547: переповнення буфера на основі стека glibc getaddrinfo () - Виправлено гілку розробки для випуску glibc 2.23.

Що нового у версії 2.21:

  • Наступні помилки вирішені з даними релізами: 6652, 10672, 12674, 12847, 12926, 13862, 14132, 14138, 14171, 14498, 15215, 15378, 15884, 16009, 16418, 16191, 16469, 16576, 16617, 16618, 16619, 16657, 16740, 16857, 17192, 17266, 17273, 17344, 17363, 17370, 17371, 17411, 17460, 17475, 17485, 17501, 17506, 17508, 17522, 17555, 17570, 17571, 17572, 17573, 17574, 17582, 17583, 17584, 17585, 17583, 17584, 17585, 17589, 17584, 17585, 17589, 17594, 17601, 17608, 17616, 17625, 17630, 17633, 17634, 17635, 17647, 17653, 17657, 17658, 17664, 17665, 17668, 17682, 17702, 17717, 17719, 17722, 17723, 17724, 17725, 17732, 17733, 17744, 17745, 17746, 17747, 17748, 17775, 17777, 17780, 17781, 17782, 17791, 17793, 17796, 17797, 17801, 17803, 17806, 17834, 17844, 17848, 17868, 17869, 17870, 17885, 17892.
  • CVE-2015-1472 За певних умов wscanf може виділити надто мало пам'яті для сканованих арґументів і переповнення виділеного буфера. Реалізація зараз правильно обчислює необхідний розмір буфера при використанні malloc.
  • Новий алгоритм семафора був впроваджений у загальний код C для всіх машин. Попередні користувацькі збори реалізацій семафору були важко пояснити або забезпечити, щоб вони були в безпеці. Нова версія семафора підтримує машини з 64-розрядними або 32-розрядними атомними операціями. Новий алгоритм семафора використовується sem_init, sem_open, sem_post, sem_wait, sem_timedwait, sem_trywait та sem_getvalue.
  • Порт в Altera Nios II був внесений графікою Mentor.
  • Оптимізовані реалізації strcpy, stpcpy, strncpy, stpncpy, strcmp та strncmp для powerpc64 / powerpc64le. Реалізовано компанією Adhemerval Zanella (IBM).
  • Додана підтримка блокування шифрування TSX pthread mutex на powerpc32, powerpc64 та powerpc64le. Це може покращити масштабування блоків існуючих програм у HTM-системах. Код блокування елій тільки увімкнено за допомогою --enable-lock-elision = yes. Крім того, реалізація елізи блокування TSX для powerpc виведе транзакцію транзакції для кожного системного сервера, щоб уникнути побічних ефектів, видимих ​​за межами транзакцій.
  • Оптимізовані реалізації strcpy, stpcpy, strchrnul та strrchr для AArch64. Надано компанією ARM Ltd.
  • функції i386 memcpy, оптимізовані за допомогою незміреного завантаження / зберігання SSE2.
  • CVE-2104-7817 Функція wordexp може ігнорувати прапорець WRDE_NOCMD під певними умовами введення, що призводить до виконання оболонки для заміни команд, коли applicaiton не запитує його. Реалізація зараз перевіряє WRDE_NOCMD безпосередньо перед виконанням оболонки та повертає помилку WRDE_CMDSUB, як очікувалося.
  • Функції printf в стилі CVE-2012-3406 можуть перебувати в переповненні стеку при обробці рядків формату з великою кількістю специфікаторів формату.
  • CVE-2014-9402 Реалізація nss_dns getnetbyname може запуститись у нескінченному циклі, якщо відповідь DNS містила запис PTR неочікуваного формату.
  • Мінімальна версія GCC, яку можна використовувати для створення цієї версії бібліотеки GNU C, є GCC 4.6. Більш старі версії GCC і компілятори, що не є GNU, все ще можуть бути використані для компіляції програм із використанням бібліотеки GNU C.
  • Бібліотека GNU C тепер будується за допомогою -Werror за замовчуванням. Це може бути вимкнено шляхом налаштування за допомогою --disable-werror.
  • Нові місця: tu_IN, bh_IN, raj_IN, ce_RU.
  • Застаріла функція sigvec була вилучена. Це був оригінальний інтерфейс 4.2BSD, який надихнув інтерфейс sigaction POSIX.1, які програми використовували замість приблизно 25 років. Звичайно, сумісність ABI для старих файлів, що використовують sigvec, залишається незмінною.
  • Об'єднав gettext 0.19.3 у внутрішній підкаталог intl. Це виправляє будівлю за допомогою нових версій бізона.
  • Підтримка розширень ABI MIPS o32 FPXX, FP64A та FP64. Для оригінального програмного забезпечення MIPS o32 ABI необхідний FPU, де реєстри подвійної точності накладають два послідовних одноточних регістри. MIPS32R2 представив новий режим FPU (FR = 1), де реєстри подвійного точності розширюють відповідні одноточні регістри, що несумісні з ABI з жорстким поплавом O32. Для MIPS SIMD ASE і архітектури MIPSR6 потрібно використовувати FR = 1, що робить потрібний перехід. Нові розширення OBI ABI дозволяють користувачам мігрувати з плином часу з вихідного O32 ABI до оновленого ABI FP64 O32. Для цього динамічний компонувальник тепер відстежує ABI будь-якого завантаженого об'єкта та перевіряє, що нові об'єкти є сумісними. Режим переходів також запитується, як потрібно, і непідтримувані об'єкти будуть відхилені. Перевірки ABI включають як м'які, так і жорсткі поплавкові ABI для o32, n32 та n64.

GNU C Library

Коментар не знайдено
додати коментар
Включіть картинки!