Mon Dec 21 12:40:10 1992 Ian Lance Taylor (ian@cygnus.com)
[binutils-gdb.git] / binutils / binutils.texi
index d10dd62d1a5ad88c531a752496c26c9ae3f75995..9a086d35832297169866cb93d1f47e5dd4c55f4d 100644 (file)
@@ -1,33 +1,58 @@
-\input texinfo
+\input texinfo       @c                    -*- Texinfo -*-
 @setfilename binutils.info
 
-@c start-menu
-* Binutils: (binutils).        
-               The GNU binary utilities "ar", "ld", "objdump", "nm",
-               "size", "strip", and "ranlib".
-@c end-menu
+@ifinfo
+@format
+START-INFO-DIR-ENTRY
+* Binutils: (binutils).                The GNU binary utilities "ar", "ld", "copy",
+                               "objdump", "nm", "size", "strip", and "ranlib".
+END-INFO-DIR-ENTRY
+@end format
+@end ifinfo
+
+@ifinfo
+Copyright @copyright{} 1991 Free Software Foundation, Inc.
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+@ignore
+Permission is granted to process this file through TeX and print the
+results, provided the printed document carries a copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+
+@end ignore
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided also that
+the entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions.
+@end ifinfo
 
 @synindex ky cp
 @c
-@c This file documents the GNU binary utilities "ar", "ld", "objdump", "nm", 
-@c "size", "strip", and "ranlib".
+@c This file documents the GNU binary utilities "ar", "ld", "copy", "objdump",
+@c  "nm", "size", "strip", and "ranlib".
 @c
 @c Copyright (C) 1991 Free Software Foundation, Inc.
 @c 
 @c This text may be freely distributed under the terms of the GNU
 @c General Public License.
 @c
-@c $Id$
-@iftex
-@finalout
-@c @smallbook
-@end iftex
-@c @cropmarks
+
 @setchapternewpage odd
 @settitle GNU Binary Utilities
+@c @smallbook
+@c @cropmarks
 @titlepage
+@finalout
 @title The GNU Binary Utilities
-@subtitle Version 1.90
+@subtitle Version 1.97
 @sp 1
 @subtitle October 1991
 @author Roland H. Pesch
@@ -62,11 +87,16 @@ into another language, under the above conditions for modified versions.
 
 @cindex version
 This brief manual contains preliminary documentation for the GNU binary
-utilities (collectively version 1.90): 
+utilities (collectively version 1.97): 
+
+@iftex
 @table @code
 @item ar
 Create, modify, and extract from archives
 
+@item copy
+Copy and translate object files
+
 @item nm
 List symbols from object files
 
@@ -82,43 +112,21 @@ List section sizes and total size
 @item strip
 Discard symbols
 @end table
-
-@ifinfo
-Copyright @copyright{} 1991 Free Software Foundation, Inc.
-
-Permission is granted to make and distribute verbatim copies of
-this manual provided the copyright notice and this permission notice
-are preserved on all copies.
-
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries a copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-
-Permission is granted to copy and distribute modified versions of this
-manual under the conditions for verbatim copying, provided also that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-Permission is granted to copy and distribute translations of this manual
-into another language, under the above conditions for modified versions.
-@end ifinfo
+@end iftex
 
 @menu
 * ar::                          Create, modify, and extract from archives
-* ld::                          See ld.info
+* copy::                       Copy and translate object files
+* ld:(ld)Overview.              Combine object and archive files
 * nm::                          List symbols from object files
 * objdump::                     Display information from object files
 * ranlib::                      Generate index to archive contents
 * size::                        List section sizes and total size
 * strip::                       Discard symbols
-* Index::
+* Index::                       
 @end menu
 
-@node ar, ld, Top, Top
+@node ar, copy, Top, Top
 @chapter ar
 
 @kindex ar
@@ -126,6 +134,7 @@ into another language, under the above conditions for modified versions.
 @cindex collections of files
 @smallexample
   ar [-]@var{p}@var{mod} [ @var{membername} ] @var{archive} @var{files}@dots{}
+  ar -M [ <mri-script ]
 @end smallexample
 
 The GNU @code{ar} program creates, modifies, and extracts from
@@ -151,7 +160,7 @@ are most often used as @dfn{libraries} holding commonly needed
 subroutines.
 
 @cindex symbol index
-@code{ar} will create an index to the symbols defined in relocatable
+@code{ar} creates an index to the symbols defined in relocatable
 object modules in the archive when you specify the modifier @samp{s}.
 Once created, this index is updated in the archive whenever @code{ar}
 makes a change to its contents (save for the @samp{q} update operation).
@@ -159,13 +168,37 @@ An archive with such an index speeds up linking to the library, and
 allows routines in the library to call each other without regard to
 their placement in the archive.
 
-You may use @samp{nm -s} or @samp{nm +print-armap} to list this index
+You may use @samp{nm -s} or @samp{nm --print-armap} to list this index
 table.  If an archive lacks the table, another form of @code{ar} called
 @code{ranlib} can be used to add just the table.
 
-@code{ar} insists on at least two arguments to execute: one
-keyletter specifying the @emph{operation} (optionally accompanied by other
-keyletters specifying @emph{modifiers}), and the archive name to act on.
+@cindex compatibility, @code{ar}
+@cindex @code{ar} compatibility
+GNU @code{ar} is designed to be compatible with two different
+facilities.  You can control its activity using command-line options,
+like the different varieties of @code{ar} on Unix systems; or, if you
+specify the single command-line option @samp{-M}, you can control it
+with a script supplied via standard input, like the MRI ``librarian''
+program.
+
+@menu
+* ar-cmdline::                  Controlling @code{ar} on the command line
+* ar-scripts::                  Controlling @code{ar} with a script
+@end menu
+
+@page
+@node ar-cmdline, ar-scripts, ar, ar
+@section Controlling @code{ar} on the command line
+
+@smallexample
+  ar [-]@var{p}@var{mod} [ @var{membername} ] @var{archive} @var{files}@dots{}
+@end smallexample
+
+@cindex Unix compatibility, @code{ar}
+When you use @code{ar} in the Unix style, @code{ar} insists on at least two
+arguments to execute: one keyletter specifying the @emph{operation}
+(optionally accompanied by other keyletters specifying
+@emph{modifiers}), and the archive name to act on.
 
 Most operations can also accept further @var{files} arguments,
 specifying particular files to operate on.
@@ -187,7 +220,7 @@ any of the following, but you must specify only one of them:
 be deleted as @var{files}; the archive is untouched if you
 specify no files to delete.
 
-If you specify the @samp{v} modifier, @code{ar} will list each module
+If you specify the @samp{v} modifier, @code{ar} lists each module
 as it is deleted.
 
 @item m
@@ -258,7 +291,7 @@ are listed.
 @cindex repeated names in archive
 @cindex name duplication in archive
 If there is more than one file with the same name (say, @samp{fie}) in
-an archive (say @samp{b.a}), @samp{ar t b.a fie} will list only the
+an archive (say @samp{b.a}), @samp{ar t b.a fie} lists only the
 first instance; to see them all, you must ask for a complete
 listing---in our example, @samp{ar t b.a}.
 @c WRS only; per Gumby, this is implementation-dependent, and in a more
@@ -314,7 +347,7 @@ This modifier is accepted but not used.
 @cindex dates in archive
 Preserve the @emph{original} dates of members when extracting them.  If
 you do not specify this modifier, files extracted from the archive
-will be stamped with the time of extraction.
+are stamped with the time of extraction.
 
 @item s
 @cindex writing archive index
@@ -337,31 +370,271 @@ advantage from the operation @samp{q}.
 This modifier requests the @emph{verbose} version of an operation.  Many
 operations display additional information, such as filenames processed,
 when the modifier @samp{v} is appended.
+@end table
+
+@node ar-scripts,  , ar-cmdline, ar
+@section Controlling @code{ar} with a script
+
+@smallexample
+ar -M [ <@var{script} ]
+@end smallexample
+
+@cindex MRI compatibility, @code{ar}
+@cindex scripts, @code{ar}
+If you use the single command-line option @samp{-M} with @code{ar}, you
+can control its operation with a rudimentary command language.  This
+form of @code{ar} operates interactively if standard input is coming
+directly from a terminal.  During interactive use, @code{ar} prompts for
+input (the prompt is @samp{AR >}), and continues executing even after
+errors.  If you redirect standard input to a script file, no prompts are
+issued, and @code{ar} abandons execution (with a nonzero exit code)
+on any error.
+
+The @code{ar} command language is @emph{not} designed to be equivalent
+to the command-line options; in fact, it provides somewhat less control
+over archives.  The only purpose of the command language is to ease the
+transition to GNU @code{ar} for developers who already have scripts
+written for the MRI ``librarian'' program.
+
+The syntax for the @code{ar} command language is straightforward:
+@itemize @bullet
+@item
+commands are recognized in upper or lower case; for example, @code{LIST}
+is the same as @code{list}.  In the following descriptions, commands are
+shown in upper case for clarity.
+
+@item
+a single command may appear on each line; it is the first word on the
+line.
+
+@item
+empty lines are allowed, and have no effect.
+
+@item
+comments are allowed; text after either of the characters @samp{*}
+or @samp{;} is ignored.
+
+@item
+Whenever you use a list of names as part of the argument to an @code{ar}
+command, you can separate the individual names with either commas or
+blanks.  Commas are shown in the explanations below, for clarity.
+
+@item
+@samp{+} is used as a line continuation character; if @samp{+} appears
+at the end of a line, the text on the following line is considered part
+of the current command.
+@end itemize
+
+Here are the commands you can use in @code{ar} scripts, or when using
+@code{ar} interactively.  Three of them have special significance:
+
+@code{OPEN} or @code{CREATE} specify a @dfn{current archive}, which is
+a temporary file required for most of the other commands.
+
+@code{SAVE} commits the changes so far specified by the script.  Prior
+to @code{SAVE}, commands affect only the temporary copy of the current
+archive.
+
+@table @code
+@item ADDLIB @var{archive} 
+@itemx ADDLIB @var{archive} (@var{module}, @var{module}, @dots{} @var{module})
+Add all the contents of @var{archive} (or, if specified, each named
+@var{module} from @var{archive}) to the current archive.
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@item ADDMOD @var{file}, @var{file}, @dots{} @var{file}
+@c FIXME! w/Replacement??  If so, like "ar r @var{archive} @var{names}"
+@c        else like "ar q..."
+Add each named @var{file} as a module in the current archive.
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@item CLEAR
+Discard the contents of the current archive, cancelling the effect of
+any operations since the last @code{SAVE}.  May be executed (with no
+effect) even if  no current archive is specified.
+
+@item CREATE @var{archive}
+Creates an archive, and makes it the current archive (required for many
+other commands).  The new archive is created with a temporary name; it
+is not actually saved as @var{archive} until you use @code{SAVE}.
+You can overwrite existing archives; similarly, the contents of any
+existing file named @var{archive} will not be destroyed until @code{SAVE}.
+
+@item DELETE @var{module}, @var{module}, @dots{} @var{module}
+Delete each listed @var{module} from the current archive; equivalent to
+@samp{ar -d @var{archive} @var{module} @dots{} @var{module}}.
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@item DIRECTORY @var{archive} (@var{module}, @dots{} @var{module})
+@itemx DIRECTORY @var{archive} (@var{module}, @dots{} @var{module}) @var{outputfile}
+List each named @var{module} present in @var{archive}.  The separate
+command @code{VERBOSE} specifies the form of the output: when verbose
+output is off, output is like that of @samp{ar -t @var{archive}
+@var{module}@dots{}}.  When verbose output is on, the listing is like
+@samp{ar -tv @var{archive} @var{module}@dots{}}.
+
+Output normally goes to the standard output stream; however, if you
+specify @var{outputfile} as a final argument, @code{ar} directs the
+output to that file.
+
+@item END
+Exit from @code{ar}, with a @code{0} exit code to indicate successful
+completion.  This command does not save the output file; if you have
+changed the current archive since the last @code{SAVE} command, those
+changes are lost.
+
+@item EXTRACT @var{module}, @var{module}, @dots{} @var{module}
+Extract each named @var{module} from the current archive, writing them
+into the current directory as separate files.  Equivalent to @samp{ar -x
+@var{archive} @var{module}@dots{}}.
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@ignore
+@c FIXME Tokens but no commands???
+@item FULLDIR
+
+@item HELP
+@end ignore
+
+@item LIST
+Display full contents of the current archive, in ``verbose'' style
+regardless of the state of @code{VERBOSE}.  The effect is like @samp{ar
+tv @var{archive}}).  (This single command is a GNU @code{ld}
+enhancement, rather than present for MRI compatibility.)
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@item OPEN @var{archive}
+Opens an existing archive for use as the current archive (required for
+many other commands).  Any changes as the result of subsequent commands
+will not actually affect @var{archive} until you next use @code{SAVE}.
+
+@item REPLACE @var{module}, @var{module}, @dots{} @var{module}
+In the current archive, replace each existing @var{module} (named in
+the @code{REPLACE} arguments) from files in the current working directory.
+To execute this command without errors, both the file, and the module in
+the current archive, must exist. 
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@item VERBOSE
+Toggle an internal flag governing the output from @code{DIRECTORY}.
+When the flag is on, @code{DIRECTORY} output matches output from
+@samp{ar -tv @dots{}}.
+
+@item SAVE
+Commit your changes to the current archive, and actually save it as a
+file with the name specified in the last @code{CREATE} or @code{OPEN}
+command. 
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
 
 @end table
 
-@node ld, nm, ar, Top
+@node copy, nm, ar, Top
+@chapter copy
+
+@smallexample
+copy [ -F @var{format} | --format=@var{format} ]
+     [ -I @var{format} | --input-format=@var{format} ]
+     [ -O @var{format} | --output-format=@var{format} ]
+     [ -S | --strip-all ]  [ -g | --strip-debug ]
+     [ -x | --discard-all ]  [ -X | --discard-locals ]
+     [ -v | --verbose ]  [ -V | --version ]
+     @var{infile} [@var{outfile}]
+@end smallexample
+
+The GNU @code{copy} utility copies the contents of an object file to
+another.  @code{copy} uses the GNU BFD Library to read and write the
+object files.  It can write the destination object file in a format
+different from that of the source object file.  The exact behavior of
+@code{copy} is controlled by command-line options.
+
+@code{copy} creates temporary files to do its translations and
+deletes them afterward.  @code{copy} uses BFD to do all its
+translation work; it knows about all the formats BFD knows about, and
+thus is able to recognize most formats without being told explicitly.
+@xref{BFD,,BFD,ld.info,Using LD, the GNU linker}.
+
+@table @code
+@item @var{infile}
+@itemx @var{outfile}
+The source and output files respectively.
+If you do not specify @var{outfile}, @code{copy} creates a
+temporary file and destructively renames the result with
+the name of the input file.
+
+@item -I @var{format}  
+@itemx --input-format=@var{format}
+Treat the source file's object format as specified, rather than
+attempting to deduce it.
+
+@item -O @var{format}
+@itemx --output-format=@var{format}
+Write the output file using the specified object format.
+
+@item -F @var{format}
+@itemx --format=@var{format}
+Use @var{format} as the object format for both the input and the output
+file; i.e. simply transfer data from source to destination with no
+translation.
+
+@item -S
+@itemx --strip-all
+Do not copy relocation and symbol information from the source file.
+
+@item -g
+@itemx --strip-debug
+Do not copy debugging symbols from the source file.
+
+@item -x
+@itemx --discard-all
+Do not copy non-global symbols from the source file.
+@c FIXME any reason to prefer "non-global" to "local" here?
+
+@item -X
+@itemx --discard-locals
+Do not copy compiler-generated local symbols.
+(These usually start with @samp{L} or @samp{.}.)
+
+@item -V
+@itemx --version
+Show version number.
+
+@item -v
+@itemx --verbose
+Verbose output: list all object files modified.  In the case of
+archives, @samp{copy -V} lists all members of the archive.
+@end table
+
+@iftex
+@node ld
 @chapter ld
 @cindex linker
 @kindex ld
 The GNU linker @code{ld} is now described in a separate manual.
-@xref{Top,, Overview,, GLD: the GNU linker}.
+@xref{Top,, Overview,, Using LD: the GNU linker}.
+@end iftex
 
-@node nm, objdump, ld, Top
+@node nm, objdump, copy, Top
 @chapter nm
 @cindex symbols
 @kindex nm
 
 @smallexample
-  nm [ -a | +debug-syms ]  [ -g | +extern-only ]
-      [ -s | +print-armap ]  [ -o | +print-file-name ]  
-      [ -n | +numeric-sort ]  [ -p | +no-sort ]
-      [ -r | +reverse-sort ]  [ -u | +undefined-only ]  
-      [ +target @var{bfdname} ]
+  nm [ -a | --debug-syms ]  [ -g | --extern-only ]
+      [ -s | --print-armap ]  [ -o | --print-file-name ]  
+      [ -n | --numeric-sort ]  [ -p | --no-sort ]
+      [ -r | --reverse-sort ]  [ -u | --undefined-only ]  
+      [ --target @var{bfdname} ]
       [ @var{objfiles}@dots{} ]
 @end smallexample
 
-GNU @code{nm} will list the symbols from object files @var{objfiles}.
+GNU @code{nm} lists the symbols from object files @var{objfiles}.
 
 The long and short forms of options, shown here as alternatives, are
 equivalent.
@@ -373,35 +646,35 @@ Object files whose symbols are to be listed.  If no object files are
 listed as arguments, @code{nm} assumes @samp{a.out}.
 
 @item -a
-@itemx +debug-syms 
+@itemx --debug-syms 
 @cindex debugging symbols
 Display debugger-only symbols; normally these are not listed.
 
 @item -g
-@itemx +extern-only 
+@itemx --extern-only 
 @cindex external symbols
 Display only external symbols.
 
 @item -p
-@itemx +no-sort 
+@itemx --no-sort 
 @cindex sorting symbols
 Don't bother to sort the symbols in any order; just print them in the
 order encountered.
 
 @item -n
-@itemx +numeric-sort 
+@itemx --numeric-sort 
 Sort symbols numerically by their addresses, not alphabetically by their
 names. 
 
 @item -s
-@itemx +print-armap
+@itemx --print-armap
 @cindex symbol index, listing
 When listing symbols from archive members, include the index: a mapping
 (stored in the archive by @code{ar} or @code{ranlib}) of what modules
 contain definitions for what names.
 
 @item -o
-@itemx +print-file-name 
+@itemx --print-file-name 
 @cindex input file name
 @cindex file name
 @cindex source file name
@@ -410,19 +683,19 @@ rather than identifying the input file once only before all of its
 symbols. 
 
 @item -r
-@itemx +reverse-sort 
+@itemx --reverse-sort 
 Reverse the sense of the sort (whether numeric or alphabetic); let the
 last come first.
 
-@item +target @var{bfdname}
-@c @item +target
+@item --target @var{bfdname}
+@c @item --target
 @cindex object code format
 Specify an object code format other than your system's default format.
 @xref{objdump}, for information on listing available formats.
-@c FIXME what *does* +target/no arg do?
+@c FIXME what *does* --target/no arg do?
 
 @item -u
-@itemx +undefined-only 
+@itemx --undefined-only 
 @cindex external symbols
 @cindex undefined symbols
 Display only undefined symbols (those external to each object file).
@@ -437,9 +710,9 @@ Display only undefined symbols (those external to each object file).
 
 @smallexample
   objdump [ -a ]  [ -b @var{bfdname} ]  [ -d ]  [ -f ]
-          [ -h | +header ]  [ -i ]  [ -j @var{section} ]  [ -l ]
-          [ -m @var{machine} ]  [ -r | +reloc ]  [ -s ]
-          [ -t | +syms ]  [ -x ]
+          [ -h | --header ]  [ -i ]  [ -j @var{section} ]  [ -l ]
+          [ -m @var{machine} ]  [ -r | --reloc ]  [ -s ]
+          [ --stabs ]  [ -t | --syms ]  [ -x ]
           @var{objfiles}@dots{}
 @end smallexample
 
@@ -465,7 +738,7 @@ header information (in a format similar to @samp{ls -l}).  Besides the
 information you could list with @samp{ar tv}, @samp{objdump -a} shows
 the object file format of each archive member.
 
-@c suggest longname +target or +format or +bfd
+@c suggest longname --target or --format or --bfd
 @item -b @var{bfdname}
 @cindex object code format
 You can specify a particular object-code format for your object files as
@@ -492,7 +765,7 @@ File header.  Display summary information from the overall header of
 each file in @var{objfiles}.
 
 @item -h
-@itemx +header
+@itemx --header
 @cindex section headers
 Header.  Display summary information from the section headers of the
 object file.
@@ -503,18 +776,18 @@ object file.
 Display a list showing all architectures and object formats available
 for specification with @code{-b} or @code{-m}.
 
-@c suggest longname +section
+@c suggest longname --section
 @item -j @var{name}
 @cindex section information
 Display information only for section @var{name}
 
-@c suggest longname +label or +linespec
+@c suggest longname --label or --linespec
 @item -l
 @cindex source filenames for object files
 Label the display (using debugging information) with the source filename
 and line numbers corresponding to the object code shown.
 
-@c suggest longname +architecture
+@c suggest longname --architecture
 @item -m @var{machine}
 @cindex architecture
 Specify the object files @var{objfiles} are for architecture
@@ -522,7 +795,7 @@ Specify the object files @var{objfiles} are for architecture
 option. 
 
 @item -r
-@itemx +reloc
+@itemx --reloc
 @cindex relocation entries, in object file
 Relocation.  Print the relocation entries of the file.
 
@@ -531,8 +804,21 @@ Relocation.  Print the relocation entries of the file.
 @cindex object file sections
 Display the full contents of any sections requested.
 
+@item --stabs
+@cindex stab
+@cindex .stab
+@cindex debug symbols
+@cindex ELF object file format
+Display the full contents of any sections requested.  Display the
+contents of the .stab and .stab.index and .stab.excl sections from an
+ELF file.  This is only useful on systems (such as Solaris 2.0) in which
+@code{.stab} debugging symbol-table entries are carried in an ELF
+section.  In most other file formats, debugging symbol-table entries are
+interleaved with linkage symbols, and are visible in the @samp{--syms}
+output.
+
 @item -t
-@itemx +syms
+@itemx --syms
 @cindex symbol table entries, printing
 Symbol Table.  Print the symbol table entries of the file.
 This is similar to the information provided by the @samp{nm} program.
@@ -561,7 +847,7 @@ relocation entries.  Using @samp{-x} is equivalent to specifying all of
 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 @samp{nm -s} or @samp{nm +print-armap} to list this index.
+You may use @samp{nm -s} or @samp{nm --print-armap} to list this index.
 
 An archive with such an index speeds up linking to the library, and
 allows routines in the library to call each other without regard to
@@ -578,9 +864,9 @@ The GNU @code{ranlib} program is another form of GNU @code{ar}; running
 @cindex section sizes
 
 @smallexample
-  size [ -A | -B | +format @var{compatibility} ]
-       [ +help ]  [ -d | -o | -x | +radix @var{number} ]
-       [ +target @var{bfdname} ]  [ -V | +version ]  
+  size [ -A | -B | --format @var{compatibility} ]
+       [ --help ]  [ -d | -o | -x | --radix @var{number} ]
+       [ --target @var{bfdname} ]  [ -V | --version ]  
        @var{objfiles}@dots{}
 @end smallexample
 
@@ -596,21 +882,21 @@ The object files to be examined.
 
 @item -A
 @itemx -B
-@itemx +format @var{compatibility}
+@itemx --format @var{compatibility}
 @cindex size display format
 Using one of these options, you can choose whether the output from GNU
 @code{size} resembles output from System V @code{size} (using @samp{-A},
-or @samp{+format sysv}), or Berkeley @code{size} (using @samp{-B}, or
-@samp{+format berkeley}).  The default is the one-line format similar to
+or @samp{--format sysv}), or Berkeley @code{size} (using @samp{-B}, or
+@samp{--format berkeley}).  The default is the one-line format similar to
 Berkeley's.  
-@c Bonus for doc-source readers: you can also say +format=strange (or
-@c anything else that starts with 's') for sysv, and +format=boring (or
+@c Bonus for doc-source readers: you can also say --format=strange (or
+@c anything else that starts with 's') for sysv, and --format=boring (or
 @c anything else that starts with 'b') for Berkeley.
 
 Here is an example of the Berkeley (default) format of output from
 @code{size}: 
 @smallexample
- eg$  size +format Berkeley ranlib size
+ eg$  size --format Berkeley ranlib size
 text    data    bss     dec     hex     filename
 294880  81920   11592   388392  5ed28   ranlib
 294880  81920   11888   388688  5ee50   size
@@ -620,7 +906,7 @@ text    data    bss     dec     hex     filename
 This is the same data, but displayed closer to System V conventions:
 
 @smallexample
- eg$  size +format SysV ranlib size
+ eg$  size --format SysV ranlib size
 ranlib  :
 section         size         addr
 .text         294880         8192       
@@ -637,24 +923,24 @@ section         size         addr
 Total         388688    
 @end smallexample
 
-@item +help
+@item --help
 Show a summary of acceptable arguments and options.
 
 @item -d
 @itemx -o
 @itemx -x
-@itemx +radix @var{number}
+@itemx --radix @var{number}
 @cindex size number format
 @cindex radix for section sizes
 Using one of these options, you can control whether the size of each
-section is given in decimal (@samp{-d}, or @samp{+radix 10}); octal
-(@samp{-o}, or @samp{+radix 8}); or hexadecimal (@samp{-x}, or
-@samp{+radix 16}).  In @samp{+radix @var{number}}, only the three
+section is given in decimal (@samp{-d}, or @samp{--radix 10}); octal
+(@samp{-o}, or @samp{--radix 8}); or hexadecimal (@samp{-x}, or
+@samp{--radix 16}).  In @samp{--radix @var{number}}, only the three
 values (8, 10, 16) are supported.  The total size is always given in two
 radices; decimal and hexadecimal for @samp{-d} or @samp{-x} output, or
 octal and hexadecimal if you're using @samp{-o}.
 
-@item +target @var{bfdname}
+@item --target @var{bfdname}
 @cindex object code format
 You can specify a particular object-code format for @var{objfiles} as
 @var{bfdname}.  This may not be necessary; @var{size} can
@@ -662,7 +948,7 @@ automatically recognize many formats.  @xref{objdump}, for information
 on listing available formats.
 
 @item -V
-@itemx +version
+@itemx --version
 Display version number information on @code{size} itself.
 
 @end table
@@ -673,17 +959,18 @@ Display version number information on @code{size} itself.
 @kindex strip
 @cindex removing symbols
 @cindex discarding symbols
+@cindex symbols, discarding
 
 @smallexample
-  strip [ -s | +strip-all ]  [ -g | -S | +strip-debug ]
-         [ -x | +discard-all ]  [ -X | +discard-locals ]
-         [ -T @var{bfdname} ]
-         @var{objfiles}@dots{}
+strip [-F @var{format} | --format=@var{format} ]
+      [-I @var{format} | --input-format=@var{format} ]
+      [-O @var{format} | --output-format=@var{format} ]
+      [ -v | --verbose ]  [ -V | --version ]
+      @var{objfiles}@dots{}
 @end smallexample
 
-GNU @code{strip} will discard all symbols from object files
-@var{objfiles}, if no options are specified; or only certain symbols,
-depending on its command-line options.
+GNU @code{strip} discards all symbols from object files
+@var{objfiles}.  The list of object files may include archives.
 
 @code{strip} will not execute unless at least one object file is listed.
 
@@ -692,43 +979,46 @@ depending on its command-line options.
 rather than writing modified copies under different names.
 @end quotation
 
-The long and short forms of options, shown here as alternatives, are
-equivalent.
-
 @table @code
-@item -s
-@itemx +strip-all 
-@cindex all symbols, discarding
-This is the default case: strip all symbol entries from @var{objfiles}.
+@item -I @var{format}  
+@itemx --input-format=@var{format}
+Treat the original @var{objfiles} as files with the specified object
+code format.
+
+@item -O @var{format}
+@itemx --output-format=@var{format}
+Replace @var{objfiles} with files in the output format specified.
+
+@item -F @var{format}
+@itemx --format=@var{format}
+Treat the original @var{objfiles} as files with the specified object
+code format, and rewrite them in the same format.
 
 @item -g
 @itemx -S
-@itemx +strip-debug 
-@cindex debugging symbols, discarding
-Discard only debugging symbol information from @var{objfiles}.
+@itemx --strip-debug
+Remove debugging symbols only.
 
 @item -x
-@itemx +discard-all 
-@cindex local symbols, discarding
-Discard all symbols local to each file in @var{objfiles}.
-@emph{WARNING:} Note that @code{+discard-all} discards only @emph{local}
-symbols, in spite of its name.
+@itemx --discard-all
+Remove non-global symbols.
 
 @item -X
-@itemx +discard-locals 
-Discard local symbols starting with @samp{L} from each file in
-@var{objfiles}.  (Some compilers produce internally-used symbols that
-begin with @samp{L}.)
+@itemx --discard-locals
+Remove compiler-generated local symbols.
+(These usually start with @code{L} or @code{.}.)
 
-@item -T @var{bfdname}
-@cindex object code format
-You can specify a particular object-code format @var{bfdname} for
-@var{objfiles}.  This may not be necessary; @var{strip} can automatically
-recognize many formats.  @xref{objdump}, for information on listing
-available formats.
+@item -V
+@itemx --version
+Show version number.
+
+@item -v
+@itemx --verbose
+Verbose output: list all object files modified.  In the case of
+archives, @samp{strip -V} lists all members of the archive.
 @end table
 
-@node Index, , strip, Top
+@node Index,  , strip, Top
 @unnumbered Index
 
 @printindex cp