RANLIB(1)
π RANLIB(1) β GNU Development Tools π
okay bestie, welcome to the ranlib page, GNU Development Tools edition, you're gonna eat this up
β¨ NAME β¨
ranlib</rainlib> β generate an index to an archive ποΈβ¨
π SYNOPSIS π
ranlib [--plugin name] [-DhHvVt] archive
that's it. that's the whole vibe. one archive, a handful of flags, iconic behavior π
π¦ DESCRIPTION π¦
so here's the tea: ranlib generates an index to the contents of an archive and then stores it in the archive. that index lists every symbol defined by a member of an archive that is a relocatable object file. no cap, that's literally its whole job and it does it flawlessly.
want to peek at the index yourself? you can use nm -s or nm --print-armap to list it. go look, it's cute. π
and why do we care?? because an archive with such an index speeds up linking to the library β‘ and it lets routines in the library call each other without regard to their placement in the archive. obsessed. that's the good stuff.
also important lore: the GNU ranlib program is another form of GNU ar β running ranlib is completely equivalent to executing ar -s. same girl, different font fr fr.
π OPTIONS π
-h,-H,--helpβ show usage information forranlib. your little help menu moment π«Ά-v,-V,--versionβ show the version number ofranlib. know your queen's era π-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 queen behavior, we love her)
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 a lil refresh π-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 π
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. (so it just sits there looking like a normal argument, slay)
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. and plot twist: the file may itself contain additional @file options; any such options will be processed recursively π iykyk
π SEE ALSO π
π COPYRIGHT π
Copyright (c) 1991-2020 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". read it, bestie, it's giving legal but make it cute ππ
π«Ά this page came to you from binutils-2.35.1, dated 2022-11-21, and it's the RANLIB(1) manual page, periodt. go generate some indexes and be iconic πβ¨π
π¦ where this page comes from
- debian bookworm: binutils-djgpp 2.35.1+dfsg-2 Β· GPL-3.0-or-later
- ubuntu noble: binutils-djgpp 2.35.1+dfsg-2 Β· GPL-3.0-or-later
- ubuntu resolute: binutils-djgpp 2.35.1+dfsg-2 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms