PicoLibc standart C kutubxonasining chiqarilishi 1.8.9

Cheklangan xotira va operativ xotiraga ega boʻlgan oʻrnatilgan qurilmalarda foydalanish uchun Keyt Packard (X.Org loyihasi rahbari) tomonidan ishlab chiqilgan PicoLibc 1.8.9 standart C kutubxonasining chiqarilishi chop etildi. Rivojlanish jarayonida kodning bir qismi Cygwin loyihasidan newlib kutubxonasidan va Atmel AVR mikrokontrollerlari uchun ishlab chiqilgan AVR Libc dan olingan. PicoLibc kodi BSD litsenziyasi ostida tarqatiladi. Kutubxona yig'ilishi ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k, PowerPC, LatticMico32, LoongArch va OpenRisc arxitekturalari uchun qo'llab-quvvatlanadi.

Dastlab, loyiha "newlib-nano" nomi ostida ishlab chiqilgan va Newlib-ning kichik operativ xotiraga ega o'rnatilgan qurilmalarda foydalanish muammoli bo'lgan ba'zi resurs talab qiluvchi funksiyalarini qayta ishlashga qaratilgan edi. Masalan, PicoLibc-da stdio funktsiyalari avrlibc kutubxonasining ixcham versiyasi bilan almashtiriladi. Kod, shuningdek, BSD litsenziyasi bilan ta'minlanmagan, o'rnatilgan qurilma yig'ilishida ishlatilmaydigan komponentlardan ham tozalanadi. Initsializatsiya kodining soddalashtirilgan versiyasi (crt0) qo'shildi va qo'ng'iroqlarni amalga oshirish "struct _reent" dan TLS (thread-local storage) mexanizmiga o'tkazildi. Meson asboblar to'plami yig'ish uchun ishlatiladi.

Yangi nashrda:

  • LoongArch, OpenRISC va LatticMico32 arxitekturalarini qoʻllab-quvvatlash qoʻshildi.
  • C11 standartida kiritilgan uchar.h sarlavha faylini amalga oshirish taklif etiladi.
  • Free() yoki realloc() dan keyin bo'shatilgan xotirani tozalash uchun nano-malloc-clear-free sozlamasi qo'shildi.
  • ARM64 tizimlarida clang multilib-dan foydalanish imkoniyati amalga oshirildi.
  • Uzluksiz integratsiya tizimlarida avtomatik yig'ish uchun yangi picolibc-ci-tools asboblar to'plamiga o'tish yakunlandi.
  • MIPS arxitekturasi "semihosting" texnologiyasini qo'llab-quvvatlaydi, bu esa tuzatuvchi yoki emulyator muhitida ishlaydigan kodni xost tizimining kiritish/chiqarish mexanizmlaridan foydalanish imkonini beradi.
  • Xtensa protsessorlari uchun picocrt va semihost qo'llab-quvvatlash qo'shildi.
  • CoreBoot bilan foydalanish uchun qo'shilgan sozlamalar.
  • C23 standartida kiritilgan memset_explicit() funktsiyasi qo'shildi.
  • Ishlarni o'zgartirish jadvallari Unicode spetsifikatsiyasi 15.1.0 ga yangilandi.
  • asnprintf() va vasnprintf() funksiyalari newlib kutubxonasidan ko'chirildi.
  • ARM tomonidan ishlab chiqilgan FVP (Fixed Virtual Platforms) emulyatori uchun qoʻshimcha qoʻllab-quvvatlash.
  • GCC kompilyatorining eski versiyalari uchun qo'shimcha yordam qo'shildi (4.4 dan eski).
  • iconv va locale ilovalari kodlashlar bilan ishlash uchun umumiy koddan foydalanadigan ixcham versiyalar bilan almashtirildi.

Manba: opennet.ru

a Izoh qo'shish