2000-08-14 Jason Eckhardt <jle@cygnus.com>
[deliverable/binutils-gdb.git] / binutils / binutils.texi
index ff87412ddc386ae63cfa95307e8c68c469fdfd18..36508cd0bc35fe56834c27c9780e7b0b4a7f1312 100644 (file)
@@ -234,7 +234,7 @@ program.
 @section Controlling @code{ar} on the command line
 
 @smallexample
-ar [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] @var{archive} [@var{member}@dots{}]
+ar [-X32_64] [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] @var{archive} [@var{member}@dots{}]
 @end smallexample
 
 @cindex Unix compatibility, @code{ar}
@@ -451,6 +451,12 @@ when the modifier @samp{v} is appended.
 This modifier shows the version number of @code{ar}.
 @end table
 
+@code{ar} ignores an initial option spelt @code{-X32_64}, for
+compatibility with AIX.  The behaviour produced by this option is the
+default for GNU @code{ar}.  @code{ar} does not support any of the other
+@code{-X} options; in particular, it does not support @code{-X32}
+which is the default for AIX @code{ar}.
+
 @node ar scripts
 @section Controlling @code{ar} with a script
 
@@ -630,14 +636,14 @@ The @sc{gnu} linker @code{ld} is now described in a separate manual.
 
 @smallexample
 nm [ -a | --debug-syms ]  [ -g | --extern-only ]
-   [ -B ]  [ -C | --demangle ] [ -D | --dynamic ]
+   [ -B ]  [ -C | --demangle[=@var{style}] ] [ -D | --dynamic ]
    [ -s | --print-armap ]  [ -A | -o | --print-file-name ]
    [ -n | -v | --numeric-sort ]  [ -p | --no-sort ]
    [ -r | --reverse-sort ]  [ --size-sort ] [ -u | --undefined-only ]
    [ -t @var{radix} | --radix=@var{radix} ] [ -P | --portability ]
    [ --target=@var{bfdname} ] [ -f @var{format} | --format=@var{format} ]
-   [ --defined-only ] [-l | --line-numbers ]
-   [ --no-demangle ] [ -V | --version ]  [ --help ]  [ @var{objfile}@dots{} ]
+   [ --defined-only ] [-l | --line-numbers ]  [ --no-demangle ]
+   [ -V | --version ]  [ -X 32_64 ]  [ --help ]  [ @var{objfile}@dots{} ]
 @end smallexample
 
 @sc{gnu} @code{nm} lists the symbols from object files @var{objfile}@dots{}.
@@ -700,11 +706,18 @@ The symbol is in the text (code) section.
 @item U
 The symbol is undefined.
 
+@item V
+The symbol is a weak object.  When a weak defined symbol is linked with
+a normal defined symbol, the normal defined symbol is used with no error.
+When a weak undefined symbol is linked and the symbol is not defined,
+the value of the weak symbol becomes zero with no error.
+
 @item W
-The symbol is weak.  When a weak defined symbol is linked with a normal
-defined symbol, the normal defined symbol is used with no error.  When a
-weak undefined symbol is linked and the symbol is not defined, the value
-of the weak symbol becomes zero with no error.
+The symbol is a weak symbol that has not been specifically tagged as a
+weak object symbol.  When a weak defined symbol is linked with a normal
+defined symbol, the normal defined symbol is used with no error.
+When a weak undefined symbol is linked and the symbol is not defined,
+the value of the weak symbol becomes zero with no error.
 
 @item -
 The symbol is a stabs symbol in an a.out object file.  In this case, the
@@ -747,12 +760,14 @@ listed.
 The same as @samp{--format=bsd} (for compatibility with the MIPS @code{nm}).
 
 @item -C
-@itemx --demangle
+@itemx --demangle[=@var{style}]
 @cindex demangling in nm
 Decode (@dfn{demangle}) low-level symbol names into user-level names.
 Besides removing any initial underscore prepended by the system, this
-makes C++ function names readable.  @xref{c++filt}, for more information
-on demangling.
+makes C++ function names readable. Different compilers have different
+mangling styles. The optional demangling style argument can be used to 
+choose an appropriate demangling style for your compiler. @xref{c++filt}, 
+for more information on demangling.
 
 @item --no-demangle
 Do not demangle low-level symbol names.  This is the default.
@@ -846,6 +861,12 @@ Display only defined symbols for each object file.
 @itemx --version
 Show the version number of @code{nm} and exit.
 
+@item -X
+This option is ignored for compatibility with the AIX version of
+@code{nm}.  It takes one parameter which must be the string
+@code{32_64}.  The default mode of AIX @code{nm} corresponds
+to @code{-X 32}, which is not supported by @sc{gnu} @code{nm}.
+
 @item --help
 Show a summary of the options to @code{nm} and exit.
 @end table
@@ -871,14 +892,14 @@ objcopy [ -F @var{bfdname} | --target=@var{bfdname} ]
         [ --gap-fill=@var{val} ] [ --pad-to=@var{address} ]
         [ --set-start=@var{val} ] [ --adjust-start=@var{incr} ]
         [ --change-addresses=@var{incr} ]
-        [ --change-section-address=@var{section}@{=,+,-@}@var{val} ]
-        [ --change-section-lma=@var{section}@{=,+,-@}@var{val} ]
-        [ --change-section-vma=@var{section}@{=,+,-@}@var{val} ]
+        [ --change-section-address @var{section}@{=,+,-@}@var{val} ]
+        [ --change-section-lma @var{section}@{=,+,-@}@var{val} ]
+        [ --change-section-vma @var{section}@{=,+,-@}@var{val} ]
         [ --change-warnings ] [ --no-change-warnings ]
-        [ --set-section-flags=@var{section}=@var{flags} ]
-        [ --add-section=@var{sectionname}=@var{filename} ]
+        [ --set-section-flags @var{section}=@var{flags} ]
+        [ --add-section @var{sectionname}=@var{filename} ]
         [ --change-leading-char ] [ --remove-leading-char ]
-        [ --weaken ]
+        [ --redefine-sym @var{old}=@var{new} ] [ --weaken ]
         [ -v | --verbose ] [ -V | --version ]  [ --help ]
         @var{infile} [@var{outfile}]
 @end smallexample
@@ -888,6 +909,9 @@ file to another.  @code{objcopy} uses the @sc{gnu} @sc{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{objcopy} is controlled by command-line options.
+Note that @code{objcopy} should be able to copy a fully linked file
+between any two formats. However, copying a relocatable object file
+between any two formats may not work as expected.
 
 @code{objcopy} creates temporary files to do its translations and
 deletes them afterward.  @code{objcopy} uses @sc{bfd} to do all its
@@ -1130,6 +1154,11 @@ different conventions for symbol names.  This is different from
 when appropriate, regardless of the object file format of the output
 file.
 
+@item --redefine-sym @var{old}=@var{new}
+Change the name of a symbol @var{old}, to @var{new}.  This can be useful
+when one is trying link two things together for which you have no
+source, and there are name collisions.
+
 @item --weaken
 Change all global symbols in the file to be weak.  This can be useful
 when building an object which will be linked against other objects using
@@ -1158,12 +1187,13 @@ Show a summary of the options to @code{objcopy}.
 @smallexample
 objdump [ -a | --archive-headers ] 
         [ -b @var{bfdname} | --target=@var{bfdname} ] 
-        [ -C | --demangle ]
+        [ -C | --demangle[=@var{style}] ]
         [ -d | --disassemble ]
         [ -D | --disassemble-all ]
         [ -z | --disassemble-zeroes ]
         [ -EB | -EL | --endian=@{big | little @} ]
         [ -f | --file-headers ]
+        [ --file-start-context ]
         [ -g | --debugging ]
         [ -h | --section-headers | --headers ]
         [ -i | --info ]
@@ -1242,12 +1272,14 @@ formats available with the @samp{-i} option.
 @xref{Target Selection}, for more information.
 
 @item -C
-@itemx --demangle
+@itemx --demangle[=@var{style}]
 @cindex demangling in objdump
 Decode (@dfn{demangle}) low-level symbol names into user-level names.
 Besides removing any initial underscore prepended by the system, this
-makes C++ function names readable.  @xref{c++filt}, for more information
-on demangling.
+makes C++ function names readable.  Different compilers have different
+mangling styles. The optional demangling style argument can be used to 
+choose an appropriate demangling style for your compiler. @xref{c++filt}, 
+for more information on demangling.
 
 @item -G
 @item --debugging
@@ -1292,6 +1324,12 @@ does not describe endianness information, such as S-records.
 Display summary information from the overall header of
 each of the @var{objfile} files.
 
+@item --file-start-context
+@cindex source code context
+Specify that when displaying interlisted source code/disassembly
+(assumes '-S') from a file that has not yet been displayed, extend the
+context to the start of the file.
+
 @item -h
 @itemx --section-header
 @itemx --header
@@ -1346,13 +1384,17 @@ some targets.
 
 If the target is an ARM architecture then this switch can be used to
 select which register name set is used during disassembler.  Specifying
-@samp{--disassembler-options=reg-name-std} (the default) will select the
-register names as used in ARM's instruction set documentation, but with
-register 13 called 'sp', register 14 called 'lr' and register 15 called
-'pc'.  Specifying @samp{--disassembler-options=reg-names-apcs} will
-select the name set used by the ARM Procedure Call Standard, whilst
-specifying @samp{--disassembler-options=reg-names-raw} will just use
-@samp{r} followed by the register number.
+@samp{-M reg-name-std} (the default) will select the register names as
+used in ARM's instruction set documentation, but with register 13 called
+'sp', register 14 called 'lr' and register 15 called 'pc'.  Specifying
+@samp{-M reg-names-apcs} will select the name set used by the ARM
+Procedure Call Standard, whilst specifying @samp{-M reg-names-raw} will
+just use @samp{r} followed by the register number.
+
+There are also two variants on the APCS register naming scheme enabled
+by @samp{-M reg-names-atpcs} and @samp{-M reg-names-special-atpcs} which
+use the ARM/Thumb Procedure Call Standard naming conventions.  (Eiuther
+with the normal register name sor the special register names).
 
 This option can also be used for ARM architectures to force the
 disassembler to interpret all instructions as THUMB instructions by
@@ -1833,6 +1875,8 @@ the one specified by the C++ Annotated Reference Manual
 the one used by the HP compiler
 @item edg
 the one used by the EDG compiler
+@item gnu-new-abi
+the one used by the @sc{gnu} compiler with the new ABI.
 @end table
 
 @item --help
@@ -1868,7 +1912,7 @@ c++filt @var{option} @var{symbol}
 
 @smallexample
 addr2line [ -b @var{bfdname} | --target=@var{bfdname} ]
-          [ -C | --demangle ]
+          [ -C | --demangle[=@var{style} ]
           [ -e @var{filename} | --exe=@var{filename} ]
           [ -f | --functions ] [ -s | --basename ]
           [ -H | --help ] [ -V | --version ]
@@ -1915,12 +1959,14 @@ Specify that the object-code format for the object files is
 @var{bfdname}.
 
 @item -C
-@itemx --demangle
+@itemx --demangle[=@var{style}]
 @cindex demangling in objdump
 Decode (@dfn{demangle}) low-level symbol names into user-level names.
 Besides removing any initial underscore prepended by the system, this
-makes C++ function names readable.  @xref{c++filt}, for more information
-on demangling.
+makes C++ function names readable.  Different compilers have different
+mangling styles. The optional demangling style argument can be used to 
+choose an appropriate demangling style for your compiler. @xref{c++filt}, 
+for more information on demangling.
 
 @item -e @var{filename}
 @itemx --exe=@var{filename}
@@ -2507,7 +2553,7 @@ exist.
 @item -D
 @itemx --use-dynamic
 When displaying symbols, this option makes @code{readelf} use the
-symblol table in the file's dynamic section, rather than the one in the
+symbol table in the file's dynamic section, rather than the one in the
 symbols section.
 
 @item -x <number>
This page took 0.028224 seconds and 4 git commands to generate.