.hy 0
.na
.BR ar " [\|" "-" "\|]"\c
-.I {dmpqrtx}[abcilosuvV] \c
+.I {dmpqrtx}[abcilosSuvV] \c
[\|\c
.I membername\c
\&\|] \c
.B ranlib\c
\& explicitly to update the symbol table index.
+However, too many different systems assume quick append rebuilds the
+index, so GNU
+.B ar
+implements `\|\c
+.B q\c
+\|' as a synonym for `\|\c
+.B r\c
+\|'.
+
.TP
.B r
Insert \c
.B ranlib\c
\|' on it.
+.TP
+.B S
+Do not generate an archive symbol table. This can speed up building a
+large library in several steps. The resulting archive can not be used
+with the linker. In order to build a symbol table, you must omit the
+`\|\c
+.B S\c
+\|' modifier on the last execution of `\|\c
+.B ar\c
+\|', or you must run `\|\c
+.B ranlib\c
+\|' on the archive.
+
.TP
.B u
Normally, \c
index is not updated, even if it already existed; you can use @samp{ar s} or
@code{ranlib} explicitly to update the symbol table index.
-However, too many different system assume quick append rebuilds the
-index, so GNU ar treats @code{q} to same way its treats @code{r}.
+However, too many different systems assume quick append rebuilds the
+index, so GNU ar implements @code{q} as a synonym for @code{r}.
@item r
@cindex replacement in archive
flag either with any operation, or alone. Running @samp{ar s} on an
archive is equivalent to running @samp{ranlib} on it.
+@item S
+@cindex not writing archive index
+Do not generate an archive symbol table. This can speed up building a
+large library in several steps. The resulting archive can not be used
+with the linker. In order to build a symbol table, you must omit the
+@samp{S} modifier on the last execution of @samp{ar}, or you must run
+@samp{ranlib} on the archive.
+
@item u
@cindex updating an archive
Normally, @samp{ar r}@dots{} inserts all files