Things that work reliably well on my 32-bit #PowerPC machine.
GCC 13 works fine, but can't produce a working dynamically linked Python binary — probably has other issues so I've downgraded.
Rust up to 1.80 works, but segfaults when building certain crates, such as getrandom — probably related to newer versions of LLVM being horribly broken and LLVM12 probably works because it seems to ignore most optimisation flags.
And you can't build newer Rust using older tools — because it only supports last 3 releases of LLVM and they have cranked out quite a few of them in the past couple of years, but the worst part is those LLVM releases can only be built with GCC 13. This looks somewhat relevant: https://github.com/llvm/llvm-project/issues/95594
Why does everything have to depend on the latest versions and be so fucking broken? 😩
And yes, I've built #ziglang too, but it fails to produce binaries even for the hello_world type of programs, I have no idea what the problem might be, but as it depends on LLVM (and even comes with LLVM 18 for bootstrapping), it could be literally anything.
Good news is — it's possible to make #golang work on a relatively up-to-date #powerpc system, even though it's really dated: gccgo that comes with gcc 8.5.0 provides go 1.10.3… Yeah-yeah, but even this is one hell of an achievement, at least programs that only depend on the standard library work reliably.
Thanks to Adelie Linux maintainers and their set of patches: https://cgit.adelielinux.org/packages/tree/system/gcc?id=b7807f42fbd231b0783eb0d26fd60b63153ca6d9
I've also had to update libbacktrace to the one from gcc 10.5 — my system seems pro produce binaries with dwarf-5, but older libbacktrace does not support that and adding "-gdwarf-4" to CFLAGS somehow failed to fix that for me.
This go toolchain still fails to produce fully statically linked binaries as normal go toolchain does — this is probably related to libucontext in Void only exporting prefixed symbols. But that's a relatively minor problem, statically linking libgo works fine.
@awilfox
There is also a branch with an attempt to port newer libgo to older gccgo in the Adelie tree — that one failed to build on my machine too, but my experimenting with it is somewhat hindered by the fact that complete rebuild of gcc on this MacMini takes forever😅 So I might've missed something.