Mold 2.3 Linker Allows Removing Superfluous ENDBR64 Instructions
Mold 2.3 was released today by Rui Ueyama as the newest version of this high-speed linker alternative to LLVM LLD and GNU Gold.
The main new feature of Mold 2.3 is adding a -z rewrite-endbr command for x86_64 that can convert superfluous ENDBR64 instructions into NOPs. This intends to address the increasing number of ENDBR64 instructions emitted by GCC when enabling the control flow protection (-fcf-protection) option. Mold aims to address the "overabundance of unnecessary ENDBR64 instructions" by performing whole program analysis on the input files to figure out functions whose addresses are never taken and then to replace the initial ENDBR64 with a NOP for no operation.
Mold 2.3 also produces a more compact ".gdb_index" section, more capable of handling input sections larger than 4GB, and having various RISC-V / ARM64 / PowerPC fixes.
Downloads and more details on the Mold 2.3 changes via GitHub.
The main new feature of Mold 2.3 is adding a -z rewrite-endbr command for x86_64 that can convert superfluous ENDBR64 instructions into NOPs. This intends to address the increasing number of ENDBR64 instructions emitted by GCC when enabling the control flow protection (-fcf-protection) option. Mold aims to address the "overabundance of unnecessary ENDBR64 instructions" by performing whole program analysis on the input files to figure out functions whose addresses are never taken and then to replace the initial ENDBR64 with a NOP for no operation.
Mold 2.3 also produces a more compact ".gdb_index" section, more capable of handling input sections larger than 4GB, and having various RISC-V / ARM64 / PowerPC fixes.
Downloads and more details on the Mold 2.3 changes via GitHub.
10 Comments