Mold 1.1 LLVM LLD LLVM LLD

published Linker release MOLD , which can be used as a faster transparent replacement of GNU Linker on Linux systems. The project develops by the author of the linker LLVM LLD . The key feature of MOLD is a very high binding speed of object files, noticeably advanced linters GNU GOLD and LLVM LLD (layout in MOLD is performed at a speed, only twice as slower than easy copy of the CP utility files). The code is written in C ++ (C ++ 20) and spreads under the AgPlv3 license.

In the new version:

  • Added optimization support at the binding stage (LTO, LINK Time Optimization). LTO optimization is different by taking into account the status of all files involved in the assembly process while traditional optimization modes optimize each file separately and do not take into account the conditions for calling functions defined in other files. If earlier, when you detect files with an intermediate code (IR) GCC or LLVM, the corresponding LD.BFD or LD.LLD layouts were called, now MOLD processes IR files independently and uses Linker Plugin API, also used in GNU LD and GNU GOLD. The speed when LTO is turned on only slightly ahead of other linkers, as the main time is spent on performing the optimization of the code, and not a layout.
  • Added support for the architecture of the RISC-V (RV64) on the side of the host and target platforms.
  • Added option “–most-relocs” To enable the mode of copying the sections of the address movements (RELocation) from the input files to the final to subsequent use of optimization at the stage after binding.
  • Added option “–shuffle-sections” to randomize the order of sections before fixing their addresses in the virtual address space.
  • Added options “–print-dependencies” and “–print-dependencies = FULL” to output CSV information on dependency information between input files, which, for example, can be used to analyze the reasons for connecting when laying certain object files or When working to minimize dependencies between files.
  • Added OPTION “–Warn-Once” and “–warn-Textrel”.
  • Alive dependence on libxxhash.
/Media reports.