On UltraSPARC systems, the current provided userland is still 32-bit (even though the processor and the kernel itself are 64-bit). One advantage of this is that nearly all Linux/SPARC applications run unchanged between different Linux/SPARC machines. A 64-bit userland is (at the time of this writing) scheduled to be deployed in the summer of 1999. The 32-bit libraries will remain in the distribution so that users can still run their legacy 32-bit Linux/SPARC binaries.
One side effect of the current UltraSPARC 32-bit userland is that you need to take some care when compiling applications from source. Since the machine (and kernel) is 64-bit, the uname facility will report sparc64 as the system type, instead of just plain sparc (which is what all the non-UltraSPARC systems report).
Several build scripts used to drive the compilation of source packages (such as GNU autoconf ) use this identification string to determine various aspects about the compilation environment (the sizes of various types in the C languages, and so on). The GNU utilities are going to do the wrong thing, because they see a 64-bit SPARC system type being reported, yet the userland runtime is 32-bit.
To overcome this issue, a tool called sparc32 is provided on Linux/SPARC systems. Before you configure and build to compile some source-code package, invoke a subshell with a sparc32 sh command. This will cause all uname queries done in that subshell (and thus by the programs run from it) to report plain sparc as the system type. This solves the problem.
Copyright © 2001 O'Reilly & Associates. All rights reserved.