User:Aslantis/SPARC usability in the modern age
Very much WIP. Links will be broken until I stop being lazy.
You might have heard me talking about using a SPARC box as a general-purpose machine. Or maybe a web search brought you here.
Either way, you're here for one reason: you want to know what one can and can't do on SPARC.
Hover over the info bubbles for more information.
|Language||Does it work?||Working versions||"Just works?" ™ If installable by a normal emerge && If emerge can use the toolchain||Working compilers||Notes|
|C/C++||Yes||All||Yes||GCC, clang||ICE's (Internal Compiler Errors) are fairly common on sparc. Try toning down your -mcpu.</br>lld only has basic functionality on sparc.|
|Fortran||Yes Did very little testing||All||Yes||gfortran sys-devel/gcc[fortran]||None|
|Java||Yes||JIT only on some Sparc support was officially dropped in JDK15. If you want JIT support, use version < 15. OpenJDK of any version will work however: but at 10-30% of the performance of one with a JIT.||No Not yet but eta son (tm)||openjdk||None|
|Go||Code can be very buggy||Will always likely be behind gc TODO||Partial Have to manually set the go -> go-12 symlink||gccgo sys-devel/gcc[go]:12 The gc compiler (dev-lang/go) does not support sparc, and never will.||GCC-12 or higher must be used to build go.|
|Nim||worked for my light testing||unknown||Yes||nim||None|
|Zig||Kinda, but not yet||unknown TODO||So far||zig||TODO|
Very usable as a server! However, keep in mind the things you want to host.
- At this time, do NOT expect anything written in golang to work!!!!
- Any time tested server software written in C/C++ will likely do well. Keep in mind less popular software does have a chance to be effected by endianness or unaligned memory access problems. I personally have not encountered this yet with headless programs.
- While rust does work, keep in mind the nature of rust crates. Many applications rely on crates that have assembly, C, or CPU specific code(looking at you ring). Many 'nightly' rust features do not work(yet!).
- Interestingly enough, java might not be the invulnerable bullet you might think. While supposed to be backward compatible, this is not always the case, and I have yet to get jdk8 working on linux/sparc. Also, there is a slight chance you can run into an unaligned memory access issue. I have encountered this for GUI java programs, so it is possible.
- node does not and will not support sparc.
Are we desktop yet?
That said, the 'ast' video driver (for "integrated" ASPEED GPUs) works out of the box. The 'radeon' driver can work with some slight tweaks. Nobody has gotten the 'amdgpu' driver to work yet, and I believe 'nouveau' is (mostly)untested.
Does xyz work on SPARC?
You can search the Gentoo tree and overlays to see if a package is keyworded. If it is keyworded, your answer is pretty much 'yes'. If it isn't, it does not mean it doesn't work on SPARC! It just means nobody has tested that it does yet.
What problems can prevent a program from running on SPARC?
Big endian issues, unaligned memory accesses, internal compiler errors on compilation, lack of language support, and page size issues to name a few.