The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск системной библиотеки Glibc 2.28"
Отправлено opennews, 01-Авг-18 20:19 
После шести месяцев разработки подготовлен (https://sourceware.org/ml/libc-alpha/2018-08/msg00003.html) релиз системной библиотеки GNU C Library (http://ftp.gnu.org/gnu/glibc/) (glibc) 2.28 (http://sourceware.org/glibc/wiki/Release/2.28), которая полностью следует требованиям стандартов ISO C11 и POSIX.1-2008. В состав нового выпуска включены исправления от 58 разработчиков.

Из добавленных в Glibc 2.28 улучшений (http://sourceware.org/git/?p=glibc.git;a=blob_plain;f=NEWS;h...) можно отметить:


-  Обеспечена возможность сборки и запуска на системах GNU/Hurd  без применения дополнительных патчей;

-  Добавлена функция renameat2, предоставляющая средства для атомарной замены имён двух файлов (первый файл переименовывается во второй, а второй в первый).
Функция renameat2 отличается от renameat наличием дополнительного флагового поля. Если флаг не указан поведение renameat2 полностью аналогично renameat.
Из флагов поддерживается RENAME_NOREPLACE, при котором операция переименования не приводит к замене уже существующего файла. В случае, если ядро не поддерживает системный вызов  renameat2 и при вызове указаны аргументы, будет возвращена ошибка;

-  Добавлена функция statx, которая отличается от fstatat64 наличием дополнительного флагового аргумента. В случае, если ядро не поддерживает системный вызов statx, возвращающего расширенную информацию о файле, включая время создания файла и специфичные для файловых систем флаги, в glibc предоставляется базовая поддержка на основе функции fstatat64;


-  Добавлена поддержка потоков ISO C (threads.h), определённых в спецификации ISO/IEC 9899:2011). Для использования потоков в приложениях необходимо связывание с libpthread. В многопоточных программах можно использовать следующие функции:


-  thrd_current, thrd_equal, thrd_sleep, thrd_yield, thrd_create,
    thrd_detach, thrd_exit и thrd_join для управления потоками;

-  mtx_init, mtx_lock, mtx_timedlock, mtx_trylock, mtx_unlock, and
    mtx_destroy для управления мьютексами;
-  call_once для синхронизации вызова функций;
-  cnd_broadcast, cnd_destroy, cnd_init, cnd_signal, cnd_timedwait и
    cnd_wait для условных переменных;
-  tss_create, tss_delete, tss_get и tss_set для TLS (thread-local storage).

-  Данные локализации обновлены до свежей четвёртой редакции стандарта  ISO 14651 для полного соответствия с Unicode 9.0.0. Для многих локалей добавлены новые свойства "Collation", позволяющие задавать правила сортировки и методы сопоставления с учётом смысла символов. Включение данной информации привело к увеличению размера скомпилированных файлов с локалями;

-  При сборке обеспечена поддержка технологии Intel CET (Control-flow Enforcement Technology). При указании сборочной опции "--enable-cet" осуществляется включение для исполняемого кода защиты с использованием инструкций IBT (indirect
  branch tracking) и SHSTK (shadow stack), при этом сохраняется совместимость со всеми существующими исполняемыми файлами и библиотеками. Новый режим сборки доступен для архитектур i386, x86_64 и x32 при сборке с GCC 8 и наличии
  binutils 2.29;

-  Добавлена корректная поддержка символов ABSOLUTE (SHN_ABS), поддерживаемых  компоновщиком GNU linker;

-  Кодировки, информация о типах символов и таблицы транслитерации обновлены для поддержки спецификации Unicode 11.0.0;

-  Добавлены новые варианты математических функций, определённых в заголовочном файле math.h, которые округляют результат до типа narrower, определённого в спецификациях TS 18661-1:2014 и TS 18661-3:2015:


-  fadd, faddl, daddl и соответствующие им fMaddfN, fMaddfNx, fMxaddfN и
    fMxaddfNx;

-  fsub, fsubl, dsubl и соответствующие им fMsubfN, fMsubfNx, fMxsubfN and
    fMxsubfNx;
-  fmul, fmull, dmull и соответствующие им fMmulfN, fMmulfNx, fMxmulfN and
    fMxmulfNx;
-  fdiv, fdivl, ddivl и соответствующие им fMdivfN, fMdivfNx, fMxdivfN and
    fMxdivfNx;


-  Добавлена локаль для якутского языка Yakut (sah_RU), в которой обеспечена поддержка двух разных грамматических форм имён месяцев;

-  Для обработки интернационализированных доменных имён в функциях getaddrinfo и getnameinfo теперь используется система libidn2, при наличии соответствующей библиотеки. В случае отсутствия библиотеки libidn2 кодирование и декодирование интернационализированных имён не производится, даже при указании флагов AI_IDN и NI_IDN (указание не ASCII-символов приведёт к возврату ошибки). Ранее применяемые флаги AI_IDN_ALLOW_UNASSIGNED, AI_IDN_USE_STD3_ASCII_RULES,
  NI_IDN_ALLOW_UNASSIGNED, NI_IDN_USE_STD3_ASCII_RULES объявлены устаревшими и игнорируются;

-  При разборе динамических строковых токенов в  DT_RPATH, DT_RUNPATH, DT_NEEDED,  DT_AUXILIARY и DT_FILTER обеспечена поддержка всех выражений ELF gABI, включая конструкции '$ORIGIN$ORIGIN'. Для приложений с флагом SUID/GUID применение выражений ограничено и динамические строки интерпретируются как строковые литералы;

-  Прекращена поставка устаревших заголовочных файлов libio.h и _G_config.h, функциональность которых предоставляется в stdio.h;

-  Функции 'getc' и 'putc' теперь не определены в форме макросов, а реализованы через вызов (f)getc_unlocked и (f)putc_unlocked;

-  Во всех функциях stdio изменено поведение при обработке конца файла в случае добавления данных после открытия файла (для для чтения добавленных данных требуется вызов clearerr или функций вида  fseek и rewind);


-  Макросы 'major', 'minor' и 'makedev' теперь доступны только при подключении заголовочного файла sys/sysmacros.h (загрузки sys/types.h недостаточно);
-  Прекращена поддержка конфигураций tilegx*-*-linux-gnu;


URL: https://sourceware.org/ml/libc-alpha/2018-08/msg00003.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=49059

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру