Creole C bibliyotèk PicoLibc 1.1 disponib

Keith Packard, pwomotè Debian aktif, lidè pwojè X.Org ak kreyatè anpil ekstansyon X, tankou XRender, XComposite ak XRandR, entwodwi lage yon nouvo bibliyotèk estanda C PicoLibc 1.1, devlope pou itilize sou aparèy entegre ak depo pèmanan limite ak RAM. Pandan devlopman, yon pati nan kòd la te prete nan bibliyotèk la newlib soti nan pwojè Cygwin ak AVR Libc, devlope pou Atmel AVR mikro. PicoLibc Kòd distribiye pa anba lisans BSD. Asanble bibliyotèk sipòte pou ARM (32-bit), i386, RISC-V, x86_64 ak achitekti PowerPC.

Keith Packard te kòmanse devlopman apre yo te pa kapab jwenn yon opsyon Libc desan ki ta ka itilize sou aparèy entegre ak ti RAM. Pwojè a ap devlope depi ane pase. Nan premye etap la, pwojè a se te yon varyant nan newlib, fonksyon yo nan stdio nan ki te ranplase ak yon vèsyon kontra enfòmèl ant soti nan avrlibc (stdio nan newlib pa te apwopriye pou konsomasyon resous segondè li yo). Piske travay aktyèl Keith a enplike nan travay kontinyèl ak achitekti RISC-V ak devlopman zouti pou aparèy entegre, li dènyèman te revize eta a nan aplikasyon libc ak konkli ke ak yon ti ajisteman, konbinezon an nan newlib ak avrlibc ta ka yon bon objektif jeneral. solisyon. Okòmansman, pwojè a te devlope sou non "newlib-nano", men pou evite konfizyon ak bibliyotèk Newlib li te chanje non PicoLibc.

Nan fòm li ye kounye a, Picolibc te deja fè travay yo retire tout kòd ki pa apwovizyone anba yon lisans BSD (kòd sa a pa te itilize lè bati pou aparèy entegre), ki te siyifikativman senplifye sitiyasyon an ak lisans lan pou pwojè a. Aplikasyon kouran lokal yo te deplase soti nan 'struct _reent' nan mekanis TLS la (fil-lokal depo). Vèsyon kontra enfòmèl ant stdio, ki te prete nan kòd bibliyotèk avrlibc la, aktive pa default (Insérer ATmel-espesifik asanble yo reekri nan C). Yo te itilize zouti Meson pou asanble, sa ki te fè li posib pou yo pa mare ak scripts asanble newlib epi senplifye transfè chanjman ki soti nan newlib. Te ajoute yon vèsyon senplifye nan kòd la inisyalizasyon (crt0), tache ak dosye a ègzèkutabl epi egzekite anvan kontwòl yo transfere nan fonksyon prensipal la ().

Nan Picolibc vèsyon 1.1:

  • Te ajoute bibliyotèk oksilyè pou sipòte teknoloji a "semihosting"pèmèt kòd kouri nan yon anviwònman debugger oswa emulateur pou itilize mekanis I/O sistèm lame a;
  • Pou sistèm ki sipòte apèl sistèm ouvri, fèmen, li ak ekri, tinystdio ajoute entèfas I/O estanda POSIX stdio, ki gen ladan fonksyon fopen ak fdopen, ansanm ak stdin/stdout/stderr lye ak deskriptè fichye POSIX defini;
  • Chanjman ki sot pase yo soti nan kodbaz newlib yo te pote sou. Ki gen ladan te ajoute souch libm pou fenv.h, ki ka itilize sou sistèm san sipò pwen k ap flote;
  • Te ajoute yon egzanp pou konstwi aplikasyon "Hello world" ak picolibc pou sistèm ARM ak RISC-V;
  • Retire anyè newlib, libm ak mathfp, ki gen kòd eksperimantal ki pa itilize.

Sous: opennet.ru

Add nouvo kòmantè