Note Section
A vendor or system engineer might need to mark an object file with special
information that other programs can check for conformance or compatibility. Sections of type
SHT_NOTE
and program header elements of type PT_NOTE
can be used for this purpose.
The note information in sections and program header elements holds any number of entries, as shown in the following figure. For 64-bit objects and 32-bit objects, each entry is an array of 4-byte words in the format of the target processor. Example Note Segment shows the labels to help explain note information organization, but are not part of the specification.
Note Information
-
namesz
andname
-
The first
namesz
bytes in name contain a null-terminated character representation of the entry's owner or originator. No formal mechanism exists for avoiding name conflicts. By convention, vendors use their own name, such as "XYZ Computer Company", as the identifier. If noname
is present,namesz
contains the value zero. Padding is present, if necessary, to ensure 4-byte alignment for the descriptor. Such padding is not included innamesz
. -
descsz
anddesc
-
The first
descsz
bytes indesc
hold the note descriptor. If no descriptor is present,descsz
contains the value zero. Padding is present, if necessary, to ensure 4-byte alignment for the next note entry. Such padding is not included indescsz
. -
type
-
Provides the interpretation of the descriptor. Each originator controls its own types. Multiple interpretations of a single
type
value can exist. A program must recognize both the name and thetype
to understand a descriptor. Types currently must be nonnegative.
The note segment that is shown in the following figure holds two entries.
Example Note Segment
Note:
The system reserves note information with no name (namesz ==
0
) and with a zero-length name (name[0] == '\0'
), but
currently defines no types. All other names must have at least one non-null
character.