Maktaba ya kawaida ya C PicoLibc 1.1 inapatikana

Keith Packard, msanidi programu wa Debian, kiongozi wa mradi wa X.Org na muundaji wa viendelezi vingi vya X, ikiwa ni pamoja na XRender, XComposite na XRandR, kuletwa kutolewa kwa maktaba mpya ya kawaida ya C PicoLibc 1.1, iliyotengenezwa kwa matumizi kwenye vifaa vilivyopachikwa vilivyo na hifadhi ndogo ya kudumu na RAM. Wakati wa ukuzaji, sehemu ya nambari ilikopwa kutoka kwa maktaba newlib kutoka kwa mradi wa Cygwin na Libc ya AVR, iliyotengenezwa kwa vidhibiti vidogo vya Atmel AVR. Nambari ya PicoLibc kusambazwa na chini ya leseni ya BSD. Mkutano wa maktaba unatumika kwa usanifu wa ARM (32-bit), i386, RISC-V, x86_64 na PowerPC.

Keith Packard alianza ukuzaji baada ya kutoweza kupata chaguo bora la Libc ambalo linaweza kutumika kwenye vifaa vilivyopachikwa vilivyo na RAM kidogo. Mradi huo umekuwa ukiendelezwa tangu mwaka jana. Katika hatua ya kwanza, mradi ulikuwa ni lahaja ya newlib, kazi za stdio ambazo zilibadilishwa na toleo la kompakt kutoka avrlibc (stdio katika newlib haikufaa kwa matumizi yake ya juu ya rasilimali). Kwa kuwa kazi ya sasa ya Keith inahusisha kazi inayoendelea na usanifu wa RISC-V na ukuzaji wa zana za vifaa vilivyopachikwa, hivi majuzi alikagua hali ya utekelezaji wa libc na akahitimisha kuwa kwa kurekebisha kidogo, mchanganyiko wa newlib na avrlibc unaweza kuwa kusudi zuri la jumla. suluhisho. Hapo awali, mradi ulianzishwa chini ya jina "newlib-nano", lakini ili kuepuka kuchanganyikiwa na maktaba ya Newlib ilibadilishwa jina la PicoLibc.

Katika hali yake ya sasa, Picolibc tayari imefanya kazi ya kuondoa msimbo wote ambao haujatolewa chini ya leseni ya BSD (nambari hii haikutumiwa wakati wa kujenga vifaa vilivyopachikwa), ambayo imerahisisha hali hiyo kwa kiasi kikubwa na leseni ya mradi huo. Utekelezaji wa mitiririko ya ndani umehamishwa kutoka 'struct _reent' hadi kwa utaratibu wa TLS (uhifadhi wa ndani) Toleo la kompakt la stdio, lililokopwa kutoka kwa msimbo wa maktaba ya avrlibc, huwashwa kwa chaguo-msingi (viingilio vya kiunganishi maalum vya ATmel huandikwa upya katika C). Zana ya zana ya Meson ilitumika kwa kusanyiko, ambayo ilifanya iwezekane kutofungwa kwenye hati za mkusanyiko wa newlib na kurahisisha uhamishaji wa mabadiliko kutoka kwa newlib. Imeongeza toleo lililorahisishwa la msimbo wa uanzishaji (crt0), ulioambatishwa kwenye faili inayoweza kutekelezwa na kutekelezwa kabla ya udhibiti kuhamishiwa kwenye () chaguo la kukokotoa.

Katika toleo la Picolibc 1.1:

  • Aliongeza maktaba msaidizi kusaidia teknolojia "semihosting"huruhusu msimbo unaoendeshwa katika kitatuzi au mazingira ya kiigaji kutumia mifumo ya I/O ya mfumo wa mwenyeji;
  • Kwa mifumo inayoauni simu za mfumo wa wazi, wa kufunga, wa kusoma na kuandika, tinystdio huongeza violesura sanifu vya POSIX stdio I/O, ikijumuisha vitendaji vya fopen na fdopen, pamoja na kumfunga stdin/stdout/stderr kwa vifafanuzi vya faili vilivyoainishwa na POSIX;
  • Mabadiliko ya hivi majuzi kutoka kwa newlib codebase yamefanywa. Ikiwa ni pamoja na mbegu za libm zilizoongezwa za fenv.h, ambayo inaweza kutumika kwenye mifumo bila usaidizi wa uhakika wa kuelea;
  • Imeongeza mfano wa kuunda programu ya "Hello world" na picolibc kwa mifumo ya ARM na RISC-V;
  • Imeondoa saraka za newlib, libm na mathfp, ambazo zilikuwa na msimbo wa majaribio ambao haujatumika.

Chanzo: opennet.ru

Kuongeza maoni