Umtapo wezincwadi ojwayelekile we-PicoLibc 1.1 uyatholakala

U-Keith Packard, unjiniyela we-Debian osebenzayo, umholi wephrojekthi ye-X.Org nomdali wezandiso eziningi ze-X, okuhlanganisa i-XRender, i-XComposite ne-XRandR, kwethulwa ukukhishwa komtapo wezincwadi ojwayelekile we-C I-PicoLibc 1.1, eyenzelwe ukusetshenziswa kumadivayisi ashumekiwe anesitoreji saphakade esilinganiselwe kanye ne-RAM. Ngesikhathi sokuthuthukiswa, ingxenye yekhodi yaboleka emtatsheni wezincwadi entshalib kusukela kuphrojekthi ye-Cygwin kanye I-AVR Libc, yenzelwe izilawuli ezincane ze-Atmel AVR. Ikhodi ye-PicoLibc isatshalaliswa ngu ngaphansi kwelayisensi ye-BSD. Ukuhlanganiswa kwelabhulali kusekelwa kwe-ARM (32-bit), i386, RISC-V, x86_64 kanye nezakhiwo ze-PowerPC.

U-Keith Packard waqala ukuthuthukiswa ngemva kokungakwazi ukuthola inketho ye-Libc ehloniphekile engasetshenziswa kumadivayisi ashumekiwe ane-RAM encane. Lo msebenzi ubulokhu uthuthukiswa kusukela ngonyaka odlule. Esigabeni sokuqala, iphrojekthi ibihlukile kwe-newlib, imisebenzi ye-stdio lapho kwathathelwa indawo inguqulo ehlangene evela ku-avrlibc (i-stdio ku-newlib yayingafanele ukusetshenziswa kwayo kwezinsiza eziphezulu). Njengoba umsebenzi kaKeith wamanje uhlanganisa umsebenzi oqhubekayo ne-RISC-V yezakhiwo kanye nokuthuthukiswa kwamathuluzi emishini eshumekiwe, usanda kubuyekeza isimo sokuqaliswa kwe-libc futhi waphetha ngokuthi ngokulungisa kancane, inhlanganisela ye-newlib ne-avrlibc ingaba inhloso evamile evamile. isisombululo. Ekuqaleni, iphrojekthi yathuthukiswa ngaphansi kwegama elithi "newlib-nano", kodwa ukugwema ukudideka nomtapo wezincwadi waseNewlib yaqanjwa kabusha ngokuthi i-PicoLibc.

Ngendlela yayo yamanje, i-Picolibc isivele yenze umsebenzi wokususa yonke ikhodi enganikezwanga ngaphansi kwelayisense ye-BSD (le khodi ayizange isetshenziswe lapho kwakhiwe imishini eshumekiwe), okusenze salula kakhulu isimo ngelayisensi yephrojekthi. Ukuqaliswa kokusakaza kwasendaweni kususiwe ku-'struct _reent' kwayiswa endleleni ye-TLS (isitoreji sendawo yochungechunge). Inguqulo ehlangene ye-stdio, ebolekwe kukhodi yelabhulali ye-avrlibc, yenziwa isebenze ngokuzenzakalelayo (okufakwayo okuhlanganisiwe kwe-ATmel kubhalwa kabusha ngo-C). Ikhithi yamathuluzi ye-Meson yasetshenziselwa ukuhlanganiswa, okwenza kwaba nokwenzeka ukungaboshelwa emibhalweni yomhlangano we-newlib nokwenza kube lula ukudluliswa kwezinguquko kusuka ku-newlib. Kwengezwe inguqulo eyenziwe lula yekhodi yokuqalisa (crt0), enamathiselwe efayeleni elisebenzisekayo futhi isetshenziswe ngaphambi kokuthi ukulawula kudluliselwe kumsebenzi omkhulu().

Kunguqulo ye-Picolibc 1.1:

  • Kwengezwe umtapo wolwazi wokusekela ubuchwepheshe "ukusingathwa kancane"ivumela ikhodi esebenza endaweni yokulungisa iphutha noma yokulingisa ukusebenzisa izindlela ze-I/O zesistimu yokusingatha;
  • Kuzinhlelo ezisekela izingcingo zesistimu ezivuliwe, ezivalayo, ezifundwayo, nezibhalayo, i-tinystdio yengeza izixhumanisi ezijwayelekile ze-POSIX stdio I/O, okufaka phakathi imisebenzi ye-fopen ne-fdopen, kanye nokubophezela okuthi stdin/stdout/stderr kuzichazi zefayela ezichazwe yi-POSIX;
  • Izinguquko zakamuva ezivela ku-newlib codebase zidluliselwe. Kubandakanya ama-libm stubs angeziwe we fenv.h, engasetshenziswa ezinhlelweni ngaphandle kokusekela iphuzu elintantayo;
  • Kwengezwe isibonelo sokwakha uhlelo lokusebenza lwe-"Sawubona mhlaba" nge-picolibc yezinhlelo ze-ARM ne-RISC-V;
  • Kukhishwe uhla lwemibhalo lwe-newlib, i-libm ne-mathfp, equkethe ikhodi yokuhlola engasetshenziswanga.

Source: opennet.ru

Engeza amazwana