Izdan je standardni C knjižnica PicoLibc 1.8.9

Objavljen je izdanak standardne C knjižnice PicoLibc 1.8.9, koju razvija Keith Packard, vođa projekta X.Org, za upotrebu na ugrađenim uređajima s ograničenim kapacitetom trajne memorije i radne memorije. Tijekom razvoja dio koda preuzet je iz knjižnice newlib projekta Cygwin i AVR Libc, koja je razvijena za mikrokontrolere Atmel AVR. Kod PicoLibc distribuira se pod BSD licencom. Podržana je izgradnja knjižnice za arhitekture ARM (32-bit), Aarch64, i386, RISC-V, x86_64, m68k, PowerPC, LatticMico32, LoongArch i OpenRisc.

Izvorno je projekt razvijan pod imenom 'newlib-nano' i bio je usmjeren na preradu nekih resursno zahtjevnih funkcija Newlib, koje je bilo teško koristiti na ugrađenim uređajima s malim RAM-om. Na primjer, u PicoLibc funkcije stdio zamijenjene su kompaktnošću iz knjižnice avrlibc. Kod je također očišćen od neiskorištenih komponenti koje nisu uključene pod BSD licencom. Dodana je pojednostavljena verzija koda inicijalizacije (crt0), a implementacija poziva prebačena je s 'struct _reent' na mehanizam TLS (thread-local storage). Za izgradnju je korišten alat Meson.

U novom izdanju:

  • Dodana podrška za arhitekture LoongArch, OpenRISC i LatticMico32.
  • Predložena je implementacija zaglavlja uchar.h, koje je uvedeno u standard C11.
  • Dodana je postavka nano-malloc-clear-freed za čišćenje memorije oslobođene nakon izvođenja free() ili realloc().
  • Implementirana je mogućnost korištenja clang multilib na ARM64 sustavima.
  • Obavljen je prijelaz na nove alate picolibc-ci-tools za automatsku izgradnju u sustavima kontinuirane integracije.
  • Za arhitekturu MIPS implementirana je podrška za tehnologiju 'semihosting', koja omogućava kodu, koji se izvršava u okruženju ispravljača ili emulatora, korištenje mehanizama ulaza/izlaza domaćinskog sustava.
  • Za Xtensa procesore dodana je podrška za picocrt i semihost.
  • Dodane su postavke za korištenje s CoreBoot.
  • Dodana je funkcija memset_explicit(), koja se pojavila u standardu C23.
  • Tablice za prevođenje registratora simbola ažurirane su na specifikaciju Unicode 15.1.0.
  • Iz knjižnice newlib prenesene su funkcije asnprintf() i vasnprintf().
  • Dodana je podrška za emulator FVP (Fixed Virtual Platforms), koji razvija ARM.
  • Dodana je podrška za starije verzije kompajlera GCC (starije od 4.4).
  • Implementacije iconv i locale zamijenjene su kompaktnijim varijantama koje koriste zajednički kod za rad s kodiranjima.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster