Vrystelling van Mould 1.1-skakelaar, ontwikkel deur LLVM lld

'n Vrystelling van die Mould-skakelaar is gepubliseer, wat as 'n vinniger, deursigtige vervanging vir die GNU-skakelaar op Linux-stelsels gebruik kan word. Die projek is ontwikkel deur die skrywer van die LLVM lld-skakelaar. 'n Sleutelkenmerk van Mould is die baie hoë spoed om objeklêers te koppel, merkbaar voor die GNU gold en LLVM lld-skakelaars (skakeling in Mould word uitgevoer teen 'n spoed wat net die helfte so vinnig is as om lêers eenvoudig met die cp-nutsmiddel te kopieer). Die kode is in C++ (C++20) geskryf en onder die AGPLv3-lisensie versprei.

In die nuwe weergawe:

  • Bygevoeg ondersteuning vir optimalisering by die skakel stadium (LTO, Link Time Optimization). LTO-optimalisasies verskil deur die toestand van alle lêers wat by die bouproses betrokke is, in ag te neem, terwyl tradisionele optimaliseringsmodusse elke lêer afsonderlik optimaliseer en nie die voorwaardes vir die oproep van funksies wat in ander lêers gedefinieer is, in ag neem nie. Terwyl voorheen, toe GCC of LLVM intermediêre kode (IR) lêers gevind is, die ooreenstemmende ld.bfd of ld.lld skakelaars genoem is, verwerk Mould nou IR lêers onafhanklik en gebruik die Linker Plugin API, wat ook in die GNU ld en GNU gebruik word goue skakelaars. Wanneer dit geaktiveer is, is LTO net effens vinniger as ander skakelaars omdat die meeste van die tyd bestee word aan die uitvoering van kode-optimalisasies eerder as om te koppel.
  • Bygevoeg ondersteuning vir RISC-V (RV64) argitektuur op die gasheer en teiken platforms.
  • Die opsie "--emit-relocs" is bygevoeg om die kopiëring van hervestigingsafdelings van invoerlêers na uitvoerlêers moontlik te maak vir die daaropvolgende toepassing van optimaliserings in die na-skakelstadium.
  • Het die opsie "--shuffle-sections" bygevoeg om die volgorde van afdelings ewekansig te maak voordat hul adresse in die virtuele adresruimte reggestel word.
  • Bygevoeg opsies “--print-dependencies” en “--print-dependencies=full” om in CSV-formaat inligting oor afhanklikhede tussen invoerlêers uit te voer, wat byvoorbeeld gebruik kan word om die redes vir verbinding te ontleed wanneer sekere objeklêers geskakel word of wanneer minifikasiewerkafhanklikhede tussen lêers uitgevoer word.
  • Bygevoeg "--warn-once" en "--warn-textrel" opsies.
  • Verwyder afhanklikheid van libxxhash.

Bron: opennet.ru

Voeg 'n opmerking