Syminfo Table Section
The syminfo section contains multiple entries of the type
Elf32_Syminfo or Elf64_Syminfo. The
.SUNW_syminfo section contains one entry for every entry in the
associated symbol table (sh_link).
If this section is present in an object, additional symbol information is to be found by
taking the symbol index from the associated symbol table and using that to find the
corresponding Elf32_Syminfo entry or Elf64_Syminfo entry
in this section. The associated symbol table and the Syminfo table will
always have the same number of entries.
Index 0 is used to store the current version of the
Syminfo table, which is SYMINFO_CURRENT. Since symbol
table entry 0 is always reserved for the UNDEF symbol
table entry, this usage does not pose any conflicts.
An Syminfo entry has the following format. See
sys/link.h.
typedef struct {
Elf32_Half si_boundto;
Elf32_Half si_flags;
} Elf32_Syminfo;
typedef struct {
Elf64_Half si_boundto;
Elf64_Half si_flags;
} Elf64_Syminfo;-
si_boundto -
An index to an entry in the
.dynamicsection, identified by thesh_infofield, which augments theSyminfoflags. For example, aDT_NEEDEDentry identifies a dynamic object associated with theSyminfoentry. The entries that follow are reserved values forsi_boundto.Name Value Meaning SYMINFO_BT_SELF0xffffSymbol bound to self.
SYMINFO_BT_PARENT0xfffeSymbol bound to parent. The parent is the first object to cause this dynamic object to be loaded.
SYMINFO_BT_NONE0xfffdSymbol has no special symbol binding.
SYMINFO_BT_EXTERN0
xfffcSymbol definition is external.
-
si_flags -
This bit-field can have flags set, as shown in the following table.
Name Value Meaning SYMINFO_FLG_DEPEND0x01Symbol reference has an association to the object containing the definition.
SYMINFO_FLG_FILTER0x02Symbol definition acts as a standard filter.
SYMINFO_FLG_COPY0x04Symbol definition is the result of a copy-relocation.
SYMINFO_FLG_LAZYLOAD0x08Symbol reference is to an object that should be lazily loaded.
SYMINFO_FLG_DIRECTBIND0x10Symbol reference should be bound directly to the definition.
SYMINFO_FLG_NOEXTDIRECT0x20Do not allow an external reference to directly bind to this symbol definition.
SYMINFO_FLG_AUXILIARY0x40Symbol definition acts as an auxiliary filter.
SYMINFO_FLG_INTERPOSE0x80Symbol definition acts as an interposer. This attribute is only applicable for executables.
SYMINFO_FLG_CAP0x100Symbol is associated with capabilities.
SYMINFO_FLG_DEFERRED0x200Symbol is associated with a deferred reference, and should not be included in
BIND_NOWrelocations.SYMINFO_FLG_WEAKFILTER0x400Set in conjunction with
SYMINFO_FLG_FILTERto specify a weak standard filter. At runtime, the behavior is identical toSYMINFO_FLG_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. See Generating Weak Filters