gelf_update_rela(3)

gelf_update_rela3

Read and update elf relocation entries with addends

Part of gelf_getrela(3).

Usage

#include <gelf.h>

GElf_Rela *

gelf_getrela(Elf_Data *data, int ndx, GElf_Rela *rela);

int

gelf_update_rela(Elf_Data *data, int ndx, GElf_Rela *rela);

Library

library “libelf”

Overview

These convenience functions are used to retrieve and update class-dependent Elf32_Rela or Elf64_Rela structures in an ELF object.

Argument data is an Elf_Data descriptor associated with a section of type SHT_RELA. Argument ndx is the index of the entry being retrieved or updated. The class-independent GElf_Rela structure is described in gelf(3).

Function gelf_getrela() retrieves the class-dependent entry at index ndx in data buffer data and copies it to the destination pointed to by argument rela after translation to class-independent form.

Function gelf_update_rela() converts the class-independent entry pointed to by argument rela to class-dependent form, and writes it to the entry at index ndx in the data buffer described by argument data. Function gelf_update_rela() signals an error if any of the values in the class-independent representation exceeds the representable limits of the target type.

Return values

Function gelf_getrela() returns the value of argument rela if successful, or NULL in case of an error. Function gelf_update_rela() returns a non-zero value if successful, or zero in case of an error.

Errors

These functions may fail with the following errors:

[ELF_E_ARGUMENT]

Arguments data or rela were NULL.

[ELF_E_ARGUMENT]

Argument ndx was less than zero or larger than the number of entries in the data descriptor.

[ELF_E_ARGUMENT]

Data descriptor data was not associated with a section of type SHT_RELA.

[ELF_E_RANGE]

A value was not representable in the target type.

[ELF_E_VERSION]

The Elf_Data descriptor denoted by argument data is associated with an ELF object with an unsupported version.

Releases

44 releases since FreeBSD 7.0-RELEASE; the text changed 21 times.

  1. 7.0
  2. 7.1
  3. 7.2
  4. 7.3
  5. 7.4
  6. 8.0
  7. 8.1
  8. 8.2
  9. 8.3
  10. 8.4
  11. 9.0
  12. 9.1
  13. 9.2
  14. 9.3
  15. 10.0
  16. 10.1
  17. 10.2
  18. 10.3
  19. 10.4
  20. 11.0–12.0
  21. 12.1
  22. 12.2–16.0

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.