Mold Linker Decides To Drop DEC Alpha Support: Likely Broken & No Actual Users
The high performance open-source Mold linker has released version 2.34 with various improvements while also deciding to throw in the towel on DEC Alpha processor support.
Mold 2.34 does away with DEC Alpha support but it's no real loss considering the age of the hardware and that it's very unlikely to be used with an up-to-date software stack especially with this modern Mold linker. Plus it looks like the Alpha support may have been fundamentally broken to this point. Mold lead developer Rui Ueyama commented in today's release announcement:
Rui further added in the commit dropping the 500+ lines of Alpha specific code:
The rest of the Mold 2.34 changes include TLSDESC relocations are now supported on LoongArch and various smaller fixes/improvements.
Mold 2.34 does away with DEC Alpha support but it's no real loss considering the age of the hardware and that it's very unlikely to be used with an up-to-date software stack especially with this modern Mold linker. Plus it looks like the Alpha support may have been fundamentally broken to this point. Mold lead developer Rui Ueyama commented in today's release announcement:
"DEC Alpha support has been removed due to lack of demand. In fact, mold's Alpha support has never been tested for real-world programs and was likely unable to link them in the first place. This should not affect anyone because the last Alpha processor was released more than 20 years ago."
Rui further added in the commit dropping the 500+ lines of Alpha specific code:
"Keeping DEC Alpha support is difficult because there are no Alpha machines available for toolchain developers, and even if there were, no modern Linux distros still support Alpha. For example, Debian dropped Alpha support in Debian 6.0. As a result, I cannot test my linker with real-world programs.
In fact, I believe mold has never been able to link real-world large programs. Object files for Alpha are compiled with the small code model by default, so it is not easy to support it in the linker.
There's no means to verify that my implementation is correct for Alpha because Alpha's psABI has never been published by DEC. The most "reliable" source of correctness is GNU ld's source code and comments.
Last but not least, I believe there are literally zero mold/Alpha users. Unlike some other retro computers like the m68k, Alpha doesn't seem to get much love from the community, perhaps because the availability of Alpha machines was limited in the first place, even in the 90s.
Therefore, I'll remove Alpha support now. If there's someone who wants to keep it, we can resurrect and re-test it.
This change should make the mold binary size a little smaller."
The rest of the Mold 2.34 changes include TLSDESC relocations are now supported on LoongArch and various smaller fixes/improvements.
37 Comments