abidb - Man Page

Name

abidb — check binary against abixml corpus and/or submit new data

abidb manages a git repository of abixml files describing shared libraries, and checks binaries against them.  elfutils and libabigail programs are used to query and process the binaries. abidb works well with debuginfod to fetch needed DWARF content automatically.

Invocation

abidb [OPTIONS] [--submit PATH1 PATH2 ...] [--check PATH1 PATH2 ...]

Common Options

Submit Options

Check Options

Exit Code

In case of successful submission and/or checking of all paths, the exit code is 0.

In case of error, the exit code of abidb is nonzero, and a brief listing of the binaries unable to be submitted and/or checked is printed.

Git Repository Schema

abidb stores abixml documents in a git repo with the following naming schema within the distrobranch:

  1. The directory path leading to the shared library file
  2. The SONAME of the shared library file, as a subdirectory name
  3. A file named BUILDID.xml, where BUILDID is the hexadecimal ELF build-id note of the shared library.

For example:

shared library file nameabixml path in git
/usr/lib64/libc.so.6.2.32 /usr/lib64/libc.so.6.2.33 /lib/ld-linux.so.2/usr/lib64/libc.so.6/788cdd41a15985bf8e0a48d213a46e07d58822df.xml /usr/lib64/libc.so.6/e2ca832f1c2112aea9d7b9bc639e97e873a6b516.xml /lib/ld-linux.so.2/b65f3c15b129f33f44f504da1719926aec03c07d.xml

The intent of including the buildid in the name is so that as a distro is updated with multiple versions of a given shared library, they can be represented nearby but non-conflicting.  The SONAME is used in the second-last name component, inspired the behavior of ld.so and ldconfig, which rely on symbolic links to map references from the SONAME to an actual file.

See Also

Author

Frank Ch. Eigler

Info

Jul 18, 2024 Libabigail