DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
Object files

Special sections

Various sections hold program and control information. ``Special sections'' shows sections that are used by the system and have the indicated types and attributes.

Name Type Attributes
.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
.debug SHT_PROGBITS none
.dynamic SHT_DYNAMIC see below
.dynstr SHT_STRTAB SHF_ALLOC
.dynsym SHT_DYNSYM SHF_ALLOC
.fini SHT_PROGBITS SHF_ALLOC+SHF_EXECINSTR
.fini_array SHT_FINI_ARRAY SHF_ALLOC+SHF_WRITE
.got SHT_PROGBITS see below
.hash SHT_HASH SHF_ALLOC
.init SHT_PROGBITS SHF_ALLOC+SHF_EXECINSTR
.init_array SHT_INIT_ARRAY SHF_ALLOC+SHF_WRITE
.interp SHT_PROGBITS none
.line SHT_PROGBITS none
.note SHT_NOTE none
.plt SHT_PROGBITS see below
.preinit_array SHT_PREINIT_ARRAY SHF_ALLOC+SHF_WRITE
.relname SHT_REL see below
.relaname SHT_RELA see below
.rodata SHT_PROGBITS SHF_ALLOC
.rodata1 SHT_PROGBITS SHF_ALLOC
.shstrtab SHT_STRTAB none
.strtab SHT_STRTAB see below
.symtab SHT_SYMTAB see below
.text SHT_PROGBITS SHF_ALLOC+SHF_EXECINSTR

Special sections


.bss
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.

.comment
This section holds version control information.

.data and .data1
These sections hold initialized data that contribute to the program's memory image.

.debug
This section holds information for symbolic debugging. The contents are unspecified.

.dynamic
This section holds dynamic linking information. The section's attributes will include the SHF_ALLOC bit. Whether the SHF_WRITE bit is set is processor specific.

.dynstr
This section holds strings needed for dynamic linking, most commonly the strings that represent the names associated with symbol table entries.

.dynsym
This section holds the dynamic linking symbol table, as described in ``Symbol table''.

.fini
This section holds executable instructions that contribute to the process termination code. When a program exits normally, the system arranges to execute the code in this section.

.fini_array
This section holds an array of function pointers that contributes to a single termination array for the executable or shared object containing the section.

.got
This section holds the global offset table. See ``Global offset table'' for more information.

.hash
This section holds a symbol hash table. See ``Hash table'' for more information.

.init
This section holds executable instructions that contribute to the process initialization code. When a program starts to run, the system arranges to execute the code in this section before calling the main program entry point (called main in C programs).

.init_array
This section holds an array of function pointers that contributes to a single initialization array for the executable or shared object containing the section.

.interp
This section holds the path name of a program interpreter. See ``Program interpreter'' for more information.

.line
This section holds line number information for symbolic debugging, which describes the correspondence between the source program and the machine code. The contents are unspecified.

.note
This section holds information in the format described in ``Note section''.

.plt
This section holds the procedure linkage table. See ``Procedure linkage table'' for more information.

.preinit_array
This section holds an array of function pointers that contributes to a single pre-initialization array for the executable or shared object containing the section.

.relname and .relaname
These sections hold relocation information, as described in ``Relocation''. 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 would have the name .rel.text or .rela.text.

.rodata and .rodata1
These sections hold read-only data that typically contribute to a non-writable segment in the process image. See ``Program header'' for more information.

.shstrtab
This section holds section names.

.strtab
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 f4SHF_ALLOC bit; otherwise, that bit will be off.

.symtab
This section holds a symbol table, as described in ``Symbol table''. 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 off.

.text
This section holds the ``text,'' or executable instructions, of a program.

Section names with a dot (.) prefix are reserved for the system, although applications may use these sections if their existing meanings are satisfactory. Applications may use names without the prefix to avoid conflicts with system sections. The object file format lets one define sections not shown in the previous list. An object file may 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 instance .FOO.psect is the psect section defined by the FOO architecture. Existing extensions are called by their historical names.


NOTE: For information on processor-specific sections, see the ABI supplement for the desired processor.


Next topic: String table
Previous topic: Rules for linking unrecognized sections

© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 -- 02 June 2005