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_LOOSandDT_SUNW_ENCODING. -
Tags with values that fall between
DT_HIOSandDT_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
_DYNAMICarray. -
DT_NEEDED -
The
DT_STRTABstring 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_SYMTABelement. 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_RELASZandDT_RELAENTelements also be present. When relocation is mandatory for a file, eitherDT_RELAorDT_RELcan occur. -
DT_RELASZ -
The total size, in bytes, of the
DT_RELArelocation table. -
DT_RELAENT -
The size, in bytes, of the
DT_RELArelocation entry. -
DT_STRSZ -
The total size, in bytes, of the
DT_STRTABstring table. -
DT_SYMENT -
The size, in bytes, of the
DT_SYMTABsymbol 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_STRTABstring table offset of a null-terminated string, identifying the name of the shared object. See Recording a Shared Object Name. -
DT_RPATH -
The
DT_STRTABstring 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_SYMBOLICflag. See Using the -B symbolic Option. -
DT_REL -
Similar to
DT_RELA, except its table has implicit addends. This element requires that theDT_RELSZandDT_RELENTelements also be present. -
DT_RELSZ -
The total size, in bytes, of the
DT_RELrelocation table. -
DT_RELENT -
The size, in bytes, of the
DT_RELrelocation entry. -
DT_PLTREL -
Indicates the type of relocation entry to which the procedure linkage table refers, either
DT_RELorDT_RELA. All relocations in a procedure linkage table must use the same relocation. See Procedure Linkage Table (Processor-Specific). This element requires aDT_JMPRELelement 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_TEXTRELflag. 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_PLTRELSZandDT_PLTRELelements 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_NOWflag. 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_ARRAYSZelement 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_ARRAYSZelement also be present. See Initialization and Termination Sections. -
DT_INIT_ARRAYSZ -
The total size, in bytes, of the
DT_INIT_ARRAYarray. -
DT_FINI_ARRAYSZ -
The total size, in bytes, of the
DT_FINI_ARRAYarray. -
DT_RUNPATH -
The
DT_STRTABstring 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_ununion. -
DT_PREINIT_ARRAY -
The address of an array of pointers to pre-initialization functions. This element requires that a
DT_PREINIT_ARRAYSZelement 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_ARRAYarray. -
DT_SYMTAB_SHNDX -
The address of the
SHT_SYMTAB_SHNDXsection associated with the dynamic symbol table referenced by theDT_SYMTABelement. 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_ununion. -
DT_SUNW_AUXILIARY -
The
DT_STRTABstring 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_STRTABstring 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_SYMTABandDT_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_ununion. -
DT_SUNW_SORTENT -
The size, in bytes, of the
DT_SUNW_SYMSORT,DT_SUNW_SYMNSORT, andDT_SUNW_TLSSORTsymbol 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_SYMSORTarray. -
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_TLSSORTarray. -
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_STRPADis 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
0entry. -
DT_SUNW_LDMACH -
The machine architecture of the link-editor that produced the object.
DT_SUNW_LDMACHuses the sameEM_integer values used for thee_machinefield of the ELF header. See ELF Header.DT_SUNW_LDMACHis 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_SHNDXsection associated with the dynamic symbol table referenced by theDT_SUNW_SYMTABelement. See Extended Section Header. -
DT_SUNW_CAPCHAINENT -
The size, in bytes, of the
DT_SUNW_CAPCHAINentries. -
DT_SUNW_DEFERRED -
The
DT_STRTABstring 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_CAPCHAINchain. -
DT_SUNW_PHNAME -
Array of
DT_STRTABstring table offsets, one per program header array element, providing program header names. See Program Header Name Section. -
DT_SUNW_PARENT -
The
DT_STRTABstring 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 relaxoption, 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_SYMNSORTarray. -
DT_VALRNGLO-DT_VALRNGHI -
Values in this inclusive range use the
d_un.d_valfield 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_MOVETABmove entries. -
DT_MOVESZ -
The total size, in bytes, of the
DT_MOVETABtable. -
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_SYMINFOtable. -
DT_SYMINENT -
The size, in bytes, of the
DT_SYMINFOinformation entry. -
DT_ADDRRNGLO-DT_ADDRRNGHI -
Values in this inclusive range use the
d_un.d_ptrfield 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_STRTABstring 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_STRTABstring table offset of a null-terminated string defining one or more audit libraries. See Runtime Linker Auditing Interface. -
DT_AUDIT -
The
DT_STRTABstring 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_MOVEENTandDT_MOVESZelements also be present. See Move Section. -
DT_SYMINFO -
The address of the symbol information table. This element requires that the
DT_SYMINENTandDT_SYMINSZelements 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
RELATIVErelocation count, which is produced from the concatenation of allElf32_Rela, orElf64_Relarelocations. See Combined Relocation Sections. -
DT_RELCOUNT -
Indicates the
RELATIVErelocation count, which is produced from the concatenation of allElf32_Relrelocations. 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_VERDEFNUMelement also be present. See Version Definition Section. -
DT_VERDEFNUM -
The number of entries in the
DT_VERDEFtable. -
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_VERNEEDNUMelement also be present. See Version Dependency Section. -
DT_VERNEEDNUM -
The number of entries in the
DT_VERNEEDNUMtable. -
DT_LOPROC-DT_HIPROC -
Values in this inclusive range are reserved for processor-specific semantics.
-
DT_SPARC_REGISTER -
The index of an
STT_SPARC_REGISTERsymbol within theDT_SYMTABsymbol table. One dynamic entry exists for everySTT_SPARC_REGISTERsymbol in the symbol table. See Register Symbols. -
DT_AUXILIARY -
The
DT_STRTABstring table offset of a null-terminated string that names one or more auxiliary filtees. See Generating Auxiliary Filters. -
DT_FILTER -
The
DT_STRTABstring 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
$ORIGINprocessing. 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 groupoption. 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 nodeleteoption. -
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 loadfltroption. 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 initfirstoption. -
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 nodlopenoption. -
DF_1_ORIGIN -
Indicates that the object requires
$ORIGINprocessing. 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 interposeoption. 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 nodefaultliboption. 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 endfilteeoption. 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
mapfileand theINTERPOSEkeyword. 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
singletonsymbols. 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 typeoption. -
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 typeoption. -
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_NEEDEDentry as an object to be lazy loaded. This flag is recorded in the object as a consequence of using the link-editor's-z lazyloadoption. See Lazy Loading of Dynamic Dependencies. -
DF_P1_GROUPPERM -
Identifies the following
DT_NEEDEDentry 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 grouppermoption. See Isolating a Group. -
DF_P1_DEFERRED -
Identifies the following
DT_NEEDEDentry as a deferred dependency. This flag is recorded in the object as a consequence of using the link-editor's-z deferredoption. See Providing an Alternative to dlopen. -
DF_P1_EXISTING -
Identifies that the following
DT_SUNW_FILTERentry 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.