Halide 22.0.0 Halide compiler and libraries

Public Member Functions | List of all members
Halide::Internal::Elf::Linker Class Referenceabstract

Base class for a target architecture to implement the target specific aspects of linking. More...

`#include <Elf.h>`

## Public Member Functions
virtual | ~Linker ()=default
virtual uint16_t | get_machine ()=0
virtual uint32_t | get_flags ()=0
virtual uint32_t | get_version ()=0
virtual void | append_dynamic (Section &dynamic)=0
virtual uint64_t | get_got_entry (Section &got, const Symbol &sym)=0
| Add or get an entry to the global offset table (GOT) with a relocation pointing to sym. More...
virtual bool | needs_plt_entry (const Relocation &reloc)=0
| Check to see if this relocation should go through the PLT. More...
virtual Symbol | add_plt_entry (const Symbol &sym, Section &plt, Section &got, const Symbol &got_sym)=0
| Add a PLT entry for a symbol sym defined externally. More...
virtual Relocation | relocate (uint64_t fixup_offset, char *fixup_addr, uint64_t type, const Symbol *sym, uint64_t sym_offset, int64_t addend, Section &got)=0
| Perform a relocation. More...

## Detailed Description

Base class for a target architecture to implement the target specific aspects of linking.

Definition at line 428 of file Elf.h.

## Constructor & Destructor Documentation

## ◆ ~Linker()

virtual Halide::Internal::Elf::Linker::~Linker | ( |  | ) |
| virtualdefault

## Member Function Documentation

## ◆ get_machine()

virtual uint16_t Halide::Internal::Elf::Linker::get_machine | ( |  | ) |
| pure virtual

## ◆ get_flags()

virtual uint32_t Halide::Internal::Elf::Linker::get_flags | ( |  | ) |
| pure virtual

## ◆ get_version()

virtual uint32_t Halide::Internal::Elf::Linker::get_version | ( |  | ) |
| pure virtual

## ◆ append_dynamic()

virtual void Halide::Internal::Elf::Linker::append_dynamic | ( | Section & | dynamic | ) |
| pure virtual

## ◆ get_got_entry()

virtual uint64_t Halide::Internal::Elf::Linker::get_got_entry | ( | Section & | got,
|  | const Symbol & | sym
| ) |  |
| pure virtual

Add or get an entry to the global offset table (GOT) with a relocation pointing to sym.

## ◆ needs_plt_entry()

virtual bool Halide::Internal::Elf::Linker::needs_plt_entry | ( | const Relocation & | reloc | ) |
| pure virtual

Check to see if this relocation should go through the PLT.

## ◆ add_plt_entry()

virtual Symbol Halide::Internal::Elf::Linker::add_plt_entry | ( | const Symbol & | sym,
|  | Section & | plt,
|  | Section & | got,
|  | const Symbol & | got_sym
| ) |  |
| pure virtual

Add a PLT entry for a symbol sym defined externally.

Returns a symbol representing the PLT entry.

## ◆ relocate()

virtual Relocation Halide::Internal::Elf::Linker::relocate | ( | uint64_t | fixup_offset,
|  | char * | fixup_addr,
|  | uint64_t | type,
|  | const Symbol * | sym,
|  | uint64_t | sym_offset,
|  | int64_t | addend,
|  | Section & | got
| ) |  |
| pure virtual

Perform a relocation.

This function may opt to not apply the relocation, and return a new relocation to be performed at runtime. This requires that the section to apply the relocation to is writable at runtime.

The documentation for this class was generated from the following file:

- src/Elf.h