Mold 2.0.0 is a new major release of our high-speed linker. With this release, we've transitioned our license from AGPL to MIT, aiming to expand the user base of our linker. This was not an easy decision, as those who have been following our progress know that we've been attempting to monetize our product through an AGPL/commercial license dual-licensing scheme. Unfortunately, this approach didn't meet our expectations. The license change represents our acceptance of this reality. We don't want to persist with a strategy that didn't work well.
As always, we welcome new GitHub sponsors. If you are happy with the license change, please consider becoming a sponsor.
In addition to the license change, here is a list of updates we have made in this release:
- Previously, mold could not produce an object file with more than 65520 sections using the
--relocatable
option. Now the bug has been fixed. (2e8bd0b) - mold now interprets
-undefined
as a synonym for--undefined
instead of-u ndefined
. This seems inconsistent, as-ufoo
is generally treated as-u foo
(which is an alias for--undefined foo
), but this is the behavior of the GNU linkers and LLVM lld, so we prioritize compatibility over consistency. -nopie
is now handled as a synonym for--no-pie
.- [RISC-V]
R_RISCV_SET_ULEB128
andR_RISCV_SUB_ULEB128
relocation types are now supported (4bffe26, 1ac5fe7) - [PPC64]
R_PPC64_REL32
relocation type is now supported. (ebd780e)