Just‐in‐time linking APIs for relocatable object formats.

Namespaces

Name

Description

aarch32

Generic JITLink utilities for AArch32 (Arm and Thumb) objects.

aarch64

JITLink utilities for AArch64 relocatable objects.

hexagon

JITLink utilities for Hexagon relocatable objects.

loongarch

JITLink utilities for loongarch relocatable objects.

ppc64

JITLink utilities for ppc64 relocatable objects.

riscv

RISC‐V fixup edge kinds and related JITLink utilities.

systemz

JITLink utilities for SystemZ relocatable objects.

x86

JITLink utilities for x86 relocatable objects.

x86_64

JITLink utilities for x86‐64 relocatable objects.

Types

Name

Description

Addressable

Base class for Addressable entities (externals, absolutes, blocks).

BasicLayout

BasicLayout simplifies the implementation of JITLinkMemoryManagers.

Block

An Addressable with content and edges.

BlockAddressMap

Enables easy lookup of blocks by addresses.

DWARFRecordSectionSplitter

LinkGraph pass that splits DWARF Record format sections into per‐header blocks.

EHFrameCFIBlockInspector

Inspect an eh‐frame CFI record.

EHFrameRegistrar

Interface for registering and deregistering eh‐frame sections.

Edge

Represents fixups and constraints in the LinkGraph.

GetImageBaseSymbol

GetImageBaseSymbol is a function object that finds the __ImageBase symbol in the given graph if one is present.

InProcessMemoryManager

A JITLinkMemoryManager that allocates in‐process memory.

JITLinkAsyncLookupContinuation

A function object to call with a resolved symbol map (See AsyncLookupResult) or an error if resolution failed.

JITLinkContext

Holds context for a single jitLink invocation.

JITLinkDylib

Represents a JITDylib as seen by JITLink.

JITLinkError

Base class for errors originating in JIT linker, e.g. missing relocation support.

JITLinkMemoryManager

Manages allocations of JIT memory.

LinkGraph

Graph of sections, blocks, symbols, and edges for one link unit.

PassConfiguration

An LinkGraph pass configuration, consisting of a list of pre‐prune, post‐prune, and post‐fixup passes.

Section

Represents an object file section.

SectionRange

Represents a section address range via a pair of Block pointers to the first and last Blocks in the section.

SimpleSegmentAlloc

A utility class for making simple allocations using JITLinkMemoryManager.

Symbol

Symbol representation.

SymbolAddressMap

A map of addresses to Symbols.

TableManager

A CRTP base for tables built on demand, such as GOT and PLT.

Type Aliases

Name

Description

AnonymousPointerCreator

Creates a new pointer block in the given section and returns an Anonymous symbol pointing to it.

AsyncLookupResult

A map of symbol names to resolved addresses.

LinkGraphPassFunction

A function for mutating LinkGraphs.

LinkGraphPassList

A list of LinkGraph passes.

PointerJumpStubCreator

Create a jump stub that jumps via the pointer at the given symbol and an anonymous symbol pointing to it. Return the anonymous symbol.

SectionOrdinal

Ordinal used to order sections with the same permissions.

TargetFlagsType

Holds target‐specific properties for a symbol.

Enums

Name

Description

Linkage

Describes symbol linkage. This can be used to resolve definition clashes.

Scope

Defines the scope in which this symbol should be visible.

SymbolLookupFlags

Flags for symbol lookup.

Functions

Name

Description

absoluteSymbolsLinkGraph

Create a LinkGraph defining the given absolute symbols.

alignToBlock

alignToBlock overloads

createEHFrameEdgeFixerPass_MachO_arm64

Returns a pass suitable for fixing missing edges in an __eh_frame section in a MachO/x86‐64 object.

createEHFrameEdgeFixerPass_MachO_x86_64

Returns a pass suitable for fixing missing edges in an __eh_frame section in a MachO/x86‐64 object.

createEHFrameSplitterPass_MachO_arm64

Returns a pass suitable for splitting __eh_frame sections in MachO/x86‐64 objects.

createEHFrameSplitterPass_MachO_x86_64

Returns a pass suitable for splitting __eh_frame sections in MachO/x86‐64 objects.

createLinkGraphFromCOFFObject

Create a LinkGraph from an COFF relocatable object.

createLinkGraphFromCOFFObject_x86_64

Create a LinkGraph from an COFF/x86‐64 relocatable object.

createLinkGraphFromELFObject

Create a LinkGraph from an ELF relocatable object.

createLinkGraphFromELFObject_aarch32

Create a LinkGraph from an ELF/arm relocatable object

createLinkGraphFromELFObject_aarch64

Create a LinkGraph from an ELF/aarch64 relocatable object

createLinkGraphFromELFObject_hexagon

Create a LinkGraph from an ELF/Hexagon relocatable object.

createLinkGraphFromELFObject_loongarch

Create a LinkGraph from an ELF/loongarch relocatable object

createLinkGraphFromELFObject_ppc64

Create a LinkGraph from an ELF/ppc64 relocatable object.

createLinkGraphFromELFObject_ppc64le

Create a LinkGraph from an ELF/ppc64le relocatable object.

createLinkGraphFromELFObject_riscv

Create a LinkGraph from an ELF/riscv relocatable object

createLinkGraphFromELFObject_systemz

Create a LinkGraph from an ELF/systemz relocatable object

createLinkGraphFromELFObject_x86

Create a LinkGraph from an ELF/x86 relocatable object

createLinkGraphFromELFObject_x86_64

Create a LinkGraph from an ELF/x86‐64 relocatable object.

createLinkGraphFromMachOObject

Create a LinkGraph from a MachO relocatable object.

createLinkGraphFromMachOObject_arm64

Create a LinkGraph from a MachO/arm64 relocatable object.

createLinkGraphFromMachOObject_x86_64

Create a LinkGraph from a MachO/x86‐64 relocatable object.

createLinkGraphFromObject

Create a LinkGraph from the given object buffer.

createLinkGraphFromXCOFFObject

Create a LinkGraph from an XCOFF relocatable object.

createLinkGraphFromXCOFFObject_ppc64

Create a LinkGraph from an XCOFF/ppc64 relocatable object.

createLookupContinuation

Create a lookup continuation from a function object.

createRelaxationPass_ELF_loongarch

Returns a pass that performs linker relaxation. Should be added to PostAllocationPasses.

createRelaxationPass_ELF_riscv

Returns a pass that performs linker relaxation. Should be added to PostAllocationPasses.

getAnonymousPointerCreator

Get target‐specific AnonymousPointerCreator

getCOFFX86RelocationKindName

Return the string name of the given COFF x86‐64 edge kind.

getEHFrameSection

Returns a pointer to the DWARF eh‐frame section if the graph contains a non‐empty one, otherwise returns null.

getGenericEdgeKindName

Returns the string name of the given generic edge kind, or "unknown" otherwise. Useful for debugging.

getLinkageName

For errors and debugging output.

getMachODefaultRWDataSection

Get a pointer to the standard MachO data section (creates an empty section with RW‐ permissions and standard lifetime if one does not already exist).

getMachODefaultTextSection

Get a pointer to the standard MachO text section (creates an empty section with R‐X permissions and standard lifetime if one does not already exist).

getOrCreateLocalMachOHeader

Gets or creates a MachO header for the current LinkGraph.

getPointerJumpStubCreator

Get target‐specific PointerJumpStubCreator

getScopeName

For debugging output.

isCStringBlock

Return whether the given block contains exactly one valid C‐string.

link

Link the given graph.

link_COFF

Link the given graph.

link_COFF_x86_64

jit‐link the given object buffer, which must be a COFF x86‐64 object file.

link_ELF

Link the given graph.

link_ELF_aarch32

jit‐link the given object buffer, which must be an ELF arm/thumb object file.

link_ELF_aarch64

jit‐link the given object buffer, which must be a ELF aarch64 relocatable object file.

link_ELF_hexagon

jit‐link the given object buffer, which must be a ELF Hexagon relocatable object file.

link_ELF_loongarch

jit‐link the given object buffer, which must be an ELF loongarch object file.

link_ELF_ppc64

jit‐link the given object buffer, which must be a ELF ppc64le object file.

link_ELF_ppc64le

jit‐link the given object buffer, which must be a ELF ppc64le object file.

link_ELF_riscv

jit‐link the given object buffer, which must be a ELF riscv object file.

link_ELF_systemz

jit‐link the given object buffer, which must be a ELF systemz relocatable object file.

link_ELF_x86

jit‐link the given object buffer, which must be a ELF x86 relocatable object file.

link_ELF_x86_64

jit‐link the given object buffer, which must be a ELF x86‐64 object file.

link_MachO

jit‐link the given ObjBuffer, which must be a MachO object file.

link_MachO_arm64

jit‐link the given object buffer, which must be a MachO arm64 object file.

link_MachO_x86_64

jit‐link the given LinkGraph.

link_XCOFF

Link the given graph.

link_XCOFF_ppc64

jit‐link the given object buffer, which must be a XCOFF ppc64 object file.

makeAlignmentError

Create an alignment error for a fixup at the given location.

makeTargetOutOfRangeError

Create an out of range error for the given edge in the given block.

markAllSymbolsLive

Marks all symbols in a graph live. This can be used as a default, conservative mark‐live implementation.

printEdge

Print a description of edge E in block B to OS.

visitEdge

visitEdge overloads

visitExistingEdges

For each edge in the given graph, apply a list of visitors to the edge, stopping when the first visitor's visitEdge method returns true.

operator<<

Stream insertion operators

Created with MrDocs