Dynamic Section
If an object file participates in dynamic linking, its program header table will have
an element of type PT_DYNAMIC
. This segment contains the
.dynamic
section. A special symbol, _DYNAMIC
,
labels the section, which contains an array of the following structures. See
sys/link.h
.
typedef struct { Elf32_Sword d_tag; union { Elf32_Word d_val; Elf32_Addr d_ptr; Elf32_Off d_off; } d_un; } Elf32_Dyn; typedef struct { Elf64_Xword d_tag; union { Elf64_Xword d_val; Elf64_Addr d_ptr; } d_un; } Elf64_Dyn;
For each object with this type, d_tag
controls the
interpretation of d_un
.
-
d_val
-
These objects represent integer values with various interpretations.
-
d_ptr
-
These objects represent program virtual addresses. A file's virtual addresses might not match the memory virtual addresses during execution. When interpreting addresses contained in the dynamic structure, the runtime linker computes actual addresses, based on the original file value and the memory base address. For consistency, files do not contain relocation entries to correct addresses in the dynamic structure.
In general, the value of each dynamic tag determines the interpretation of the
d_un
union. This convention provides for simpler
interpretation of dynamic tags by third party tools. A tag whose value is an even number
indicates a dynamic section entry that uses d_ptr
. A tag
whose value is an odd number indicates a dynamic section entry that uses
d_val
, or that the tag uses neither
d_ptr
nor d_val
. Tags with
values in the following special compatibility ranges do not follow these rules. Third
party tools must handle these exception ranges explicitly on an item by item
basis.
-
Tags whose values are less than the special value
DT_ENCODING
. -
Tags with values that fall between
DT_LOOS
andDT_SUNW_ENCODING
. -
Tags with values that fall between
DT_HIOS
andDT_LOPROC
.
The following table summarizes the tag requirements for dynamic objects. If a tag is marked mandatory, then the dynamic linking array must have an entry of that type. Likewise, optional means an entry for the tag can appear but is not required.
Table 15-8 ELF Dynamic Array Tags
Name | Value | d_un | Executable | Shared Object |
---|---|---|---|---|
|
|
Ignored |
Mandatory |
Mandatory |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Mandatory |
Mandatory |
|
|
|
Mandatory |
Mandatory |
|
|
|
Mandatory |
Mandatory |
|
|
|
Mandatory |
Optional |
|
|
|
Mandatory |
Optional |
|
|
|
Mandatory |
Optional |
|
|
|
Mandatory |
Mandatory |
|
|
|
Mandatory |
Mandatory |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Ignored |
Optional |
|
|
|
Optional |
Optional |
|
|
Ignored |
Ignored |
Optional |
|
|
|
Mandatory |
Optional |
|
|
|
Mandatory |
Optional |
|
|
|
Mandatory |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Ignored |
|
|
Ignored |
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
Ignored |
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
Unspecified |
Unspecified |
Unspecified |
|
|
|
Optional |
Ignored |
|
|
|
Optional |
Ignored |
|
|
|
Optional |
Optional |
|
|
Unspecified |
Unspecified |
Unspecified |
|
|
|
Unspecified |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Unspecified |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
Unspecified |
Unspecified |
Unspecified |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Ignored |
|
|
|
Optional |
Optional |
|
|
|
Ignored |
Ignored |
|
|
|
Optional |
Ignored |
|
|
|
Optional |
Ignored |
|
|
|
Optional |
Ignored |
|
|
|
Optional |
Ignored |
|
|
|
Optional |
Ignored |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
Unspecified |
Unspecified |
Unspecified |
|
|
Unspecified |
Unspecified |
Unspecified |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
Unspecified |
Unspecified |
Unspecified |
|
|
Unspecified |
Unspecified |
Unspecified |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
Unspecified |
Unspecified |
Unspecified |
|
|
d_ptr |
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Optional |
Optional |
|
|
Unspecified |
Unspecified |
Unspecified |
|
|
|
Optional |
Optional |
|
|
|
Unspecified |
Optional |
|
|
|
Optional |
Optional |
|
|
|
Unspecified |
Optional |
|
|
Unspecified |
Unspecified |
Unspecified |
-
DT_NULL
-
Marks the end of the
_DYNAMIC
array. -
DT_NEEDED
-
The
DT_STRTAB
string table offset of a null-terminated string, giving the name of a needed dependency. The dynamic array can contain multiple entries of this type. The relative order of these entries is significant, though their relation to entries of other types is not. See Shared Object Dependencies. -
DT_PLTRELSZ
-
The total size, in bytes, of the relocation entries associated with the procedure linkage table. See Procedure Linkage Table (Processor-Specific).
-
DT_PLTGOT
-
An address associated with the procedure linkage table or the global offset table. See Procedure Linkage Table (Processor-Specific) and Global Offset Table (Processor-Specific).
-
DT_HASH
-
The address of the symbol hash table. This table refers to the symbol table indicated by the
DT_SYMTAB
element. See Hash Table Section. -
DT_STRTAB
-
The address of the string table. Symbol names, dependency names, and other strings required by the runtime linker reside in this table. See String Table Section.
-
DT_SYMTAB
-
The address of the symbol table. See Symbol Table Section.
-
DT_RELA
-
The address of a relocation table. See Relocation Sections.
An object file can have multiple relocation sections. When creating the relocation table for a dynamic object, the link-editor concatenates those sections to form a single table. Although the sections can remain independent in the object file, the runtime linker sees a single table. When the runtime linker creates the process image for an executable file or adds a shared object to the process image, the runtime linker reads the relocation table and performs the associated actions.
This element requires the
DT_RELASZ
andDT_RELAENT
elements also be present. When relocation is mandatory for a file, eitherDT_RELA
orDT_REL
can occur. -
DT_RELASZ
-
The total size, in bytes, of the
DT_RELA
relocation table. -
DT_RELAENT
-
The size, in bytes, of the
DT_RELA
relocation entry. -
DT_STRSZ
-
The total size, in bytes, of the
DT_STRTAB
string table. -
DT_SYMENT
-
The size, in bytes, of the
DT_SYMTAB
symbol entry. -
DT_INIT
-
The address of an initialization function. See Initialization and Termination Sections.
-
DT_FINI
-
The address of a termination function. See Initialization and Termination Sections.
-
DT_SONAME
-
The
DT_STRTAB
string table offset of a null-terminated string, identifying the name of the shared object. See Recording a Shared Object Name. -
DT_RPATH
-
The
DT_STRTAB
string table offset of a null-terminated library search path string. This element's use has been superseded byDT_RUNPATH
. See Directories Searched by the Runtime Linker. -
DT_SYMBOLIC
-
Indicates the object contains symbolic bindings that were applied during its link-edit. This elements use has been superseded by the
DF_SYMBOLIC
flag. See Using the -B symbolic Option. -
DT_REL
-
Similar to
DT_RELA
, except its table has implicit addends. This element requires that theDT_RELSZ
andDT_RELENT
elements also be present. -
DT_RELSZ
-
The total size, in bytes, of the
DT_REL
relocation table. -
DT_RELENT
-
The size, in bytes, of the
DT_REL
relocation entry. -
DT_PLTREL
-
Indicates the type of relocation entry to which the procedure linkage table refers, either
DT_REL
orDT_RELA
. All relocations in a procedure linkage table must use the same relocation. See Procedure Linkage Table (Processor-Specific). This element requires aDT_JMPREL
element also be present. -
DT_DEBUG
-
Used for debugging.
-
DT_TEXTREL
-
Indicates that one or more relocation entries might request modifications to a non-writable segment. This element's use has been superseded by the
DF_TEXTREL
flag. See Position-Independent Code. -
DT_JMPREL
-
The address of relocation entries that are associated solely with the procedure linkage table. See Procedure Linkage Table (Processor-Specific). The separation of these relocation entries enables the runtime linker to ignore these entries when the object is loaded with lazy binding enabled. This element requires the
DT_PLTRELSZ
andDT_PLTREL
elements also be present. -
DT_BIND_NOW
-
Indicates that all relocations for this object must be processed before returning control to the program. The presence of this entry takes precedence over a directive to use lazy binding when specified through the environment or by means of
dlopen
(3C). This element's use has been superseded by theDF_BIND_NOW
flag. See When Relocations are Performed. -
DT_INIT_ARRAY
-
The address of an array of pointers to initialization functions. This element requires that a
DT_INIT_ARRAYSZ
element also be present. See Initialization and Termination Sections. -
DT_FINI_ARRAY
-
The address of an array of pointers to termination functions. This element requires that a
DT_FINI_ARRAYSZ
element also be present. See Initialization and Termination Sections. -
DT_INIT_ARRAYSZ
-
The total size, in bytes, of the
DT_INIT_ARRAY
array. -
DT_FINI_ARRAYSZ
-
The total size, in bytes, of the
DT_FINI_ARRAY
array. -
DT_RUNPATH
-
The
DT_STRTAB
string table offset of a null-terminated library search path string. See Directories Searched by the Runtime Linker. -
DT_FLAGS
-
Flag values specific to this object. See Table 15-9.
-
DT_ENCODING
-
Dynamic tag values that are greater than or equal to
DT_ENCODING
, and less than or equal toDT_LOOS
, follow the rules for the interpretation of thed_un
union. -
DT_PREINIT_ARRAY
-
The address of an array of pointers to pre-initialization functions. This element requires that a
DT_PREINIT_ARRAYSZ
element also be present. This array is processed only in an executable. This array is ignored if contained in a shared object. See Initialization and Termination Sections. -
DT_PREINIT_ARRAYSZ
-
The total size, in bytes, of the
DT_PREINIT_ARRAY
array. -
DT_SYMTAB_SHNDX
-
The address of the
SHT_SYMTAB_SHNDX
section associated with the dynamic symbol table referenced by theDT_SYMTAB
element. See Extended Section Header. -
DT_LOOS
-DT_HIOS
-
Values in this inclusive range are reserved for operating system-specific semantics. All such values follow the rules for the interpretation of the
d_un
union. -
DT_SUNW_AUXILIARY
-
The
DT_STRTAB
string table offset of a null-terminated string that names one or more per-symbol, auxiliary filtees. See Generating Auxiliary Filters. -
DT_SUNW_RTLDINF
-
Reserved for internal use by the runtime-linker.
-
DT_SUNW_FILTER
-
The
DT_STRTAB
string table offset of a null-terminated string that names one or more per-symbol, standard filtees. See Generating Standard Filters. -
DT_SUNW_CAP
-
The address of the capabilities section. See Capabilities Section.
-
DT_SUNW_SYMTAB
-
The address of the symbol table containing local function symbols that augment the symbols provided by
DT_SYMTAB
. These symbols are always adjacent to, and immediately precede the symbols provided byDT_SYMTAB
. See Symbol Table Section. -
DT_SUNW_SYMSZ
-
The combined size of the symbol tables given by
DT_SUNW_SYMTAB
andDT_SYMTAB
. -
DT_SUNW_ENCODING
-
Dynamic tag values that are greater than or equal to
DT_SUNW_ENCODING
, and less than or equal toDT_HIOS
, follow the rules for the interpretation of thed_un
union. -
DT_SUNW_SORTENT
-
The size, in bytes, of the
DT_SUNW_SYMSORT
,DT_SUNW_SYMNSORT
, andDT_SUNW_TLSSORT
symbol sort entries. -
DT_SUNW_SYMSORT
-
The address of the array of symbol table indices that provide access to function and variable symbols in the symbol table referenced by
DT_SUNW_SYMTAB
, sorted by value. See Symbol Sort Sections. -
DT_SUNW_SYMSORTSZ
-
The total size, in bytes, of the
DT_SUNW_SYMSORT
array. -
DT_SUNW_TLSSORT
-
The address of the array of symbol table indices that provide access to thread local symbols in the symbol table referenced by
DT_SUNW_SYMTAB
, sprted by value. See Symbol Sort Sections. -
DT_SUNW_TLSSORTSZ
-
The total size, in bytes, of the
DT_SUNW_TLSSORT
array. -
DT_SUNW_CAPINFO
-
The address of the array of symbol table indices that provide the association of symbols to their capability requirements. See Capabilities Section.
-
DT_SUNW_STRPAD
-
The total size, in bytes, of the unused reserved space at the end of the dynamic string table. If
DT_SUNW_STRPAD
is not present in an object, no reserved space is available. -
DT_SUNW_CAPCHAIN
-
The address of the array of capability family indices. Each family of indices is terminated with a
0
entry. -
DT_SUNW_LDMACH
-
The machine architecture of the link-editor that produced the object.
DT_SUNW_LDMACH
uses the sameEM_
integer values used for thee_machine
field of the ELF header. See ELF Header.DT_SUNW_LDMACH
is used to identify the class, 32-bit or 64-bit, and the platform of the link-editor that built the object. This information is not used by the runtime linker, but exists purely for documentation. -
DT_SUNW_SYMTAB_SHNDX
-
The address of the
SHT_SYMTAB_SHNDX
section associated with the dynamic symbol table referenced by theDT_SUNW_SYMTAB
element. See Extended Section Header. -
DT_SUNW_CAPCHAINENT
-
The size, in bytes, of the
DT_SUNW_CAPCHAIN
entries. -
DT_SUNW_DEFERRED
-
The
DT_STRTAB
string table offset of a null terminated deferred dependency name. This name is associated to per-symbol deferred references. See Deferred Symbol References. -
DT_SUNW_CAPCHAINSZ
-
The total size, in bytes, or the
DT_SUNW_CAPCHAIN
chain. -
DT_SUNW_PHNAME
-
Array of
DT_STRTAB
string table offsets, one per program header array element, providing program header names. See Program Header Name Section. -
DT_SUNW_PARENT
-
The
DT_STRTAB
string table offset of a null terminated parent object name. The name provided is a basename, containing only a file name without any path component. See Parent Objects. -
DT_SUNW_SX_ASLR
-
The Address Space Layout Randomization (ASLR) security extension (SX) values specific to this object. See Requesting Security Extensions, and Table 15-12.
-
DT_SUNW_RELAX
-
The validity checking relaxation options, that were specified with the link-editor's
-z relax
option, when the object was built. See Table 15-13. -
DT_SUNW_KMOD
-
Provides kernel module specific information.
-
DT_SUNW_SX_NXHEAP
-
The non-executable heap (NXHEAP) security extension (SX) values specific to this object. See Requesting Security Extensions, and Table 15-12.
-
DT_SUNW_SX_NXSTACK
-
The non-executable stack (NXSTACK) security extension (SX) values specific to this object. See Requesting Security Extensions, and Table 15-12.
-
DT_SUNW_SX_ADIHEAP
-
The ADI memory allocator (ADIHEAP) security extension (SX) values specific to this object. See Requesting Security Extensions, and Table 15-12.
-
DT_SUNW_SX_ADISTACK
-
The ADI stack protection (ADISTACK) security extension (SX) values specific to this object. See Requesting Security Extensions, and Table 15-12.
-
DT_SUNW_SX_SSBD
-
The speculative store bypass disable (SSBD) security extension (SX) values specific to this object. See Requesting Security Extensions, and Table 15-12.
-
DT_SUNW_SYMNSORT
-
The address of the array of symbol table indices that provide access to function and variable symbols in the symbol table referenced by
DT_SUNW_SYMTAB
, sorted by name. See Symbol Sort Sections. -
DT_SUNW_SYMNSORTSZ
-
The total size, in bytes, of the
DT_SUNW_SYMNSORT
array. -
DT_VALRNGLO
-DT_VALRNGHI
-
Values in this inclusive range use the
d_un.d_val
field of the dynamic structure. -
DT_CHECKSUM
-
A simple checksum of selected sections of the object. See
gelf_checksum
(3ELF). -
DT_MOVEENT
-
The size, in bytes, of the
DT_MOVETAB
move entries. -
DT_MOVESZ
-
The total size, in bytes, of the
DT_MOVETAB
table. -
DT_POSFLAG_1
-
Various state flags which are applied to the
DT_
element immediately following. See Table 15-11. -
DT_SYMINSZ
-
The total size, in bytes, of the
DT_SYMINFO
table. -
DT_SYMINENT
-
The size, in bytes, of the
DT_SYMINFO
information entry. -
DT_ADDRRNGLO
-DT_ADDRRNGHI
-
Values in this inclusive range use the
d_un.d_ptr
field of the dynamic structure. If any adjustment is made to the ELF object after the object has been built, these entries must be updated accordingly. -
DT_CONFIG
-
The
DT_STRTAB
string table offset of a null-terminated string defining a configuration file. The configuration file is only meaningful in an executable, and is typically unique to this object. See Configuring the Default Search Paths. -
DT_DEPAUDIT
-
The
DT_STRTAB
string table offset of a null-terminated string defining one or more audit libraries. See Runtime Linker Auditing Interface. -
DT_AUDIT
-
The
DT_STRTAB
string table offset of a null-terminated string defining one or more audit libraries. See Runtime Linker Auditing Interface. -
DT_MOVETAB
-
The address of a move table. This element requires that the
DT_MOVEENT
andDT_MOVESZ
elements also be present. See Move Section. -
DT_SYMINFO
-
The address of the symbol information table. This element requires that the
DT_SYMINENT
andDT_SYMINSZ
elements also be present. See Syminfo Table Section. -
DT_VERSYM
-
The address of the version symbol section table. See Version Symbol Section.
-
DT_RELACOUNT
-
Indicates the
RELATIVE
relocation count, which is produced from the concatenation of allElf32_Rela
, orElf64_Rela
relocations. See Combined Relocation Sections. -
DT_RELCOUNT
-
Indicates the
RELATIVE
relocation count, which is produced from the concatenation of allElf32_Rel
relocations. See Combined Relocation Sections. -
DT_FLAGS_1
-
Flag values specific to this object. See Table 15-10.
-
DT_VERDEF
-
The address of the version definition table. Elements within this table contain indexes into the string table
DT_STRTAB
. This element requires that theDT_VERDEFNUM
element also be present. See Version Definition Section. -
DT_VERDEFNUM
-
The number of entries in the
DT_VERDEF
table. -
DT_VERNEED
-
The address of the version dependency table. Elements within this table contain indexes into the string table
DT_STRTAB
. This element requires that theDT_VERNEEDNUM
element also be present. See Version Dependency Section. -
DT_VERNEEDNUM
-
The number of entries in the
DT_VERNEEDNUM
table. -
DT_LOPROC
-DT_HIPROC
-
Values in this inclusive range are reserved for processor-specific semantics.
-
DT_SPARC_REGISTER
-
The index of an
STT_SPARC_REGISTER
symbol within theDT_SYMTAB
symbol table. One dynamic entry exists for everySTT_SPARC_REGISTER
symbol in the symbol table. See Register Symbols. -
DT_AUXILIARY
-
The
DT_STRTAB
string table offset of a null-terminated string that names one or more auxiliary filtees. See Generating Auxiliary Filters. -
DT_FILTER
-
The
DT_STRTAB
string table offset of a null-terminated string that names one or more standard filtees. See Generating Standard Filters.
Except for the DT_NULL
element at the end of the dynamic array and
the relative order of DT_NEEDED
and DT_POSFLAG_1
elements, entries can appear in any order. Tag values not appearing in the table are
reserved.
Table 15-9
ELF Dynamic Flags, DT_FLAGS
Name | Value | Meaning |
---|---|---|
|
|
|
|
|
Symbolic symbol resolution required |
|
|
Text relocations exist |
|
|
Non-lazy binding required |
|
|
Object uses static thread-local storage scheme |
-
DF_ORIGIN
-
Indicates that the object requires
$ORIGIN
processing. See Locating Associated Dependencies. -
DF_SYMBOLIC
-
Indicates that the object contains symbolic bindings that were applied during its link-edit. See Using the -B symbolic Option.
-
DF_TEXTREL
-
Indicates that one or more relocation entries might request modifications to a non-writable segment. See Position-Independent Code.
-
DF_BIND_NOW
-
Indicates that all relocations for this object must be processed before returning control to the program. The presence of this entry takes precedence over a directive to use lazy binding when specified through the environment or by means of
dlopen
(3C). See When Relocations are Performed. -
DF_STATIC_TLS
-
Indicates that the object contains code using a static thread-local storage scheme. Static thread-local storage should not be used in objects that are dynamically loaded, either using
dlopen
(3C), or using lazy loading.
Table 15-10
ELF Dynamic Flags, DT_FLAGS_1
Name | Value | Meaning |
---|---|---|
|
|
Perform complete relocation processing. |
|
|
Unused. |
|
|
Indicate object is a member of a group. |
|
|
Object cannot be deleted from a process. |
|
|
Ensure immediate loading of filtees. |
|
|
Objects' initialization occurs first. |
|
|
Object can not be used with
|
|
|
|
|
|
Direct bindings enabled. |
|
|
Object is an interposer. |
|
|
Ignore the default library search path. |
|
|
Unused. |
|
|
Filtee terminates filter's search. |
|
|
Displacement relocation has been carried out. |
|
|
Displacement relocation pending. |
|
|
Object contains non-direct bindings. |
|
|
Internal use. |
|
|
Internal use. |
|
|
Internal use. |
|
|
Object has been modified since originally built. |
|
|
Internal use. |
|
|
Individual symbol interposers exist. |
|
|
Establish global auditing. |
|
|
Singleton symbols exist. |
|
|
Object is a stub. |
|
|
Object is a position-independent executable. |
|
|
Object is a kernel module. |
|
|
Object is a weak standard filter. |
-
DF_1_NOW
-
Indicates that all relocations for this object must be processed before returning control to the program. The presence of this flag takes precedence over a directive to use lazy binding when specified through the environment or by means of
dlopen
(3C). See When Relocations are Performed. -
DF_1_GROUP
-
Indicates that the object is a member of a group. This flag is recorded in the object using the link-editor's
-B group
option. See Object Hierarchies. -
DF_1_NODELETE
-
Indicates that the object cannot be deleted from a process. If the object is loaded in a process, either directly or as a dependency, with
dlopen
(3C), the object cannot be unloaded withdlclose
(3C). This flag is recorded in the object using the link-editor-z nodelete
option. -
DF_1_LOADFLTR
-
Meaningful only for filters. Indicates that all associated filtees be processed immediately. This flag is recorded in the object using the link-editor's
-z loadfltr
option. See Filtee Processing. -
DF_1_INITFIRST
-
Indicates that this object's initialization section be run before any other objects loaded. This flag is intended for specialized system libraries only, and is recorded in the object using the link-editor's
-z initfirst
option. -
DF_1_NOOPEN
-
Indicates that the object cannot be added to a running process with
dlopen
(3C). This flag is recorded in the object using the link-editor's-z nodlopen
option. -
DF_1_ORIGIN
-
Indicates that the object requires
$ORIGIN
processing. See Locating Associated Dependencies. -
DF_1_DIRECT
-
Indicates that the object should use direct binding information. See Direct Bindings.
-
DF_1_INTERPOSE
-
Indicates that the objects symbol table is to interpose before all symbols except the primary load object, which is typically the executable. This flag is recorded with the link-editor's
-z interpose
option. See Runtime Interposition. -
DF_1_NODEFLIB
-
Indicates that the search for dependencies of this object ignores any default library search paths. This flag is recorded in the object using the link-editor's
-z nodefaultlib
option. See Directories Searched by the Runtime Linker. -
DF_1_ENDFILTEE
-
Meaningful only for filtees. Terminates a filters search for any further filtees. This flag is recorded in the object using the link-editor's
-z endfiltee
option. See Reducing Capability Filtee Searches. -
DF_1_DISPRELDNE
-
Indicates that this object has displacement relocations applied. The displacement relocation records no longer exist within the object as the records were discarded once the relocation was applied. See Displacement Relocations.
-
DF_1_DISPRELPND
-
Indicates that this object has displacement relocations pending. The displacement relocations exits within the object so the relocation can be completed at runtime. See Displacement Relocations.
-
DF_1_NODIRECT
-
Indicates that this object contains symbols that can not be directly bound to. See SYMBOL_SCOPE and SYMBOL_VERSION Directives.
-
DF_1_IGNMULDEF
-
Reserved for internal use by the kernel runtime-linker.
-
DF_1_NOKSYMS
-
Reserved for internal use by the kernel runtime-linker.
-
DF_1_NOHDR
-
Reserved for internal use by the kernel runtime-linker.
-
DF_1_EDITED
-
Indicates that this object has been edited or has been modified since the objects original construction by the link-editor. This flag serves as a warning to debuggers that an object might have had an arbitrary change made since the object was originally built.
-
DF_1_NORELOC
-
Reserved for internal use by the kernel runtime-linker.
-
DF_1_SYMINTPOSE
-
Indicates that the object contains individual symbols that should interpose before all symbols except the primary load object, which is typically the executable. This flag is recorded when the object is built using a
mapfile
and theINTERPOSE
keyword. See SYMBOL_SCOPE and SYMBOL_VERSION Directives. -
DF_1_GLOBAUDIT
-
Indicates that the executable requires global auditing. See Recording Global Auditors.
-
DF_1_SINGLETON
-
Indicates that the object defines, or makes reference to
singleton
symbols. See SYMBOL_SCOPE and SYMBOL_VERSION Directives. -
DF_1_STUB
-
Indicates that the object is a stub. See Stub Objects.
-
DF_1_PIE
-
Indicates that the object is a position-independent executable, which is a special case of a shared object, that specifies an interpreter. See the link-editor's
-z type
option. -
DF_1_KMOD
-
Indicates that the object is a kernel module, which is a special case of a relocatable object, that contains dynamic linking information. See the link-editor's
-z type
option. -
DF_1_WEAKFILTER
-
Indicates that the object is a weak standard filter. At runtime, the behavior is identical to a normal standard filter. At link-edit time, if unused dependency processing is active, a weak filter symbol can be ignored in favor of the same symbol from the target filtee given by
DT_FILTER
. See Generating Weak Filters.
Table 15-11
ELF Dynamic Position Flags,
DT_POSFLAG_1
Name | Value | Meaning |
---|---|---|
|
|
Identify lazy loaded dependency. |
|
|
Identify group dependency. |
|
|
Identify deferred dependency. |
|
|
Resolve to existing dependency. |
-
DF_P1_LAZYLOAD
-
Identifies the following
DT_NEEDED
entry as an object to be lazy loaded. This flag is recorded in the object as a consequence of using the link-editor's-z lazyload
option. See Lazy Loading of Dynamic Dependencies. -
DF_P1_GROUPPERM
-
Identifies the following
DT_NEEDED
entry as an object to be loaded as a group. This flag is recorded in the object as a consequence of using the link-editor's-z groupperm
option. See Isolating a Group. -
DF_P1_DEFERRED
-
Identifies the following
DT_NEEDED
entry as a deferred dependency. This flag is recorded in the object as a consequence of using the link-editor's-z deferred
option. See Providing an Alternative to dlopen. -
DF_P1_EXISTING
-
Identifies that the following
DT_SUNW_FILTER
entry can be satisfied from an existing process dependency. Internal use.
Table 15-12
ELF Security Extension (SX) Values,
DT_SUNW_SX_xxx
Name | Value | Meaning |
---|---|---|
|
|
Follow system default |
|
|
Disable security extension |
|
|
Enable security extension |
DV_SUNW_SX_DISABLE
and
DV_SUNW_SX_ENABLE
are recorded in the security extension dynamic
elements using the link-editor's -z sx
option. The security
extension dynamic elements are: DT_SUNW_SX_ASLR
,
DT_SUNW_SX_NXHEAP
, DT_SUNW_SX_NXSTACK
,
DT_SUNW_SX_ADIHEAP
, and
DT_SUNW_SX_ADISTACK
.
Table 15-13
ELF Dynamic Relaxation Flags,
DT_SUNW_RELAX
|
|
Relocation symbols substituted for discarded
|
|
|
Section adjacency verification disabled |
|
|
Symbol/section boundary verification disabled |
|
|
Tentative (common) data with different size or different alignment enabled |
DF_SUNW_RELAX_
flags are recorded in the object as a
consequence of using the link-editor's -z relax
option.