Mold 1.1 ja va ser alliberat, coneix les novetats d'aquest Linker modern superior a GNU gold i LLVM

Ja fa diversos dies es va donar a conèixer l'alliberament de la nova versió del Linker modern Mold 1.1, que es pot utilitzar com a reemplaçament transparent més ràpid per a l'enllaçador GNU en sistemes Linux.

En aquesta nova versió de mold 1.1 és una versió que conté noves funcions, correccions d'errors i millores de rendiment.

Sobre Mold

Motlle admet totes les característiques de l'enllaçador GNU i té un rendiment molt alt, ja que els enllaços que realitza tenen una velocitat només dues vegades més lenta que simplement copiar fitxers amb la utilitat cp.

D'aquesta forma el reduir el temps de compilació permet millorar significativament la conveniència de desenvolupar grans projectes en reduir el temps despera en el procés de generació de fitxers executables en depurar i provar canvis.

La motivació per crear Mold va ser la molèstia d'haver d'esperar que es completés l'enllaç després de cada canvi al codi, així com la baixa eficiència dels enllaçadors existents en sistemes multinucli i el desig de provar una arquitectura denllaç fonamentalment diferent sense recorrent a models innecessàriament complicats com lenllaç incremental.

L'alt rendiment de vincular un fitxer executable d'una gran quantitat de fitxers d'objecte preparats pel compilador a Mold s'aconsegueix mitjançant l'ús d'algorismes més ràpids, la paral·lelització activa d'operacions entre els nuclis de CPU disponibles i l'ús d'estructures de dades més eficients.

Per exemple, Mold implementa una tècnica per fer càlculs intensius simultàniament amb la còpia d'arxius, carregant arxius d'objectes de manera proactiva a la memòria, usant taules hash ràpides en resoldre caràcters, escanejant taules de reubicació en una seqüència separada i deduplicant seccions que es repeteixen en diferents fitxers.

Principals novetats de Mold 1.1

En aquesta nova versió que es presenta de Mold 1.1 es destaca que es va afegir el suport per a l'optimització a l'etapa de vinculació (LTO, Link Time Optimization).

Les optimitzacions de LTO difereixen en tenir en compte l'estat de tots els fitxers involucrats en el procés de compilació, mentre que els modes d'optimització tradicionals optimitzen cada fitxer individualment i no tenen en compte les condicions per cridar a les funcions definides en altres fitxers.

Anteriorment, quan es trobaven fitxers de codi intermedi (IR) GCC o LLVM, s'invocaven els enllaçadors ld.bfd o ld.lld apropiats, però ara Mold maneja els fitxers IR pel seu compte i usa l'API del complement Linker, també utilitzada a GNU ld i enllaçadors d'or GNU. La velocitat quan LTO està habilitat només és marginalment més ràpida que altres enllaçadors, ja que la major part del temps es dedica a optimitzar el codi, no a vincular.

També es destaca que es van afegir les opcions “–print-dependencies” i “–print-dependencies=full” para generar informació en format CSV sobre les dependències entre els fitxers d'entrada, que, per exemple, es poden fer servir per analitzar els motius de connexió en vincular certs fitxers d'objectes o durant treballar per minimitzar les dependències entre fitxers.

Un altre dels canvis que es destaca de la nova eversió, és que es va afegir el suport per a l'arquitectura RISC-V (RV64) a les plataformes host i de destinació.

A més, també podrem trobar que s'ha afegit l'opció “–emit-relocs” per habilitar la còpia de seccions de reubicació d'adreces de fitxers d'entrada a fitxers finals perquè s'apliquin optimitzacions posteriors a l'etapa posterior a la vinculació.

Dels altres canvis que es destaquen:

  • Es va afegir l'opció “–shuffle-sections” per aleatoritzar l'ordre de les seccions abans de fixar les adreces a l'espai d'adreces virtuals.
  • Es van afegir les opcions “warn-onze” i “warn-textrel”.
  • S'ha eliminat la dependència de libxxhash.

Finalment si estàs interessat en poder conèixer més a l'respecte, Pots consultar els detalls al següent enllaç.

Com instal·lar Mold?

Per als que estiguin interessats a poder treballar amb Mold, poden obtenir la utilitat descarregant i compilant el codi font. Per això n'hi ha prou amb obrir una terminal i teclejar el següent:

git clone https://github.com/rui314/mold.git
cd mold
git checkout v1.1.1
make -j$(nproc) CXX=clang++
sudo make install

Per conèixer l'ús de Mold, podeu consultar la documentació en aquest enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.