LLVM lld әзірлеген Mold 1.1 байланыстырғышының шығарылымы

Linux жүйелеріндегі GNU сілтемесін жылдамырақ, мөлдір ауыстыру ретінде пайдалануға болатын Mold сілтемесінің шығарылымы жарияланды. Жобаны LLVM lld сілтемесінің авторы әзірлеген. Mold бағдарламасының негізгі ерекшелігі - нысан файлдарын байланыстырудың өте жоғары жылдамдығы, бұл GNU gold және LLVM lld сілтемелерінен айтарлықтай озып кетті (Мөлде байланыстыру cp утилитасымен файлдарды жай көшіру жылдамдығының жартысы ғана жылдам орындалады). Код C++ (C++20) тілінде жазылған және AGPLv3 лицензиясы бойынша таратылады.

Жаңа нұсқада:

  • Байланыстыру кезеңінде оңтайландыруға қолдау қосылды (LTO, Link Time Optimization). LTO оңтайландырулары құрастыру процесіне қатысатын барлық файлдардың күйін ескере отырып ерекшеленеді, ал дәстүрлі оңтайландыру режимдері әрбір файлды бөлек оңтайландырады және басқа файлдарда анықталған функцияларды шақыру шарттарын ескермейді. Бұрын GCC немесе LLVM аралық код (IR) файлдары табылған кезде сәйкес ld.bfd немесе ld.lld сілтемелері шақырылатын болса, енді Mold IR файлдарын дербес өңдейді және GNU ld және GNU-да да қолданылатын Linker Plugin API пайдаланады. алтын байланыстырғыштар. Қосылған кезде, LTO басқа сілтемелерге қарағанда біршама жылдамырақ, себебі уақыттың көп бөлігі байланыстыруға емес, кодты оңтайландыруға жұмсалады.
  • Хост пен мақсатты платформаларда RISC-V (RV64) архитектурасына қолдау қосылды.
  • Байланыстырудан кейінгі кезеңде оңтайландыруларды кейіннен қолдану үшін кіріс файлдарынан шығыс файлдарына көшіру бөлімдерін көшіруді қосу үшін «--emit-relocs» опциясы қосылды.
  • Виртуалды мекенжай кеңістігінде мекен-жайларын бекіту алдында бөлімдердің ретін рандомизациялау үшін «--shuffle-sections» опциясы қосылды.
  • Кіріс файлдары арасындағы тәуелділіктер туралы ақпаратты CSV пішімінде шығару үшін «--print-dependencies» және «--print-dependencies=full» опциялары қосылды, олар, мысалы, белгілі бір нысан файлдарын байланыстыру кезінде қосылу себептерін талдау үшін пайдаланылуы мүмкін. немесе файлдар арасындағы тәуелділіктерді азайту жұмысы кезінде.
  • «--бір рет ескерту» және «--ескерту-мәтін» опциялары қосылды.
  • libxxhash тәуелділігі жойылды.

Ақпарат көзі: opennet.ru

пікір қалдыру