carta
elf64_newphdr(3)

elf64_newphdr3

Allocate an elf program header table

Part of elf32_newphdr(3).

Usage

Elf32_Phdr *

Elf64_Phdr *

void *

Library

library “libelf”

Overview

These functions allocate an ELF Program Header table for an ELF descriptor. Elf32_Phdr and Elf64_Phdr descriptors are described further in elf(5).

Functions elf32_newphdr() and elf64_newphdr() allocate a table of count Elf32_Phdr and Elf64_Phdr descriptors respectively, discarding any existing program header table already present in the ELF descriptor elf. A value of zero for argument count may be used to delete an existing program header table from an ELF descriptor.

Function gelf_newphdr() will return a table of Elf32_Phdr or Elf64_Phdr with count elements depending on the ELF class of ELF descriptor elf.

The functions set the ELF_F_DIRTY flag on the program header table. All members of the returned array of Phdr structures will be initialized to zero.

After a successful call to these functions, the pointer returned by a prior call to elf32_getphdr() or elf64_getphdr() on the same descriptor elf will no longer be valid.

Return values

The functions a valid pointer if successful, or NULL in case an error was encountered.

Compatibility

The gelf_newphdr() function uses a type of void * for its returned value. This differs from some other implementations of the elf(3) API, which use an unsigned long return type.

Errors

These functions may fail with the following errors:

[ELF_E_ARGUMENT]

Argument elf was NULL.

[ELF_E_ARGUMENT]

Argument elf was not a descriptor for an ELF object.

[ELF_E_CLASS]

ELF descriptor elf was of an unrecognized class.

[ELF_E_RESOURCE]

An out of memory condition was detected.

[ELF_E_SEQUENCE]

An executable header was not allocated for ELF descriptor elf before using these APIs.

History

  • FreeBSD 16.0-CURRENT (2026-10-27) to FreeBSD 12.2-RELEASE: the text shown here
  • FreeBSD 12.1-RELEASE
  • FreeBSD 12.0-RELEASE to FreeBSD 11.1-RELEASE
  • FreeBSD 11.0-RELEASE
  • FreeBSD 10.4-RELEASE
  • FreeBSD 10.3-RELEASE
  • FreeBSD 10.2-RELEASE
  • FreeBSD 10.1-RELEASE
  • FreeBSD 10.0-RELEASE
  • FreeBSD 9.3-RELEASE
  • FreeBSD 9.2-RELEASE
  • FreeBSD 9.1-RELEASE
  • FreeBSD 9.0-RELEASE
  • FreeBSD 8.4-RELEASE
  • FreeBSD 8.3-RELEASE
  • FreeBSD 8.2-RELEASE
  • FreeBSD 8.1-RELEASE
  • FreeBSD 8.0-RELEASE
  • FreeBSD 7.4-RELEASE
  • FreeBSD 7.3-RELEASE
  • FreeBSD 7.2-RELEASE
  • FreeBSD 7.1-RELEASE
  • FreeBSD 7.0-RELEASE

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