ar: Add --thin for creating thin archives

In many ar implementations (FreeBSD, elfutils, etc), -T has the X/Open
System Interface specified semantics. Therefore -T for thin archives is
not recommended for portability. -T is deprecated without diagnostics.

    PR binutils/28759
    * ar.c (long_options): Add --thin.
    (usage) Add --thin. Deprecate -T without diagnostics.
    * doc/binutils.texi: Add doc.
    * NEWS: Mention --thin.
    * binutils/testsuite/binutils-all/ar.exp: Add tests.
This commit is contained in:
Fangrui Song
2022-01-11 08:59:40 -08:00
parent c4a8df19ba
commit d1b69c506f
5 changed files with 43 additions and 6 deletions

View File

@@ -256,7 +256,7 @@ program.
@smallexample
@c man begin SYNOPSIS ar
ar [@option{-X32_64}] [@option{-}]@var{p}[@var{mod}] [@option{--plugin} @var{name}] [@option{--target} @var{bfdname}] [@option{--output} @var{dirname}] [@option{--record-libdeps} @var{libdeps}] [@var{relpos}] [@var{count}] @var{archive} [@var{member}@dots{}]
ar [@option{-X32_64}] [@option{-}]@var{p}[@var{mod}] [@option{--plugin} @var{name}] [@option{--target} @var{bfdname}] [@option{--output} @var{dirname}] [@option{--record-libdeps} @var{libdeps}] [@option{--thin}] [@var{relpos}] [@var{count}] @var{archive} [@var{member}@dots{}]
@c man end
@end smallexample
@@ -507,10 +507,9 @@ with the linker. In order to build a symbol table, you must omit the
@samp{ranlib} on the archive.
@item T
@cindex creating thin archive
Make the specified @var{archive} a @emph{thin} archive. If it already
exists and is a regular archive, the existing members must be present
in the same directory as @var{archive}.
Deprecated alias for @option{--thin}. @option{T} is not recommended because in
many ar implementations @option{T} has a different meaning, as specified by
X/Open System Interface.
@item u
@cindex updating an archive
@@ -603,6 +602,12 @@ line.
The @option{--record-libdeps} option is identical to the @option{l} modifier,
just handled in long form.
@item --thin
@cindex creating thin archive
Make the specified @var{archive} a @emph{thin} archive. If it already
exists and is a regular archive, the existing members must be present
in the same directory as @var{archive}.
@end table
@c man end