Kutolewa kwa GNU Mes 0.23, zana ya ujenzi wa usambazaji unaojitosheleza

Baada ya mwaka wa maendeleo, zana ya zana ya GNU Mes 0.23 ilitolewa, ikitoa mchakato wa bootstrap kwa GCC na kuruhusu mzunguko uliofungwa wa kujenga upya kutoka kwa msimbo wa chanzo. Zana ya zana hutatua shida ya mkusanyiko wa mkusanyaji wa awali uliothibitishwa katika usambazaji, kuvunja mlolongo wa ujenzi wa mzunguko (kuunda mkusanyaji kunahitaji faili zinazoweza kutekelezeka za mkusanyaji aliyejengwa tayari, na mikusanyiko ya mkusanyaji wa binary ni chanzo kinachowezekana cha alamisho zilizofichwa, ambazo haziruhusu uhakikisho kamili. uadilifu wa mikusanyiko kutoka kwa misimbo ya vyanzo vya marejeleo).

GNU Mes inatoa mkalimani anayejipangisha mwenyewe kwa lugha ya Mpango, iliyoandikwa kwa lugha ya C, na mtunzi rahisi wa lugha ya C (MesCC), iliyoandikwa katika lugha ya Mpango. Vipengele vyote viwili vinaweza kuunganishwa. Mkalimani wa Mpango hukuruhusu kuunda kikusanyaji cha MesCC C, ambacho kinakuruhusu kuunda toleo lililoondolewa la mkusanyiko wa TinyCC (tcc), ambao uwezo wake tayari unatosha kujenga GCC.

Mkalimani wa lugha ya Mpango ni mshikamano kabisa, huchukua takriban mistari 5000 ya msimbo katika sehemu rahisi zaidi ya lugha ya C na inaweza kubadilishwa kuwa faili inayoweza kutekelezeka kwa kutumia mfasiri wa ulimwengu wa M2-Planet au mkusanyaji rahisi wa C uliokusanywa kwa kutumia hex iliyojikusanya. assembler, ambayo hauhitaji utegemezi wa nje. Wakati huo huo, mkalimani ni pamoja na mtozaji wa takataka kamili na hutoa maktaba ya moduli zinazoweza kubeba.

Toleo jipya ni pamoja na msaada kwa usanifu wa ARM (armhf-linux na aarch-linux). Imeongeza uwezo wa kutumia Mes pamoja na seti iliyopunguzwa ya faili za bootstrap kutoka mradi wa GNU Guix (GNU Guix Reduced binary Seed). Usaidizi uliotekelezwa wa kujenga maktaba ya Mes na Mes C kwa kutumia GCC 10.x. Mkusanyaji wa MesCC sasa anasafirisha maktaba yake ya libmescc.a (-lmescc), na wakati wa kujenga na GCC, "-lgcc" sasa imebainishwa. Imetoa usaidizi wa kujenga MesCC kwa kutumia Gule 3.0.x.

Chanzo: opennet.ru

Kuongeza maoni