Build Environment

A conforming LSB Build Environment should provide a compiler capable of producing objects that conform to this standard.

Such a compiler should provide the following predefined symbols, pre-processor assertions, and compiler pragmas.

Pre-Defined Preprocessor Symbols

Table C-1. Pre-Defined Preprocessor Symbols

SymbolDescription
__ia64This symbol should be used when testing for the target architecture at compile time. The initial value shall be 1. Further information on the architecture can be determined from the ELF header flags.
_LP64Value is defined as 1. The architecture supports 64 bit longs, long longs, and pointers. Integers are 32 bit.

Note

The gcc compiler currently pre-defines the symbol __LP64__, but not the symbol _LP64. The gcc team are aware of this deficiency.

Pre-Defined Preprocessor Assertions

Preprocessor assertions are deprecated, and conforming applications should not require any preprocessor assertion support. LSB Conforming Build Environments are not required to provide any predefined preprocessor assertions.

Note

The Intel® Itanium ™ Processor-specific Application Binary Interface requires preprocessor assertion support. However, this feature is deprecated in some compilers (most notably gcc), and applications should not use it.

Compiler Pragmas

The Intel® Itanium ™ Processor-specific Application Binary Interface, chapter 7.2.3, defines a number of compiler pragmas specific to the Intel Itanium™ compiler. These pragmas are not required to be supported by other compilers.