GTIRB  v2.2.0
GrammaTech Intermediate Representation for Binaries: C++ API
Classes | Typedefs
gtirb::provisional_schema Namespace Reference

Classes

struct  ElfSymbolVersions
 Auxiliary data for ELF symbol versions. This includes the symbol version definitions, the symbol version requirements, and the mapping from symbols to symbol versions. More...
 
struct  Profile
 Schema class for profile aux data. More...
 

Typedefs

using ElfSymbolVersionsEntries = std::map< gtirb::UUID, std::tuple< SymbolVersionId, bool > >
 
using ElfSymVerDefs = std::map< SymbolVersionId, std::tuple< std::vector< std::string >, uint16_t > >
 
using ElfSymVerNeeded = std::map< std::string, std::map< SymbolVersionId, std::string > >
 
using SymbolVersionId = uint16_t
 Version identifiers are 16 bit unsigned integers. More...
 

Typedef Documentation

◆ ElfSymbolVersionsEntries

Map from gtirb::Symbol UUIDs to a tuple of symbol version identifier and hidden attribute.

◆ ElfSymVerDefs

using gtirb::provisional_schema::ElfSymVerDefs = typedef std::map<SymbolVersionId, std::tuple<std::vector<std::string>, uint16_t> >

Map from version identifiers to version definitions. These correspond to ELFxx_Verdef entries in the ELF section .gnu.version_d. The values in the map are tuples containing the list of versions strings and the verdef flags. The verdef flag may be VER_FLG_BASE (0x1), which indicates that the given version definiton is the file itself, and must not be used for matching a symbol. The first element of the list is the version itself, the subsequent elements are predecessor versions.

◆ ElfSymVerNeeded

using gtirb::provisional_schema::ElfSymVerNeeded = typedef std::map<std::string, std::map<SymbolVersionId, std::string> >

Map from dynamic library names to the symbol versions that they need. For each library, we have a map from version identifiers to version strings.

◆ SymbolVersionId

Version identifiers are 16 bit unsigned integers.