C programming tips in SPARC architecture

Summary

When developing C applications on SPARC architecture, such as Solaris, understanding specific system characteristics is crucial. SPARC systems are big-endian by default, meaning the Most Significant Byte of multi-byte data types is stored at the lowest memory address. Furthermore, strict byte-alignment is enforced: short variables must reside at addresses that are multiples of 2, while int variables require addresses that are multiples of 4. Failing to adhere to these alignment rules will result in a "Bus Error" and application core dumps.

If you are a newbie of C programmers in SPARC architecture (For example, working on Solaris), you should pay attention to the following tips:

(1) By default, SPARC is big-endian (For Endianness, you can refer http://en.wikipedia.org/wiki/Endianness). It means for an integer (short, int, long, etc), the MSB will be stored in the lower address, while the LSB will be stored in the higher address. 

(2) SPARC requires byte-alignment. It means for a short (2 bytes long) variable, the start address of the variable must be the multiples of 2, while a int (4 bytes long) variable, the start address of the variable must be the multiples of 4. If the address can't satisfy this condition, the application will core dump, and a "Bus Error" will be reported. For this tip, you can refer Expert C Programming: Deep C Secrets (Bus Error section, page 163 ~ page 164).

 

For more SPARC information, you can refer:

http://en.wikipedia.org/wiki/SPARC;

SPARC Processor Issues.

 

C

  RELATED

No related programming articles found. Browse all programming tutorials and articles.

  COMMENTS

0

No comment for this article.