RANLIB(1)
π RANLIB(1) β like, the GNU Development Tools manual, bestie
okay so you opened the ranlib page and you're probably like "what is this tiny little tool" β don't worry, she's small but she's iconic. This is from GNU Development Tools, and honestly? Underrated. Let's get into it β¨
πΈ NAME
ranlib β generate an index to an archive. That's it, that's the whole job. She does one thing and she slays at it.
π SYNOPSIS
ranlib [--plugin name] [-DhHvVt] archive
π¦ DESCRIPTION
ranlib generates an index to the contents of an archive and stores it in the archive. Literally just writes the index right back into the archive itself, no separate file, no extra drama π
That index lists each symbol defined by a member of an archive that is a relocatable object file. So like, if a member is a relocatable object file, its symbols go in the index. Simple.
You may use nm -s or nm --print-armap to list this index β that's your little peek behind the curtain, bestie π
An archive with such an index speeds up linking to the library. So the whole point? Faster linking. She's doing it for the linker, not for you, but that's fine, we appreciate her anyway π«Ά
The GNU ranlib program is another form of GNU ar; running ranlib is completely equivalent to executing ar -s. Like, completely. Same thing. Not a vibe, a fact. No cap.
β¨ OPTIONS β¨
-h,-H,--helpβ show usage information forranlib. Your classic "wait what does this do again" button π-v,-V,--versionβ show the version number ofranlib. She'll tell you how old she is π-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. Reproducible builds girlies stay winning π₯
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β update the timestamp of the symbol map of an archive. Just the timestamp. That's the whole assignment π-Uβ do not operate in deterministic mode. This is the inverse of the-Doption, above: the archive index will get actual UID, GID, timestamp, and file mode values. Real ones only, fr fr.
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. It's giving inception, it's giving file-ception, and honestly? We respect it π
π SEE ALSO
π 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".
bestie please actually read that license section, i'm not joking, it's literally in the doc π«Ά
okay that's the whole page!! binutils-2.47, dated 2026-07-30 β that's the version and the date, and that's your cute little sign-off. go index an archive, ily, bye ππ
π¦ where this page comes from
- arch rolling: aarch64-linux-gnu-binutils 2.47-1 Β· GPL
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms