3 ms·
OpenBSD has long included multiple system compilers as required for supported platforms, at one point gcc 4.2.1, gcc 3.3.6 and gcc 2.95.3 (!) were in the tree.
by notaplumber 10y ago
OpenBSD has long included multiple system compilers as required for supported platforms, at one point gcc 4.2.1, gcc 3.3.6 and gcc 2.95.3 (!) were in the tree. OpenBSD 5.4 was the last version to include gcc2 for a.out/static lib platforms like vax. After 5.5 most platforms were ported to ELF and gcc3 or gcc4 (..if not memory constrained) by Miod Vallat, even when it meant writing compiler backends. At that point gcc2 was finally removed (..along with a lot of old a.out/static architecture cruft that had accumulated).
Now that LLVM/Clang is in, the potentially viable platforms (i386/amd64/armv7?) can work toward switching, while gcc4 remains for the ones that can't yet. I believe m88k is only gcc3 platforms left, but there's a very passionate guy in Japan interested in keeping his OMRON LUNA-88K and LUNA-88K2 workstations alive.
This may all seem strange, but OpenBSD has always strongly been against cross-compiling beyond perhaps initial platform bring up. This means being able to compile a release and packages on the physical machine must work.
- kev009 10y agomips, ppc and sparc64 are in theory fine on llvm already, in practice there are issues but nothing that can't be worked through, especially given past work OpenBSD has shown on gcc. All 3 are commercially viable for at least a decade. m88k and sh4 are the odd ducks, and if there were a backend wow that would be painful to build llvm on natively :)