Standard C bókasafn PicoLibc 1.1 í boði

Keith Packard, virkur Debian verktaki, leiðtogi X.Org verkefnisins og skapari margra X viðbóta, þar á meðal XRender, XComposite og XRandR, kynnt útgáfu nýs staðlaðs C bókasafns PicoLibc 1.1, þróað til notkunar á innbyggðum tækjum með takmarkaða varanlega geymslu og vinnsluminni. Við þróun var hluti kóðans fengin að láni á bókasafninu newlib frá Cygwin verkefninu og AVR Libc, þróað fyrir Atmel AVR örstýringar. PicoLibc kóða dreift af undir BSD leyfi. Bókasafnssamsetning er studd fyrir ARM (32-bita), i386, RISC-V, x86_64 og PowerPC arkitektúra.

Keith Packard hóf þróun eftir að hafa ekki fundið viðeigandi Libc valkost sem hægt var að nota á innbyggðum tækjum með lítið vinnsluminni. Verkefnið hefur verið í þróun síðan í fyrra. Á fyrsta stigi var verkefnið afbrigði af newlib, aðgerðum stdio þar sem skipt var út fyrir þétta útgáfu frá avrlibc (stdio í newlib hentaði ekki fyrir mikla auðlindanotkun). Þar sem núverandi vinna Keiths felur í sér áframhaldandi vinnu með RISC-V arkitektúr og þróun verkfæra fyrir innbyggð tæki, fór hann nýlega yfir stöðu libc útfærslur og komst að þeirri niðurstöðu að með smá lagfæringum gæti samsetning newlib og avrlibc verið góð almenn tilgangur lausn. Upphaflega þróaðist verkefnið undir nafninu „newlib-nano“ en til að forðast rugling við Newlib bókasafnið var það endurnefnt PicoLibc.

Í núverandi mynd hefur Picolibc þegar unnið að því að fjarlægja allan kóða sem ekki er til staðar samkvæmt BSD leyfi (þessi kóði var ekki notaður við byggingu fyrir innbyggð tæki), sem hefur verulega einfaldað stöðuna með leyfi fyrir verkefnið. Innleiðing staðbundinna strauma hefur verið færð úr 'struct _reent' yfir í TLS vélbúnaðinn (þráð-staðbundin geymsla). Fyrirferðarlítil útgáfa af stdio, fengin að láni frá avrlibc bókasafnskóðanum, er sjálfkrafa virkjuð (ATmel-sérstök samsetningarinnskot eru endurskrifuð í C). Meson verkfærakistan var notuð fyrir samsetningu, sem gerði það mögulegt að vera ekki bundinn við newlib samsetningarforskriftir og til að einfalda flutning á breytingum frá newlib. Bætti við einfaldaðri útgáfu af frumstillingarkóðann (crt0), tengdur við keyrsluskrána og framkvæmd áður en stjórn er flutt yfir í aðal() aðgerðina.

Í Picolibc útgáfu 1.1:

  • Bætt við aukabókasafni til að styðja við tæknina "hálfhýsing"Leyfir kóða sem keyrir í villuleitar- eða hermiumhverfi til að nota I/O kerfi hýsilkerfisins;
  • Fyrir kerfi sem styðja opna, loka, lesa og skrifa kerfissímtöl, bætir tinystdio við stöðluðum POSIX stdio I/O viðmótum, þar á meðal fopen og fdopen aðgerðunum, auk þess að binda stdin/stdout/stderr við POSIX skilgreinda skráarlýsingar;
  • Nýlegar breytingar frá newlib kóðagrunninum hafa verið fluttar yfir. Þar á meðal bættir libm stubbar fyrir fenv.h, sem hægt er að nota á kerfum án flotpunktsstuðnings;
  • Bætti við dæmi um að byggja upp „Hello world“ forritið með picolibc fyrir ARM og RISC-V kerfi;
  • Fjarlægði newlib, libm og mathfp möppurnar, sem innihéldu ónotaðan tilraunakóða.

Heimild: opennet.ru

Bæta við athugasemd