Various sections hold program and control information. Sections in the list below are used by the system and have the indicated types and attributes.
Table 7-16 Special Sections
Name |
Type |
Attribute |
---|---|---|
.bss |
SHT_NOBITS |
SHF_ALLOC + SHF_WRITE |
.comment |
SHT_PROGBITS |
None |
.data |
SHT_PROGBITS |
SHF_ALLOC + SHF_WRITE |
.data1 |
SHT_PROGBITS |
SHF_ALLOC + SHF_WRITE |
.dynamic |
SHT_DYNAMIC |
SHF_ALLOC + SHF_WRITE |
.dynstr |
SHT_STRTAB |
SHF_ALLOC |
.dynsym |
SHT_DYNSYM |
SHF_ALLOC |
.fini |
SHT_PROGBITS |
SHF_ALLOC + SHF_EXECINSTR |
.got |
SHT_PROGBITS | |
.hash |
SHT_HASH |
SHF_ALLOC |
.init |
SHT_PROGBITS |
SHF_ALLOC + SHF_EXECINSTR |
.interp |
SHT_PROGBITS | |
.note |
SHT_NOTE |
None |
.plt |
SHT_PROGBITS | |
.rela |
SHT_RELA |
None |
.relname |
SHT_REL |
See "Relocation" |
.relaname |
SHT_RELA |
See "Relocation" |
.rodata |
SHT_PROGBITS |
SHF_ALLOC |
.rodata1 |
SHT_PROGBITS |
SHF_ALLOC |
.shstrtab |
SHT_STRTAB |
None |
.strtab |
SHT_STRTAB |
See description below |
.symtab |
SHT_SYMTAB |
See "Symbol Table" |
.text |
SHT_PROGBITS |
SHF_ALLOC + SHF_EXECINSTR |
.SUNW_bss |
SHT_NOBITS |
SHF_ALLOC + SHF_WRITE |
.SUNW_heap |
SHT_PROGBITS |
SHF_ALLOC + SHF_WRITE |
.SUNW_move |
SHT_SUNW_move |
SHF_ALLOC |
.SUNW_reloc |
SHT_rel SHT_rela |
SHF_ALLOC |
.SUNW_syminfo |
SHT_SUNW_syminfo |
SHF_ALLOC |
.SUNW_version |
SHT_SUNW_verdef SHT_SUNW_verneed SHT_SUNW_versym |
SHF_ALLOC |
This section holds uninitialized data that contribute to the program's memory image. By definition, the system initializes the data with zeros when the program begins to run. The section occupies no file space, as indicated by the section type, SHT_NOBITS.
This section holds comment information.
These sections hold initialized data that contribute to the program's memory image.
This section holds dynamic linking information.
This section holds strings needed for dynamic linking, most commonly the strings that represent the names associated with symbol table entries.
This section holds the dynamic linking symbol table. See "Symbol Table" for details.
This section holds executable instructions that contribute to the process termination code. That is, when a program exits normally, the system arranges to execute the code in this section.
This section holds the global offset table. See "Global Offset Table (Processor-Specific)" for more information.
This section holds a symbol hash table. See "Hash Table" for more information.
This section holds executable instructions that contribute to the process initialization code. That is, when a program starts to run, the system arranges to execute the code in this section before calling the program entry point.
This section holds the path name of a program interpreter. See "Program Interpreter" for more information.
This section holds information in the format described in "Note Section".
This section holds the procedure linkage table. See "Procedure Linkage Table (Processor-Specific)" for more information.
This section holds register relocations.
These sections hold relocation information, as "Relocation" describes. If the file has a loadable segment that includes relocation, the sections' attributes will include the SHF_ALLOC bit; otherwise, that bit will be off. Conventionally, name is supplied by the section to which the relocations apply. Thus a relocation section for .text normally will have the name .rel.text or .rela.text.
These sections hold read-only data that typically contribute to a non-writable segment in the process image. See "Program Header" for more information.
This section holds section names.
This section holds strings, most commonly the strings that represent the names associated with symbol table entries. If the file has a loadable segment that includes the symbol string table, the section's attributes will include the SHF_ALLOC bit; otherwise, that bit will be turned off.
This section holds a symbol table, as "Symbol Table" describes. If the file has a loadable segment that includes the symbol table, the section's attributes will include the SHF_ALLOC bit; otherwise, that bit will be turned off.
This section holds the text or executable instructions of a program.
This section holds partially initialized data for non-executable shared object that contribute to the program's memory image. The data will be initilized at runtime. The section occupies no file space, as indicated by the section type, SHT_NOBITS.
This section holds the heap of a dynamic executable created from dldump(3X).
This section holds the additional information for partially initialized data. See "Move Section"
This section holds relocation information, as "Relocation" describes. This section is a concatenation of relocation sections that provides better locality of reference of the individual relocation records. Only the offset of the relocation record itself is meaningful, thus the section sh_info value is zero.
This section holds additional symbol table information. See "Syminfo Table" for more information.
Sections of this name hold versioning information. See "Versioning Information" for more information.
Section names with a dot (.) prefix are reserved for the system, although applications can use these sections if their existing meanings are satisfactory. Applications can use names without the prefix to avoid conflicts with system sections. The object file format lets one define sections not in the list above. An object file can have more than one section with the same name.
Section names reserved for a processor architecture are formed by placing an abbreviation of the architecture name ahead of the section name. The name should be taken from the architecture names used for e_machine. For example, .Foo.psect is the psect section defined by the FOO architecture.
Existing extensions use their historical names.
Preexisting Extensions:
.conflict |
.liblist |
.lit8 |
.sdata |
.debug |
.line |
.reginfo |
.stab |
.gptab |
.lit4 |
.sbss |
.tdesc |