Hacker News
Mold: A Massively Parallel Linker
gabeochoa
|next
[-]
(https://x.com/rui314/status/1560277403787997185)
> my strategy is to increase the value of commons by, say, 100 and get 1 as a return, so bear with me. If you want to use mold for free, you can just do that. This is my open-source business strategy.
Wishing the best for Mold and Rui
canucker2016
|next
|previous
[-]
see https://lwn.net/Articles/276782/
GNU gold is deprecated and will probably be removed soon. ( https://www.phoronix.com/news/GNU-Gold-Linker-Deprecated )
But back in the late 2000s, the blog posts were a combination of algorithm optimization class and software history since no one seemed to step up to cleanup the technical debt that GNU ld had accumulated over the decades.
dochtman
|next
|previous
[-]
https://github.com/wild-linker/wild
(Benchmarks in the README.)
anitil
|root
|parent
|next
[-]
Edit to add: I think David's talk on Wild [0] is an interesting summary of what a linker is and why its hard to make incremental
vient
|root
|parent
|next
|previous
[-]
Seems that some optimizations went to mold 2.42 and others are not yet released. Wild benchmarked mold 2.40 or 2.41
omoikane
|next
|previous
[-]
> A new linker's early adopters knowingly accept such differences, which is one reason why drastic improvements tend to come from new linkers rather than existing ones
This is true of many things, not just linkers. I think this is encouraging for people to (re)try things that have already been done, because newcomers are allowed to take risks that established things can't take.
matheusmoreira
|root
|parent
[-]
I use mold a lot for code embedding in my lisp. I needed extra null PHT entries in the ELF so I could easily patch in custom segments into the interpreter after the link was done.
GNU pretty much ignored the feature request and LLVM probably never even saw the issue, but Rui shipped the --spare-program-headers feature pretty much immediately after I requested it and it immediately restored my sanity.
https://www.matheusmoreira.com/articles/self-contained-lone-...
Current version of my patcher supports ld and lld, but it has to move the PHT to the end of the file in order to append the new segments. Mold is still the only way to avoid the ugly hole where the PHT used to be.