---
name: "gelf_checksum"
section: "3"
platform: "linux"
package: "libelf"
version: "0.197-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/gelf_checksum"
---

# gelf\_checksum(3)

compute the checksum for an ELF object file

## NAME

gelf\_checksum - compute the checksum for an ELF object file

## SYNOPSIS

```
#include <gelf.h>
long int gelf_checksum (Elf *elf);
```

## DESCRIPTION

Compute a checksum for the ELF object file referred to by *elf*. This function acts as a wrapper around **elf32\_checksum**() and **elf64\_checksum**(). The binary class of *elf* is used to automatically select between **elf32\_checksum**() and **elf64\_checksum**().

The checksum is computed from permanent parts of the ELF file and the result is repeatable.  To be repeatable, strippable sections are not included in computing the checksum. **SHT\_NOBITS** sections are also not included when computing the checksum.  The checksum can be used as a value for **DT\_CHECKSUM**.

## PARAMETERS

- *elf*

  The ELF object file for which the checksum is to be computed.

## RETURN VALUE

On success, return the computed checksum. On failure, return -1 and set elf\_errno.  If *elf* is NULL then -1 is returned without setting elf\_errno.

The checksum is always calculated as a 4-byte value. If *long int* is larger than 4 bytes, then the checksum will be extended by padding with zeros.

## SEE ALSO

[**elf32\_checksum**(3)](/elf32_checksum/3.md), [**elf64\_checksum**(3)](/elf64_checksum/3.md), [**libelf**(3)](/libelf/3.md), [**elf**(5)](/elf/5.md)

## ATTRIBUTES

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **gelf\_checksum**() | Thread safety | MT-Safe |

## REPORTING BUGS

Report bugs to \<elfutils-devel@sourceware.org\> or https://sourceware.org/bugzilla/.
