9.3. Sections

The Itanium™ architecture defines two processor-specific section types, as described in Intel® Itanium™ Processor-specific Application Binary Interface, Chapter 4.

9.3.1. Special Sections

The following sections are defined in the Intel® Itanium™ Processor-specific Application Binary Interface.

Table 9-2. ELF Special Sections

NameTypeAttributes
.gotSHT_PROGBITSSHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT
.IA_64.archextSHT_IA_64_EXT0
.IA_64.pltoffSHT_PROGBITSSHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT
.IA_64.unwindSHT_IA_64_UNWINDSHF_ALLOC+SHF_LINK_ORDER
.IA_64.unwind_infoSHT_PROGBITSSHF_ALLOC
.pltSHT_PROGBITSSHF_ALLOC+SHF_EXECINSTR
.sbssSHT_NOBITSSHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT
.sdataSHT_PROGBITSSHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT
.sdata1SHT_PROGBITSSHF_ALLOC+SHF_WRITE+SHF_IA_64_SHORT

.got 

This section holds the Global Offset Table. See `Coding Examples' in Chapter 3, `Special Sections' in Chapter 4, and `Global Offset Table' in Chapter 5 of the processor supplement for more information.

.IA_64.archext 

This section holds product-specific extension bits. The link editor will perform a logical "or" of the extension bits of each object when creating an executable so that it creates only a single .IA_64.archext section in the executable.

.IA_64.pltoff 

This section holds local function descriptor entries.

.IA_64.unwind 

This section holds the unwind function table. The contents are described in the Intel (r) Itanium (tm) Processor Specific ABI.

.IA_64.unwind_info 

This section holds stack unwind and and exception handling information. The exception handling information is programming language specific, and is unspecified.

.plt 

This section holds the procedure linkage table.

.sbss 

This section holds uninitialized data that contribute to the program's memory image. Data objects contained in this section are recommended to be eight bytes or less in size. The system initializes the data with zeroes when the program begins to run. The section occupies no file space, as indicated by the section type SHT_NOBITS. The .sbss section is placed so it may be accessed using short direct addressing (22 bit offset from gp).

.sdata 

This section and the .sdata1 section hold initialized data that contribute to the program's memory image. Data objects contained in this section are recommended to be eight bytes or less in size. The .sdata and .sdata1 sections are placed so they may be accessed using short direct addressing (22 bit offset from gp).

.sdata1 

See .sdata.

9.3.2. Linux Special Sections

The following Linux IA-64 specific sections are defined here.

Table 9-3. Additional Special Sections

NameTypeAttributes
.opdSHT_PROGBITSSHF_ALLOC
.rela.dynSHT_RELASHF_ALLOC
.rela.IA_64.pltoffSHT_RELASHF_ALLOC

.opd 

This section holds function descriptors.

.rela.dyn 

This section holds RELA type relocation information for all sections of a shared library except the PLT.

.rela.IA_64.pltoff 

This section holds relocation information, as described in `Relocation' section in Chapter 4 of System V ABI Update. These relocations are applied to the .IA_64.pltoff section.

9.3.3. Section Types

Section Types are described in the Intel® Itanium™ Processor-specific Application Binary Interface, Chapter 4.2. LSB conforming implementations are not required to use any sections in the range from SHT_IA_64_LOPSREG to SHT_IA_64_HIPSREG. Additionally, LSB conforming implementations are not required to support the SHT_IA_64_PRIORITY_INIT section, beyond the gABI requirements for the handling of unrecognized section types, linking them into a contiguous section in the object file created by the static linker.

9.3.4. Section Attribute Flags

LSB-conforming implementations shall support the section attribute flags specified in Intel® Itanium™ Processor-specific Application Binary Interface, Chapter 4.2.2.

9.3.5. Special Section Types

The special section types SHT_IA64_EXT and SHT_IA64_UNWIND are defined in Intel® Itanium™ Processor-specific Application Binary Interface, Chapter 4.2.1.