ELFDEPS(1)

πŸ“¦ version 6.1.0, in ubuntu stonking

✨ ELFDEPS πŸ’…

okay bestie, you found the elfdeps page in the General Commands Manual section and I am SO ready to walk you through it 🫢 this one's a dependency generator for ELF binaries, and honestly? it's giving quiet-overachiever. let's go πŸŽ€


✨ NAME ✨

elfdeps β€” Dependency generator for ELF binaries πŸ’–


🌸 SYNOPSIS 🌸

elfdeps <operation> [options]

elfdeps <operation> [options] [FILE] ...

πŸ¦‹ DESCRIPTION πŸ¦‹

So elfdeps is a dependency generator for ELF executables and dynamic shared object (DSO) files. The filenames can come in on the standard input (that's the case when it's used as a generator, iykyk), or as command line arguments for testing convenience. ngl the second one is just for vibes when you're poking at it.

What it actually does: elfdeps encodes info stored in ELF files into a format that works for RPM dependencies. The main interest areas are DT_SONAME, the DT_NEEDED fields of the SHT_DYNAMIC section, and the symbol versioning information living in the SHT_GNU_verdef and SHT_GNU_verneed sections. literally the whole lore lives in there πŸ“š

Bestie, real talk: elfdeps is not normally invoked directly. But doing it anyway is highkey useful for troubleshooting dependency generation and for developing new dependency generators, so it's not forbidden, it's just main character energy on a side quest. The installation directory of elfdeps can be determined with:

rpm -E "%{_rpmconfigdir}"

This man page describes the options specific to this generator. For the overall mechanism era, see rpm-dependency-generators(7). πŸ‘‘


πŸ’… OPERATIONS πŸ’…

  • -P, --provides, β€” Print the provides dependencies. πŸ’–
  • -R, --requires β€” Print the requires dependencies. πŸ”₯

πŸ“ ARGUMENTS πŸ“

  • FILE β€” An ELF file. Other file types are silently ignored. not a single word, not even a peep πŸ™ˆ

πŸŽ€ 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 don't 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).
  • --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 🌈

See Protocols in rpm-dependency-generators(7). By default, singlefile protocol is used, but the multifile protocol can be enabled with the --multifile option. two protocols, one girl, pick your fighter ✨


⭐ EXIT STATUS ⭐

On success, 0 is returned, a non-zero failure code otherwise. periodt. πŸ’€


πŸ”₯ EXAMPLES πŸ”₯

Slay, here's how you'd actually use it:

  1. elfdeps --requires /bin/ls Print ELF-level requires dependencies of the /bin/ls executable.
  2. 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 πŸ‘‘

rpmbuild(1) rpm-dependency-generators(7) elf(5) readelf(1)

http://www.rpm.org/


ngl bestie if you read all the way here you're genuinely iconic πŸ’œ go generate some dependencies, you got this 🧚

and that's a wrap! this page ships with RPM 6.1.0, dated 2026-08-20 β€” so if you're quoting it in the group chat, that's the receipt πŸ’–βœ¨

πŸ“¦ where this page comes from