ELFDEPS(1) General Commands Manual ELFDEPS(1)

# [NAME](#NAME)

**elfdeps** - Dependency generator for ELF binaries

# [SYNOPSIS](#SYNOPSIS)

**elfdeps** &lt;operation&gt; \[options]

**elfdeps** &lt;operation&gt; \[options] \[*FILE*] ...

# [DESCRIPTION](#DESCRIPTION)

**elfdeps** is a *dependency generator* for ELF executables and dynamic shared object (DSO) files. The filenames can be received on the standard input (when used as a generator), or command line arguments for testing convenience.

**elfdeps** encodes information stored in ELF files into a format suitable for use in RPM dependencies. The main interest areas are **DT\_SONAME**, **DT\_NEEDED** fields of the **SHT\_DYNAMIC** section, and symbol versioning information in the **SHT\_GNU\_verdef** and **SHT\_GNU\_verneed** sections.

**elfdeps** is not normally invoked directly, but doing so can be useful for troubleshooting dependency generation and developing new dependency generators. The installation directory of **elfdeps** can be determined with **rpm -E "%{\_rpmconfigdir}"**.

This man page describes the options specific to this generator, see [**rpm-dependency-generators**(7)](/man/os/rpm/rpm-dependency-generators.7) for information about the overall mechanism.

# [OPERATIONS](#OPERATIONS)

**-P**, **--provides**,

Print the provides dependencies.

**-R**, **--requires**

Print the requires dependencies.

# [ARGUMENTS](#ARGUMENTS)

*FILE*

An ELF file. Other file types are silently ignored.

# [OPTIONS](#OPTIONS)

**--no-fake-soname**

Do not emit a fake soname for DSOs that don't set **DT\_SONAME**. By default, **elfdeps** generates a soname from the filename for DSOs that do not have one. Only effective when printing provides dependencies.

**--no-filter-soname**

Do not filter sonames. By default, **elfdeps** does some sanity checking to filter out redundant and/or invalid soname entries. Only effective when printing provides dependencies.

**-m**, **--multifile**

Use **multifile** protocol for output. See [**rpm-dependency-generators**(7)](/man/os/rpm/rpm-dependency-generators.7).

**--require-interp**

Emit a requires dependency for the ELF interpreter (**PT\_INTERP**), if there is one. Only effective when printing requires dependencies.

**--soname-only**

Emit only the soname (**DT\_SONAME**) of a DSO, omitting any symbol versioning information. Only effective when printing provides dependencies.

# [OUTPUT](#OUTPUT)

See **Protocols** in [**rpm-dependency-generators**(7)](/man/os/rpm/rpm-dependency-generators.7). By default, **singlefile** protocol is used, but the **multifile** protocol can be enabled with the **--multifile** option.

# [EXIT STATUS](#EXIT_STATUS)

On success, 0 is returned, a non-zero failure code otherwise.

# [EXAMPLES](#EXAMPLES)

**elfdeps --requires /bin/ls**

Print ELF-level requires dependencies of the */bin/ls* executable.

**find mylib-1.0-build/BUILDROOT --name "\*.so\*" | elfdeps -P --multifile**

Print ELF-level provides dependencies of all shared libraries inside the *mylib-1.0-build/BUILDROOT* directory, using the **multifile** generator protocol.

# [SEE ALSO](#SEE_ALSO)

[**rpmbuild**(1)](/man/os/rpm/rpmbuild.1) [**rpm-dependency-generators**(7)](/man/os/rpm/rpm-dependency-generators.7) [**elf**(5)](/man/os/rpm/elf.5) [**readelf**(1)](/man/os/rpm/readelf.1)

**http://www.rpm.org/**

2026-10-04 RPM 6.1.0

---

Document: elfdeps(1) from rpm 6.1.0-r2 (Chainguard OS)
Source: https://github.com/rpm-software-management/rpm
