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.
-
.conflict
-
.gptab
-
.liblist
-
.lit4
-
.lit8
-
.reginfo
-
.sbss
-
.sdata
-
.tdesc
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