Skip to content

mold 1.3.0

Compare
Choose a tag to compare
@rui314 rui314 released this 18 Jun 04:05
· 2688 commits to main since this release

mold 1.3.0 is a new release of the high-speed linker. This release contains a few new features and general stability/compatibility improvements as shown below.

Note for those who create mold binary packages: if you are building mold for binary distribution, please link the bundled libtbb statically (which is default) or rebuild your distro's libtbb package with my patch so that mold's Link-Time Optimization (LTO) works reliably under a heavy load.

Bug fixes and compatibility improvements

  • The --icf=safe option has been supported. This option enables a feature to find and deduplicate identical code that can be merged safely. For C++ programs, it typically reduces the output binary size by a few percent. --icf=safe needs to be used with a compiler that supports .llvm_addrsig section; if a compiler does not support it, --icf=safe doesn't do any harm but cannot optimize a given program at all. That section is supported by LLVM/Clang at the moment, and we are working on adding it to GCC. (#484, 27908af)
  • LTO now works reliably under a heavy load. mold used to abort occasionally under such condition on Linux due to a spurious failure of pthread_create(2). (d8a8877)
  • mold now prints out undefined symbol errors in a format similar to LLVM lld. (13816a1)
  • mold now prints out a better error message for the disk full situation. (5969260)
  • mold can now build GCC 12 with LTO. (708ad63)
  • Fixed an LTO issue on 32-bits hosts such as i686. (920266b)
  • mold is now AddressSanitizer and UndefinedSanitizer clean. (fafb75b, 3499ee6)
  • mold used to create broken debug info on 32-bits hosts (#490). The bug has been fixed. (0abd0a4)
  • mold used to accept not only a single dash but also double dashes for single-letter options. For example, --S was accidentally accepted as an alias for-S. This is unconventional, and such options are no longer accepted. (232dafa)
  • --color-diagnostics is now an alias for --color-diagnostics=auto instead of --color-diagnostics=always for compatibility with LLVM lld.
  • pkg-config is no longer needed to build mold.
  • The --package-metadata option is supported. (#505, e9f6715)

Removed features

  • An experimental --preload flag has been removed. (a85b1f5)

Acknowledgements

mold is an open-source project, and we accept donations via GitHub Sponsors and OpenCollective. We thank you to everybody who sponsors our project. In particular, we'd like to acknowledge the following organizations and people who have sponsored $32/mo or more during this release cycle:

We'd also like to thank HPC Engineering at AWS to donate $5,000 AWS credits to us.