Daidaitaccen ɗakin karatu na C PicoLibc 1.1 akwai

Keith Packard, mai haɓaka Debian mai aiki, jagoran aikin X.Org kuma mahaliccin haɓakar X da yawa ciki har da XRender, XComposite da XRandR, gabatar saki sabon daidaitaccen ɗakin karatu na C PicoLibc 1.1, wanda aka haɓaka don amfani akan na'urorin da aka haɗa tare da iyakataccen ma'auni na dindindin da RAM. Lokacin haɓakawa, an aro wani ɓangare na lambar daga ɗakin karatu newlib daga aikin Cygwin da AVR Libc, wanda aka haɓaka don microcontrollers Atmel AVR. PicoLibc code rarraba ta ƙarƙashin lasisin BSD. Ana tallafawa taron ɗakin karatu don ARM (32-bit), i386, RISC-V, x86_64 da gine-ginen PowerPC.

Keith Packard ya fara haɓakawa bayan ya kasa samun ingantaccen zaɓi na Libc wanda za'a iya amfani dashi akan na'urorin da aka saka tare da ƙaramin RAM. Tun shekarar da ta gabata ake ci gaba da gudanar da aikin. A mataki na farko, aikin wani nau'i ne na newlib, ayyukan stdio wanda aka maye gurbinsu da ƙaramin juzu'i daga avrlibc (stdio in newlib bai dace da yawan amfanin sa ba). Tun da aikin Keith na yanzu ya ƙunshi aiki mai gudana tare da gine-ginen RISC-V da haɓaka kayan aiki don na'urorin da aka haɗa, kwanan nan ya sake nazarin yanayin aiwatar da libc kuma ya kammala cewa tare da ɗan ƙaramin tweaking, haɗuwa da newlib da avrlibc na iya zama kyakkyawan manufa ta gaba ɗaya. mafita. Da farko, aikin ya ci gaba a ƙarƙashin sunan "newlib-nano", amma don guje wa rudani tare da ɗakin karatu na Newlib an sake masa suna PicoLibc.

A cikin nau'i na yanzu, Picolibc ya riga ya yi aiki don cire duk lambar da ba a ba da ita ba a ƙarƙashin lasisin BSD (ba a yi amfani da wannan lambar ba lokacin da ake gina na'urorin da aka saka), wanda ya sauƙaƙa da yanayin tare da lasisi don aikin. An motsa aiwatar da rafukan gida daga 'struct _reent' zuwa tsarin TLS (zaren-gidan ajiya). Karamin sigar stdio, aro daga lambar laburare na avrlibc, ana kunna ta ta tsohuwa (ana sake rubuta abubuwan da aka haɗa ta musamman na ATmel a cikin C). An yi amfani da kayan aikin Meson don taro, wanda ya ba da damar kada a ɗaure shi da rubutun taro na newlib kuma don sauƙaƙa canja wurin canje-canje daga newlib. An ƙara sauƙaƙan sigar lambar ƙaddamarwa (crt0), haɗe zuwa fayil ɗin da za a iya aiwatarwa kuma an aiwatar da shi kafin a canja wurin sarrafawa zuwa babban aikin().

A cikin Picolibc 1.1:

  • Ƙara ɗakin karatu na taimako don tallafawa fasaha"semihosting"yana ba da damar lambar da ke gudana a cikin mahallin lalata ko kwaikwayi don amfani da tsarin I/O na tsarin runduna;
  • Don tsarin da ke goyan bayan buɗaɗɗen, kusa, karantawa, da rubuta kiran tsarin, tinystdio yana ƙara daidaitattun POSIX stdio I / O musaya, ciki har da ayyukan fopen da fdopen, da kuma ɗaure stdin / stdout / stderr zuwa POSIX-bayyanar da bayanin fayil;
  • Canje-canje na kwanan nan daga sabon codebase an aiwatar dashi. Ciki har da ƙarin stubs libm don fev.h, wanda za'a iya amfani dashi a kan tsarin ba tare da goyon bayan iyo ba;
  • Ƙara misali na gina aikace-aikacen "Hello duniya" tare da picolibc don tsarin ARM da RISC-V;
  • An cire newlib, libm da kundayen adireshi na mathfp, wanda ya ƙunshi lambar gwajin da ba a yi amfani da ita ba.

source: budenet.ru

Add a comment