Halide 18.0.0
Halide compiler and libraries
|
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. | |
virtual bool | needs_plt_entry (const Relocation &reloc)=0 |
Check to see if this relocation should go through the PLT. | |
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. | |
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. | |
Base class for a target architecture to implement the target specific aspects of linking.
|
virtualdefault |
|
pure virtual |
Add or get an entry to the global offset table (GOT) with a relocation pointing to sym.
|
pure virtual |
Check to see if this relocation should go through the PLT.
|
pure virtual |
Add a PLT entry for a symbol sym defined externally.
Returns a symbol representing the PLT entry.
|
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.