enoft Manual

TNS/E Native Object Files
eNOFT Manual527507-005
A-4
Summary of the Contents of an Object File
User Data Sections (.data, .sdata, .bss, .sbss, .rdata, .srdata, and .rconst)
A .tandem_info section (possibly abbreviated to four bytes)
The .procinfo and .procnames Sections
DWARF Symbol Table Sections
Relocation Table Sections (.rela.x, where .x could be any of the section names
listed above)
ELF Symbol Table Sections (.symtab and .strtab)
Source RTDU Sections (.rtdu.index, .rtdu.names, and .rtdu.data)
ELF Section Headers and the .shstrtab Section
This appendix does, however, specify the ordering of sections within loadfiles and
import libraries, as shown in Contents of a Loadfile or Import Library on page A-5.
It is also possible for the compilers or assembler to create sections of names not listed
here. The characteristics of such sections, as listed in their ELF section headers,
would tell the linker what to do with them, and they would be propagated by the linker
into its output file.
Linkfiles also contain a section named .comment, but it is discarded by the linker.
In a loadfile, some of the sections are organized into segments. There is always a text
segment, which comes at the beginning of the file. There may be a gateway segment.
There may be either one or two data segments. When there are two data segments,
they are called the data constant segment, followed by the data variable segment.
The first column in the table on the following page lists the items that may be found in a
loadfile, in the order they would exist. Note that the text segment is always the first
segment in the file, and that there may be one or two data segments. Note that the
placement of the .gateway section (equivalent to the gateway segment) depends on
whether the loadfile is a program or a DLL, and that the placement of the .data section
depends on whether there are one or two data segments. The last two columns have
an “X” next to those sections that may be referenced with 22-bit global pointer (GP) -
relative addressing, or that may be found in import libraries, respectively.
The segments are loaded into virtual memory. The layout in virtual memory is the
same as in the file within each segment, but there are choices for where each segment
is placed into virtual memory.
The .sbss and .bss sections don’t actually take up any space in loadfiles. The table
only shows where they would be placed in virtual memory.