Выпуск стандартной Си-библиотеки PicoLibc 1.8.6

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 3252
Зарегистрирован: 20.08.2022

#

Выпуск стандартной Си-библиотеки PicoLibc 1.8.6
Дата публикации:Mon, 22 Jan 2024 09:17:56 +0300




Опубликован релиз стандартной Си-библиотеки PicoLibc 1.8.6, развиваемой Китом Паккардом (Keith Packard, лидер проекта X.Org) для применения на встраиваемых устройствах с ограниченным размером постоянного хранилища и оперативной памяти. При разработке часть кода заимствована из библиотеки newlib от проекта Сygwin и AVR Libc, развивавшейся для микроконтроллеров Atmel AVR. Код PicoLibc распространяется под лицензией BSD. Поддерживается сборка библиотеки для архитектур ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k и PowerPC.



Изначально проект развивался под именем "newlib-nano" и был нацелен на переработку некоторых ресурсоёмких функций Newlib, которые было проблематично использовать на встраиваемых устройствах с небольшим ОЗУ. Например, в PicoLibc функции stdio заменены на компактный вариант из библиотеки avrlibc. Код также вычищен от неиспользуемых в сборке для встраиваемых устройств компонентов, поставляемых не под лицензией BSD. Добавлен упрощённый вариант кода инициализации (crt0), а реализация вызовов переведена с 'struct _reent' на механизм TLS (thread-local storage). Для сборки задействован инструментарий Meson.



В новом выпуске:
  • Перенесены изменения из Newlib 4.4.0, такие как поддержка типа "long double" на архитектурах i386, RISC-V, Aarch64 и x86_64, поддержка расширений RISC-V Zfinx/Zdinx, возможность использования масок при вставке каталогов, реализация порта для процессоров Xtensa, выделение обработчиков printf в отдельные файлы для сокращения размера при компоновке.

    В picolibc.ld добавлены символы "__eh_*" для LLVM libunwind.
    Включена тестовая поддержка 32-разрядных систем SPARC.

    Обеспечена поддержка целевых платформ с нетипичными типами с плавающей запятой, которые теперь отражаются в 32-, 64-, 80- и 128-разрядные типы в коде picolibc.
    Добавлена поддержка RISC-архитектуры SuperH.
    Улучшена трассировка стека при отладке кода исключений на системах RISC-V.
    Добавлена опция "-Dfast-bufio=true" для повышения эффективности чтения и записи при использовании bufio.

    Проведена чистка публичных inline-функций для совместного использования семантики gnu_inline.
    Большинство функций fenv для повышения производительности переведены на использование inline-функций (gnu_inline) вместо обычных.

    Создана альтернативная реализация ctype, в которой не используется массив ctype и производится прямое сравнение значений.


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=60476

Жизнь за Нер'зула!

Ответить