The OpenNET Project / Index page

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

Выпуск системной библиотеки Glibc 2.36

02.08.2022 12:41

После шести месяцев разработки опубликован релиз системной библиотеки GNU C Library (glibc) 2.36, которая полностью следует требованиям стандартов ISO C11 и POSIX.1-2017. В состав нового выпуска включены исправления от 59 разработчиков.

Из реализованных в Glibc 2.36 улучшений можно отметить:

  • Добавлена поддержка нового формата относительных перемещений адресов DT_RELR (relative relocation), позволяющего сократить размер относительных перемещений в разделяемых объектах и исполняемых файлах, скомпонованных в режиме с PIE (Position-independent executables). Для использования поля DT_RELR в ELF-файлах необходима поддержка опции "-z pack-relative-relocs" в компоновщике, появившаяся в выпуске набора binutils 2.38.
  • Для платформы Linux реализованы функции pidfd_open, pidfd_getfd и pidfd_send_signal, предоставляющие доступ к функциональности pidfd, помогающей обрабатывать ситуации с повторным использованием PID для более точной идентификации процессов, обращающихся к отслеживаемым файлам (pidfd связывается с конкретным процессом и не меняется, в то время как PID может быть привязан к другому процессу после завершения текущего процесса, ассоциированного с этим PID).
  • Для платформы Linux добавлена функция process_madvise(), позволяющая одному процессу выполнить системный вызов madvise() от имени другого процесса, идентифицируя целевой процесс при помощи pidfd. Через madvise() можно информировать ядро об особенностях работы с памятью для оптимизации управления памятью процесса, например, на основе переданной информации ядро может инициировать высвобождение дополнительной свободной памяти. Вызов madvise() другим процессом может потребоваться в ситуации, когда информация, необходимая для оптимизации, неизвестна текущему процессу, а координируется отдельным фоновым управляющим процессом, который самостоятельно может инициировать изъятие у процессов неиспользуемой памяти.
  • Для платформы Linux добавлена функция process_mrelease(), позволяющая ускорить освобождение памяти процесса, завершающего своё выполнение. В обычных условиях освобождение ресурсов и завершение процесса выполняется не мгновенно и по разным причинам может задерживаться, что мешает работе функционирующих в пространстве пользователя систем раннего реагирования на нехватку памяти, таких как oomd (предоставляется в systemd). При помощи вызова process_mrelease подобные системы могут более предсказуемо инициировать возвращение памяти от принудительно завершаемых процессов.
  • Во встроенную реализацию DNS-резолвера добавлена поддержка опции "no-aaaa", позволяющей для упрощения диагностики проблем отключить отправку DNS-запросов записей AAAA (определение адреса IPv6 по имени хоста), в том числе при выполнении NSS-функций, подобных getaddrinfo(). Опция не влияет на обработку привязок IPv6-адресов, определённых в /etc/hosts и вызовы getaddrinfo() с флагом AI_PASSIVE.
  • Для платформы Linux добавлены функции fsopen, fsmount, move_mount, fsconfig, fspick, open_tree и mount_setattr, предоставляющие доступ к новому API ядра для управления монтированием файловых систем с учётом пространств имён точек монтирования (mount namespaces). Предложенные функции позволяют раздельно обработать разные стадии монтирования (обработать суперблок, получить информацию об ФС, примонтировать, прикрепить к точке монтирования), которые ранее выполнялись при помощи общей функции mount(). Раздельные функции дают возможность выполнять более сложные сценарии монтирования и отдельно выполнять такие операции, как перенастройка суперблока, включение опций, изменение точки монтирования и перенос в другое пространство имён. Кроме того, раздельная обработка позволяет точно определять причины вывода кодов ошибок и задавать несколько источников для многослойных ФС, таких как overlayfs.
  • В localedef реализована поддержка обработки файлов с определениями локалей, поставляемых в кодировке UTF-8 вместо ASCII.
  • Добавлены функции для преобразования многобайтовых кодировок mbrtoc8 и c8rtomb, соответствующие спецификациям ISO C2X N2653 и C++20 P0482R6.
  • Добавлена поддержка типа char8_t, определённого в черновике стандарта ISO C2X N2653.
  • Добавлены функции arc4random, arc4random_buf и arc4random_uniform, предоставляющие обвязки над системным вызовом getrandom и интерфейсом /dev/urandom, возвращающие псевдослучайные числа высокого качества.
  • При работе на платформе Linux реализована поддержка архитектуры набора команд LoongArch, применяемой в процессорах Loongson 3 5000 и реализующей новый RISC ISA, похожий на MIPS и RISC-V. В текущем виде доступна только поддержка 64-разрядного варианта LoongArch (LA64). Для работы требуется наличие как минимум версий binutils 2.38, GCC 12 и ядра Linux 5.19.
  • Объявлен устаревшим и будет удалён в следующем выпуске механизм prelink, а также связанные с ним переменные окружения LD_TRACE_PRELINKING и LD_USE_LOAD_BIAS и возможности компоновщика.
  • Удалён код для проверки версии ядра Linux и обработки переменной окружения LD_ASSUME_KERNEL. Минимально поддерживаемая при сборке Glibc версия ядра определяется через ELF-поле NT_GNU_ABI_TAG.
  • На платформе Linux прекращена поддержка переменной окружения LD_LIBRARY_VERSION.


  1. Главная ссылка к новости (https://sourceware.org/piperma...)
  2. OpenNews: Выпуск системной библиотеки Glibc 2.35
  3. OpenNews: Уязвимость в Glibc, позволяющая вызвать крах чужого процесса
  4. OpenNews: Проект Glibc отменил обязательную передачу прав на код Фонду СПО
  5. OpenNews: Выпуск стандартной Си-библиотеки PicoLibc 1.5
  6. OpenNews: Выпуск стандартных Си-библиотек Musl 1.2.3 и PicoLibc 1.7.6
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57585-glibc
Ключевые слова: glibc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (73) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, АнонимкаРастуимка (?), 13:50, 02/08/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –9 +/
     

     ....ответы скрыты (9)

  • 1.5, швондер (?), 14:04, 02/08/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +6 +/
     

  • 1.12, ryoken (ok), 14:16, 02/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Поправьте если ошибаюсь. Это ведь второй по важности посля ядра компонент..?
     
     
  • 2.14, Какаянахренразница (ok), 14:41, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Да, всё именно так... А что?
     
     
  • 3.25, ryoken (ok), 16:29, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, всё именно так... А что?

    Ничего такого, просто для себя уяснить :).

     
  • 2.15, Аноним (16), 15:00, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    По времени сборки в LFS Glibc собирается в два дольше ядра. Да еще и два независимых раза.  
     
     
  • 3.18, Аноним (17), 15:05, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Я бы не сказал, что в Gentoo GLibc собирается в два раза дольше ядра.
     
     
  • 4.20, Аноним (16), 15:08, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +9 +/
    Так и не говори.
     
  • 3.28, fghj (?), 17:41, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Может в случае сборки ядра используется многоядерность,
    а для glibc используется по какой-то причине "make" без флага "-j$(nproc)"?
     
  • 3.30, asdasd (?), 18:32, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Попахивает чушью. Даже bzImage и то медленнее собирается, а если modules добавить так и подавно.
     
     
  • 4.31, Аноним (31), 19:38, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Нет не чушь. При сборке ядро эффективно паралелится, это я давно заметил. В Linux From Scratch GCC и Glibc долго собираются.
     
     
  • 5.41, P (?), 20:32, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    GCC везде не быстро собирается
     
     
  • 6.45, Аноним (45), 21:45, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    В этом плане Tiny C Compiler (tcc) хорош - меньше секунды на его сборку уходит.
     
     
  • 7.47, Аноньчик (?), 22:34, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А дальше им можно что-нибудь системного собрать?
     
     
  • 8.60, Аноним (60), 01:38, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, системный gcc ... текст свёрнут, показать
     
  • 8.66, Аноним (66), 11:12, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Для системного я сам не пробовал Думаю, что всё не так просто Патченая версия ... текст свёрнут, показать
     
  • 6.72, Аноним (-), 12:55, 04/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > GCC везде не быстро собирается

    Минут 10-15 на старом ноуте. Если собирать с поддержкой лишь С/C++ и x86/amd64.
    https://cgit.freebsd.org/ports/tree/lang/gcc10/Makefile

     
     
  • 7.73, Анончик (?), 14:57, 04/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Минут 10-15 на старом ноуте

    А сколько старому ноуту лет? Какой процессор, память?

     
     
  • 8.74, Аноним (-), 15:03, 04/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    11 лет, i5 M самый первый , 8GB ОЗУ ... текст свёрнут, показать
     
  • 3.61, Анонимий Анонимович Ананас (?), 02:07, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Glibc собирается в два дольше ядра

    Не поленился и проверил.
    Внезапно ты почти прав:
    # time emerge -1 =sys-libs/glibc-2.35-r8
    real    2m21.640s
    # Linux kernel 5.18.14-gentoo
    real    1m23.490s

     
     
  • 4.63, Аноним (63), 09:07, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Странно что кто-то вообще анонимам в комментариях. Анонимы самый непогрешимые люди в природе.
     
  • 4.71, Ан (??), 12:35, 04/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    С нуля компилируй, а не из кэша.
     
  • 2.24, Аноним (24), 15:58, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Это ведь второй по важности

    С учётом того, что вся приложуха завязана на API Glibc, я бы сказал, первый.
    И при этом последние годы API Glibc яростно курочат так, что куча "старых" программ постоянно отсеивается.

     
     
  • 3.32, Аноним (31), 19:40, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Прогрессивно же! Прогресс не стоит на месте. Я вот жду когда мой роолинговый дистр на свежый GNU libc перейдёт.
     

  • 1.19, Страдивариус (?), 15:06, 02/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ничё се. pidfd родился ещё в 2019-м. И только-только дополз до glibc...
     
     
  • 2.21, Аноним (16), 15:09, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Стабильно зато.  
     
  • 2.23, Аноним (23), 15:39, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Statx лет 5 добавяли. Разрабы glibc всегда тормозили.
     
     
  • 3.37, Аноним (31), 19:42, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сам ты тормоз. Это назвается ответственностью.
     
     
  • 4.42, Аноним (23), 21:05, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    По этой причине в DE всё это время не было данной исключительно необходимой фичи с временем создания файла. И так со всем. А поддержки xattrs я так и не дождался. Вроде, как раз 5 дет назад в glibc добавили? Что там было раньше? Но это второстепенно, спасибо, хоть в современных DE при перемещении файла расширенные атрибуты сохраняются (теперь).
     
     
  • 5.57, warlock66613 (ok), 00:01, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > исключительно необходимой фичи с временем создания файла

    Исключительно необходимой фичи с несуществующим временем.

     

  • 1.26, Аноним (26), 17:01, 02/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Убрали поддержку того, убрали поддержку этого.

    В 2001 году я помню, как бывалые линуксоиды говорили, что GNU/Linux поддерживает всё и всегда, и никогда не дропает. (Только с поддержкой железа иногда проблемы, нужно самому свой драйвер писать, как настоящие мужчины.)

    И где? Дропнутая фича на дропнутой фиче.

     
     
  • 2.27, Аноним (27), 17:17, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +13 +/
    разработчики glibc: добавляют 18 новых фич и дропают поддержку 2 переменных окружения
    опеннет: СПЛОШНЫЕ ДРОПНУТЫЕ ФИЧИ

    ох лол.

     
     
  • 3.34, Аноним (34), 19:41, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Обычный старческий максимализм.
     
  • 3.39, Аноним (39), 20:22, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, подобавляли всякий мусор из черновиков, которые еще десять раз переписать могут и которыми никто не пользуется.
    И дропнули что работало годами.
     
  • 2.36, аНОНИМ (?), 19:41, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это про ядро говорили ващето. Наздоровье юзай древние софты с древней глибсью на новых ядрах.
     
     
  • 3.44, Аноним (44), 21:20, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Из ядра-то ничего не удаляют, да.
     
     
  • 4.62, llolik (ok), 08:47, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну, вообще, user-space стараются держать максимально стабильным. То, что там в kernel-space (про который и сказано stable API is nonsence) что-то меняется, user-space-а как правило не касается от слова совсем (разве что флаги и новые API добавляют). Линус как-то говорил, что по этому пункту правило строгое и от него отступают только в крайних безвыходных случаях.
     

  • 1.29, kusb (?), 18:26, 02/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эх, а ведь может благодаря им у Linux 2%. Стабильное abi.
     
     
  • 2.33, Аноним (34), 19:41, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Линукс не устраивал гонки за десктопами. Линукс десктопы нужны исключительно как единая экосистема с линукс серверами не больше.  
     
     
  • 3.56, kusb (?), 23:57, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Линукс не устраивал гонки за десктопами. Линукс десктопы нужны исключительно как единая
    > экосистема с линукс серверами не больше.

    Спорно. И Linux не единая сущность. Сомневаюсь что многим из GNU этого не нужно. С другой стороны это политически полезно - в такой экосистеме несвободное ПО будет жить плохо.

     
     
  • 4.64, Аноним (63), 09:10, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы десктопы были такой целью их бы делали целенаправленно, а не создавали пучок дистрибутиводелов, которые делали кто во что горазд.  Да даже результат известен 100% из топ 500 суперкомпьютеров.  А не десктопов.
     
     
  • 5.75, kusb (?), 19:09, 04/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Если бы десктопы были такой целью их бы делали целенаправленно, а не
    > создавали пучок дистрибутиводелов, которые делали кто во что горазд.  Да
    > даже результат известен 100% из топ 500 суперкомпьютеров.  А не
    > десктопов.

    Ты опять говоришь, будто Вселенский Linux Комитет во всех смыслах существует. Linux просто оказался в кассу для суперкомпьютеров, там не так важны были недостатки системы и ПО для него. Ну и да - наверняка протаскивали. Но это не совсем согласованная работа. И люди которые хотели протащить Linux на десктоп тоже существовали и существуют.

    (Интересно, а какая доля Linux по специализированным ну ...тоже десктопам типа рабочих станций. Там разные интересные вещи бывают.)

     
  • 2.35, Аноним (31), 19:41, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А чо так толсто то?
     
     
  • 3.55, kusb (?), 23:55, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > А чо так толсто то?

    Режим безумия включён, но я пошёл в атаку?
    И о чём ты говоришь?

     
  • 2.48, Аноньчик (?), 22:36, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Внедряют нестабильное, ожидаем понижение до 1%.
     

  • 1.38, anonima (?), 20:22, 02/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Отличная библиотека отличного языка. Все радуются.
     
  • 1.40, Аноним (-), 20:24, 02/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Поскорее бы уже все стали muslимами, сколько можно тащить это легаси
     
     
  • 2.43, Аноним (23), 21:13, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так может сказать только человек, совершенно не разбирающийся в вопросе, от слова "совсем".
     
     
  • 3.49, Аноньчик (?), 22:38, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Просвяти, что кроме wвабодки мешает.
     
     
  • 4.50, Аноним (23), 22:51, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Просвяти, что кроме wвабодки мешает.

    Низкое качество кода и не универсальность (в более широком смысле, чем можно подумать).

     
     
  • 5.51, Аноньчик (?), 23:06, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Примеры?
     
     
  • 6.53, Аноним (23), 23:17, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Примеры?

    https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=musl

    Да и открой код, они нажимают на то, что можно проще, но сложность глибц не на пустом месте возникла. Дальше докера пускать нельзя.

    https://musl.libc.org/releases.html

     
     
  • 7.58, Аноньчик (?), 00:11, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    CVE 8:169 в пользу musl. Ну да, не на пустом, как и всего гнутого софта.

    >докера

    Всё понятно.

     
     
  • 8.59, Аноним (23), 00:36, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Тебя не смущает, что за ошибки и где они обнаруживаются Кстати, 169 -- это, оче... текст свёрнут, показать
     
     
  • 9.67, Аноньчик (?), 12:44, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Получается, чем больше CVE, тем лучше Мне такая логика непонятна ... текст свёрнут, показать
     
  • 5.52, Аноним (39), 23:14, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ахаха, а вот в жлибе качество кода просто ух!
     
     
  • 6.54, Аноним (23), 23:18, 02/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Нормальный там код. То, что он нечитаемый -- это проблема, но, он достаточно выверенный, и при этом протестированный.
     
     
  • 7.68, Аноньчик (?), 12:45, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >нормальный
    >нечитаемый

    Выбери что-то одно. Ну или критерий "нормальности".

     
  • 4.69, n00by (ok), 14:26, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Руткиты с LD_PRELOAD отвалятся.
     
     
  • 5.70, Аноньчик (?), 14:46, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ахаха, так и знал.
     

  • 1.46, Анонн (?), 21:56, 02/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Еще целую кучу регрессий поправили... В общем им явно есть куда расти.
     
     
  • 2.65, Аноним (65), 10:06, 03/08/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И тут раст приплёл, ну ты посмотри на него!
     

  • 1.76, Аноним (76), 20:22, 11/08/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Спасибо, скачал)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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