RANLIB(1) GNU Development Tools RANLIB(1)

# [NAME](#NAME)

ranlib - generate an index to an archive

# [SYNOPSIS](#SYNOPSIS)

ranlib \[**--plugin** *name*] \[**-DhHvVt**] *archive*

# [DESCRIPTION](#DESCRIPTION)

**ranlib** generates an index to the contents of an archive and stores it in the archive. The index lists each symbol defined by a member of an archive that is a relocatable object file.

You may use **nm -s** or **nm --print-armap** to list this index.

An archive with such an index speeds up linking to the library.

The GNU **ranlib** program is another form of GNU **ar**; running **ranlib** is completely equivalent to executing **ar -s**.

# [OPTIONS](#OPTIONS)

[**-h**](#h)

[**-H**](#H)

[**--help**](#help)

Show usage information for **ranlib**.

[**-v**](#v)

[**-V**](#V)

[**--version**](#version)

Show the version number of **ranlib**.

[**-D**](#D)

Operate in *deterministic* mode. The symbol map archive member's header will show zero for the UID, GID, and timestamp. When this option is used, multiple runs will produce identical output files.

If *binutils* was configured with **--enable-deterministic-archives**, then this mode is on by default. It can be disabled with the **-U** option, described below.

[**-t**](#t)

Update the timestamp of the symbol map of an archive.

[**-U**](#U)

Do *not* operate in *deterministic* mode. This is the inverse of the **-D** option, above: the archive index will get actual UID, GID, timestamp, and file mode values.

If *binutils* was configured *without* **--enable-deterministic-archives**, then this mode is on by default.

**@file**

Read command-line options from *file*. The options read are inserted in place of the original @*file* option. If *file* does not exist, or cannot be read, then the option will be treated literally, and not removed.

Options in *file* are separated by whitespace. A whitespace character may be included in an option by surrounding the entire option in either single or double quotes. Any character (including a backslash) may be included by prefixing the character to be included with a backslash. The *file* may itself contain additional @*file* options; any such options will be processed recursively.

# [SEE ALSO](#SEE_ALSO)

[**ar**(1)](/man/enterprise-packages/binutils-arm-none-eabi/ar.1), [**nm**(1)](/man/enterprise-packages/binutils-arm-none-eabi/nm.1), and the Info entries for *binutils*.

# [COPYRIGHT](#COPYRIGHT)

Copyright (c) 1991-2026 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

2026-10-26 binutils-2.47

---

Document: arm-none-eabi-ranlib(1) from binutils-arm-none-eabi 2.47-r1 (Chainguard OS)
