Arch Specific Notes -- SPARC

The SPARC port uses the sparc keyword. It focuses on sun4u hardware (Sun UltraSparc systems with v9 CPUs). v8 processors and 2.4 kernels should still work with Gentoo, but they are no longer supported by the Gentoo/SPARC team.

SPARC Kernel and Userland ABIs

v9 systems use a pure 64 bit kernel and a pure 32 bit userland. This can cause portability problems when working with low level software if the kernel does not provide working 32 bit compatibility interfaces.

v8 systems use a pure 32 bit kernel and a pure 32 bit userland.

All of the above SPARC systems are big endian, nevertheless the v9 architecture also utilizes little-endian instructions to access data on PCI buses.

Additional SPARC Keywording Requirements

For a package to have the ~sparc keyword added, the following additional items must generally hold:

It is generally expected that anyone who does keywording for SPARC should be on the sparc@ alias.

SPARC Instruction Set and Performance Notes

There are three basic SPARC instruction set standards.

In addition, individual CPU implementations have slight differences — for example, HyperSparc CPUs have relaxed requirements when it comes to scheduling certain instructions. These are relatively minor differences.

If gcc is invoked without any -mcpu parameter, it will generate v7 code. Depending upon the application, this can be anywhere up to five times slower than v9 code when running on an UltraSparc — cryptographic and graphics applications which make heavy use of integer multiplication and division are especially badly hit. For this reason, the comments in Not Filtering Variables are especially important on SPARC.

Contacting the SPARC Team

The SPARC team can be contacted: