Home | History | Annotate | Download | only in info
      1 This is binutils.info, produced by makeinfo version 4.8 from
      2 binutils.texi.
      3 
      4    Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
      5 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software
      6 Foundation, Inc.
      7 
      8    Permission is granted to copy, distribute and/or modify this document
      9 under the terms of the GNU Free Documentation License, Version 1.2 or
     10 any later version published by the Free Software Foundation; with no
     11 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
     12 Texts.  A copy of the license is included in the section entitled "GNU
     13 Free Documentation License".
     14 
     15 INFO-DIR-SECTION Software development
     16 START-INFO-DIR-ENTRY
     17 * Binutils: (binutils).         The GNU binary utilities.
     18 END-INFO-DIR-ENTRY
     19 
     20 INFO-DIR-SECTION Individual utilities
     21 START-INFO-DIR-ENTRY
     22 * addr2line: (binutils)addr2line. Convert addresses to file and line.
     23 * ar: (binutils)ar.               Create, modify, and extract from archives.
     24 * c++filt: (binutils)c++filt.	  Filter to demangle encoded C++ symbols.
     25 * cxxfilt: (binutils)c++filt.     MS-DOS name for c++filt.
     26 * dlltool: (binutils)dlltool.	  Create files needed to build and use DLLs.
     27 * nlmconv: (binutils)nlmconv.     Converts object code into an NLM.
     28 * nm: (binutils)nm.               List symbols from object files.
     29 * objcopy: (binutils)objcopy.	  Copy and translate object files.
     30 * objdump: (binutils)objdump.     Display information from object files.
     31 * ranlib: (binutils)ranlib.       Generate index to archive contents.
     32 * readelf: (binutils)readelf.	  Display the contents of ELF format files.
     33 * size: (binutils)size.           List section sizes and total size.
     34 * strings: (binutils)strings.     List printable strings from files.
     35 * strip: (binutils)strip.         Discard symbols.
     36 * windmc: (binutils)windmc.	  Generator for Windows message resources.
     37 * windres: (binutils)windres.	  Manipulate Windows resources.
     38 END-INFO-DIR-ENTRY
     39 
     40 
     41 File: binutils.info,  Node: Top,  Next: ar,  Up: (dir)
     42 
     43 Introduction
     44 ************
     45 
     46 This brief manual contains documentation for the GNU binary utilities
     47 (GNU Binutils) version 2.18.90:
     48 
     49    This document is distributed under the terms of the GNU Free
     50 Documentation License.  A copy of the license is included in the
     51 section entitled "GNU Free Documentation License".
     52 
     53 * Menu:
     54 
     55 * ar::                          Create, modify, and extract from archives
     56 * nm::                          List symbols from object files
     57 * objcopy::			Copy and translate object files
     58 * objdump::                     Display information from object files
     59 * ranlib::                      Generate index to archive contents
     60 * readelf::                     Display the contents of ELF format files
     61 * size::                        List section sizes and total size
     62 * strings::                     List printable strings from files
     63 * strip::                       Discard symbols
     64 * c++filt::			Filter to demangle encoded C++ symbols
     65 * cxxfilt: c++filt.             MS-DOS name for c++filt
     66 * addr2line::			Convert addresses to file and line
     67 * nlmconv::                     Converts object code into an NLM
     68 * windres::			Manipulate Windows resources
     69 * windmc::			Generator for Windows message resources
     70 * dlltool::			Create files needed to build and use DLLs
     71 * Common Options::              Command-line options for all utilities
     72 * Selecting the Target System:: How these utilities determine the target
     73 * Reporting Bugs::              Reporting Bugs
     74 * GNU Free Documentation License::  GNU Free Documentation License
     75 * Binutils Index::              Binutils Index
     76 
     77 
     78 File: binutils.info,  Node: ar,  Next: nm,  Prev: Top,  Up: Top
     79 
     80 1 ar
     81 ****
     82 
     83      ar [-]P[MOD [RELPOS] [COUNT]] ARCHIVE [MEMBER...]
     84      ar -M [ <mri-script ]
     85 
     86    The GNU `ar' program creates, modifies, and extracts from archives.
     87 An "archive" is a single file holding a collection of other files in a
     88 structure that makes it possible to retrieve the original individual
     89 files (called "members" of the archive).
     90 
     91    The original files' contents, mode (permissions), timestamp, owner,
     92 and group are preserved in the archive, and can be restored on
     93 extraction.
     94 
     95    GNU `ar' can maintain archives whose members have names of any
     96 length; however, depending on how `ar' is configured on your system, a
     97 limit on member-name length may be imposed for compatibility with
     98 archive formats maintained with other tools.  If it exists, the limit
     99 is often 15 characters (typical of formats related to a.out) or 16
    100 characters (typical of formats related to coff).
    101 
    102    `ar' is considered a binary utility because archives of this sort
    103 are most often used as "libraries" holding commonly needed subroutines.
    104 
    105    `ar' creates an index to the symbols defined in relocatable object
    106 modules in the archive when you specify the modifier `s'.  Once
    107 created, this index is updated in the archive whenever `ar' makes a
    108 change to its contents (save for the `q' update operation).  An archive
    109 with such an index speeds up linking to the library, and allows
    110 routines in the library to call each other without regard to their
    111 placement in the archive.
    112 
    113    You may use `nm -s' or `nm --print-armap' to list this index table.
    114 If an archive lacks the table, another form of `ar' called `ranlib' can
    115 be used to add just the table.
    116 
    117    GNU `ar' can optionally create a _thin_ archive, which contains a
    118 symbol index and references to the original copies of the member files
    119 of the archives.  Such an archive is useful for building libraries for
    120 use within a local build, where the relocatable objects are expected to
    121 remain available, and copying the contents of each object would only
    122 waste time and space.  Thin archives are also _flattened_, so that
    123 adding one or more archives to a thin archive will add the elements of
    124 the nested archive individually.  The paths to the elements of the
    125 archive are stored relative to the archive itself.
    126 
    127    GNU `ar' is designed to be compatible with two different facilities.
    128 You can control its activity using command-line options, like the
    129 different varieties of `ar' on Unix systems; or, if you specify the
    130 single command-line option `-M', you can control it with a script
    131 supplied via standard input, like the MRI "librarian" program.
    132 
    133 * Menu:
    134 
    135 * ar cmdline::                  Controlling `ar' on the command line
    136 * ar scripts::                  Controlling `ar' with a script
    137 
    138 
    139 File: binutils.info,  Node: ar cmdline,  Next: ar scripts,  Up: ar
    140 
    141 1.1 Controlling `ar' on the Command Line
    142 ========================================
    143 
    144      ar [`-X32_64'] [`-']P[MOD [RELPOS] [COUNT]] ARCHIVE [MEMBER...]
    145 
    146    When you use `ar' in the Unix style, `ar' insists on at least two
    147 arguments to execute: one keyletter specifying the _operation_
    148 (optionally accompanied by other keyletters specifying _modifiers_),
    149 and the archive name to act on.
    150 
    151    Most operations can also accept further MEMBER arguments, specifying
    152 particular files to operate on.
    153 
    154    GNU `ar' allows you to mix the operation code P and modifier flags
    155 MOD in any order, within the first command-line argument.
    156 
    157    If you wish, you may begin the first command-line argument with a
    158 dash.
    159 
    160    The P keyletter specifies what operation to execute; it may be any
    161 of the following, but you must specify only one of them:
    162 
    163 `d'
    164      _Delete_ modules from the archive.  Specify the names of modules to
    165      be deleted as MEMBER...; the archive is untouched if you specify
    166      no files to delete.
    167 
    168      If you specify the `v' modifier, `ar' lists each module as it is
    169      deleted.
    170 
    171 `m'
    172      Use this operation to _move_ members in an archive.
    173 
    174      The ordering of members in an archive can make a difference in how
    175      programs are linked using the library, if a symbol is defined in
    176      more than one member.
    177 
    178      If no modifiers are used with `m', any members you name in the
    179      MEMBER arguments are moved to the _end_ of the archive; you can
    180      use the `a', `b', or `i' modifiers to move them to a specified
    181      place instead.
    182 
    183 `p'
    184      _Print_ the specified members of the archive, to the standard
    185      output file.  If the `v' modifier is specified, show the member
    186      name before copying its contents to standard output.
    187 
    188      If you specify no MEMBER arguments, all the files in the archive
    189      are printed.
    190 
    191 `q'
    192      _Quick append_; Historically, add the files MEMBER... to the end of
    193      ARCHIVE, without checking for replacement.
    194 
    195      The modifiers `a', `b', and `i' do _not_ affect this operation;
    196      new members are always placed at the end of the archive.
    197 
    198      The modifier `v' makes `ar' list each file as it is appended.
    199 
    200      Since the point of this operation is speed, the archive's symbol
    201      table index is not updated, even if it already existed; you can
    202      use `ar s' or `ranlib' explicitly to update the symbol table index.
    203 
    204      However, too many different systems assume quick append rebuilds
    205      the index, so GNU `ar' implements `q' as a synonym for `r'.
    206 
    207 `r'
    208      Insert the files MEMBER... into ARCHIVE (with _replacement_). This
    209      operation differs from `q' in that any previously existing members
    210      are deleted if their names match those being added.
    211 
    212      If one of the files named in MEMBER... does not exist, `ar'
    213      displays an error message, and leaves undisturbed any existing
    214      members of the archive matching that name.
    215 
    216      By default, new members are added at the end of the file; but you
    217      may use one of the modifiers `a', `b', or `i' to request placement
    218      relative to some existing member.
    219 
    220      The modifier `v' used with this operation elicits a line of output
    221      for each file inserted, along with one of the letters `a' or `r'
    222      to indicate whether the file was appended (no old member deleted)
    223      or replaced.
    224 
    225 `t'
    226      Display a _table_ listing the contents of ARCHIVE, or those of the
    227      files listed in MEMBER... that are present in the archive.
    228      Normally only the member name is shown; if you also want to see
    229      the modes (permissions), timestamp, owner, group, and size, you can
    230      request that by also specifying the `v' modifier.
    231 
    232      If you do not specify a MEMBER, all files in the archive are
    233      listed.
    234 
    235      If there is more than one file with the same name (say, `fie') in
    236      an archive (say `b.a'), `ar t b.a fie' lists only the first
    237      instance; to see them all, you must ask for a complete listing--in
    238      our example, `ar t b.a'.
    239 
    240 `x'
    241      _Extract_ members (named MEMBER) from the archive.  You can use
    242      the `v' modifier with this operation, to request that `ar' list
    243      each name as it extracts it.
    244 
    245      If you do not specify a MEMBER, all files in the archive are
    246      extracted.
    247 
    248      Files cannot be extracted from a thin archive.
    249 
    250 
    251    A number of modifiers (MOD) may immediately follow the P keyletter,
    252 to specify variations on an operation's behavior:
    253 
    254 `a'
    255      Add new files _after_ an existing member of the archive.  If you
    256      use the modifier `a', the name of an existing archive member must
    257      be present as the RELPOS argument, before the ARCHIVE
    258      specification.
    259 
    260 `b'
    261      Add new files _before_ an existing member of the archive.  If you
    262      use the modifier `b', the name of an existing archive member must
    263      be present as the RELPOS argument, before the ARCHIVE
    264      specification.  (same as `i').
    265 
    266 `c'
    267      _Create_ the archive.  The specified ARCHIVE is always created if
    268      it did not exist, when you request an update.  But a warning is
    269      issued unless you specify in advance that you expect to create it,
    270      by using this modifier.
    271 
    272 `f'
    273      Truncate names in the archive.  GNU `ar' will normally permit file
    274      names of any length.  This will cause it to create archives which
    275      are not compatible with the native `ar' program on some systems.
    276      If this is a concern, the `f' modifier may be used to truncate file
    277      names when putting them in the archive.
    278 
    279 `i'
    280      Insert new files _before_ an existing member of the archive.  If
    281      you use the modifier `i', the name of an existing archive member
    282      must be present as the RELPOS argument, before the ARCHIVE
    283      specification.  (same as `b').
    284 
    285 `l'
    286      This modifier is accepted but not used.
    287 
    288 `N'
    289      Uses the COUNT parameter.  This is used if there are multiple
    290      entries in the archive with the same name.  Extract or delete
    291      instance COUNT of the given name from the archive.
    292 
    293 `o'
    294      Preserve the _original_ dates of members when extracting them.  If
    295      you do not specify this modifier, files extracted from the archive
    296      are stamped with the time of extraction.
    297 
    298 `P'
    299      Use the full path name when matching names in the archive.  GNU
    300      `ar' can not create an archive with a full path name (such archives
    301      are not POSIX complaint), but other archive creators can.  This
    302      option will cause GNU `ar' to match file names using a complete
    303      path name, which can be convenient when extracting a single file
    304      from an archive created by another tool.
    305 
    306 `s'
    307      Write an object-file index into the archive, or update an existing
    308      one, even if no other change is made to the archive.  You may use
    309      this modifier flag either with any operation, or alone.  Running
    310      `ar s' on an archive is equivalent to running `ranlib' on it.
    311 
    312 `S'
    313      Do not generate an archive symbol table.  This can speed up
    314      building a large library in several steps.  The resulting archive
    315      can not be used with the linker.  In order to build a symbol
    316      table, you must omit the `S' modifier on the last execution of
    317      `ar', or you must run `ranlib' on the archive.
    318 
    319 `T'
    320      Make the specified ARCHIVE a _thin_ archive.  If it already exists
    321      and is a regular archive, the existing members must be present in
    322      the same directory as ARCHIVE.
    323 
    324 `u'
    325      Normally, `ar r'... inserts all files listed into the archive.  If
    326      you would like to insert _only_ those of the files you list that
    327      are newer than existing members of the same names, use this
    328      modifier.  The `u' modifier is allowed only for the operation `r'
    329      (replace).  In particular, the combination `qu' is not allowed,
    330      since checking the timestamps would lose any speed advantage from
    331      the operation `q'.
    332 
    333 `v'
    334      This modifier requests the _verbose_ version of an operation.  Many
    335      operations display additional information, such as filenames
    336      processed, when the modifier `v' is appended.
    337 
    338 `V'
    339      This modifier shows the version number of `ar'.
    340 
    341    `ar' ignores an initial option spelt `-X32_64', for compatibility
    342 with AIX.  The behaviour produced by this option is the default for GNU
    343 `ar'.  `ar' does not support any of the other `-X' options; in
    344 particular, it does not support `-X32' which is the default for AIX
    345 `ar'.
    346 
    347 
    348 File: binutils.info,  Node: ar scripts,  Prev: ar cmdline,  Up: ar
    349 
    350 1.2 Controlling `ar' with a Script
    351 ==================================
    352 
    353      ar -M [ <SCRIPT ]
    354 
    355    If you use the single command-line option `-M' with `ar', you can
    356 control its operation with a rudimentary command language.  This form
    357 of `ar' operates interactively if standard input is coming directly
    358 from a terminal.  During interactive use, `ar' prompts for input (the
    359 prompt is `AR >'), and continues executing even after errors.  If you
    360 redirect standard input to a script file, no prompts are issued, and
    361 `ar' abandons execution (with a nonzero exit code) on any error.
    362 
    363    The `ar' command language is _not_ designed to be equivalent to the
    364 command-line options; in fact, it provides somewhat less control over
    365 archives.  The only purpose of the command language is to ease the
    366 transition to GNU `ar' for developers who already have scripts written
    367 for the MRI "librarian" program.
    368 
    369    The syntax for the `ar' command language is straightforward:
    370    * commands are recognized in upper or lower case; for example, `LIST'
    371      is the same as `list'.  In the following descriptions, commands are
    372      shown in upper case for clarity.
    373 
    374    * a single command may appear on each line; it is the first word on
    375      the line.
    376 
    377    * empty lines are allowed, and have no effect.
    378 
    379    * comments are allowed; text after either of the characters `*' or
    380      `;' is ignored.
    381 
    382    * Whenever you use a list of names as part of the argument to an `ar'
    383      command, you can separate the individual names with either commas
    384      or blanks.  Commas are shown in the explanations below, for
    385      clarity.
    386 
    387    * `+' is used as a line continuation character; if `+' appears at
    388      the end of a line, the text on the following line is considered
    389      part of the current command.
    390 
    391    Here are the commands you can use in `ar' scripts, or when using
    392 `ar' interactively.  Three of them have special significance:
    393 
    394    `OPEN' or `CREATE' specify a "current archive", which is a temporary
    395 file required for most of the other commands.
    396 
    397    `SAVE' commits the changes so far specified by the script.  Prior to
    398 `SAVE', commands affect only the temporary copy of the current archive.
    399 
    400 `ADDLIB ARCHIVE'
    401 `ADDLIB ARCHIVE (MODULE, MODULE, ... MODULE)'
    402      Add all the contents of ARCHIVE (or, if specified, each named
    403      MODULE from ARCHIVE) to the current archive.
    404 
    405      Requires prior use of `OPEN' or `CREATE'.
    406 
    407 `ADDMOD MEMBER, MEMBER, ... MEMBER'
    408      Add each named MEMBER as a module in the current archive.
    409 
    410      Requires prior use of `OPEN' or `CREATE'.
    411 
    412 `CLEAR'
    413      Discard the contents of the current archive, canceling the effect
    414      of any operations since the last `SAVE'.  May be executed (with no
    415      effect) even if  no current archive is specified.
    416 
    417 `CREATE ARCHIVE'
    418      Creates an archive, and makes it the current archive (required for
    419      many other commands).  The new archive is created with a temporary
    420      name; it is not actually saved as ARCHIVE until you use `SAVE'.
    421      You can overwrite existing archives; similarly, the contents of any
    422      existing file named ARCHIVE will not be destroyed until `SAVE'.
    423 
    424 `DELETE MODULE, MODULE, ... MODULE'
    425      Delete each listed MODULE from the current archive; equivalent to
    426      `ar -d ARCHIVE MODULE ... MODULE'.
    427 
    428      Requires prior use of `OPEN' or `CREATE'.
    429 
    430 `DIRECTORY ARCHIVE (MODULE, ... MODULE)'
    431 `DIRECTORY ARCHIVE (MODULE, ... MODULE) OUTPUTFILE'
    432      List each named MODULE present in ARCHIVE.  The separate command
    433      `VERBOSE' specifies the form of the output: when verbose output is
    434      off, output is like that of `ar -t ARCHIVE MODULE...'.  When
    435      verbose output is on, the listing is like `ar -tv ARCHIVE
    436      MODULE...'.
    437 
    438      Output normally goes to the standard output stream; however, if you
    439      specify OUTPUTFILE as a final argument, `ar' directs the output to
    440      that file.
    441 
    442 `END'
    443      Exit from `ar', with a `0' exit code to indicate successful
    444      completion.  This command does not save the output file; if you
    445      have changed the current archive since the last `SAVE' command,
    446      those changes are lost.
    447 
    448 `EXTRACT MODULE, MODULE, ... MODULE'
    449      Extract each named MODULE from the current archive, writing them
    450      into the current directory as separate files.  Equivalent to `ar -x
    451      ARCHIVE MODULE...'.
    452 
    453      Requires prior use of `OPEN' or `CREATE'.
    454 
    455 `LIST'
    456      Display full contents of the current archive, in "verbose" style
    457      regardless of the state of `VERBOSE'.  The effect is like `ar tv
    458      ARCHIVE'.  (This single command is a GNU `ar' enhancement, rather
    459      than present for MRI compatibility.)
    460 
    461      Requires prior use of `OPEN' or `CREATE'.
    462 
    463 `OPEN ARCHIVE'
    464      Opens an existing archive for use as the current archive (required
    465      for many other commands).  Any changes as the result of subsequent
    466      commands will not actually affect ARCHIVE until you next use
    467      `SAVE'.
    468 
    469 `REPLACE MODULE, MODULE, ... MODULE'
    470      In the current archive, replace each existing MODULE (named in the
    471      `REPLACE' arguments) from files in the current working directory.
    472      To execute this command without errors, both the file, and the
    473      module in the current archive, must exist.
    474 
    475      Requires prior use of `OPEN' or `CREATE'.
    476 
    477 `VERBOSE'
    478      Toggle an internal flag governing the output from `DIRECTORY'.
    479      When the flag is on, `DIRECTORY' output matches output from `ar
    480      -tv '....
    481 
    482 `SAVE'
    483      Commit your changes to the current archive, and actually save it
    484      as a file with the name specified in the last `CREATE' or `OPEN'
    485      command.
    486 
    487      Requires prior use of `OPEN' or `CREATE'.
    488 
    489 
    490 
    491 File: binutils.info,  Node: nm,  Next: objcopy,  Prev: ar,  Up: Top
    492 
    493 2 nm
    494 ****
    495 
    496      nm [`-a'|`--debug-syms'] [`-g'|`--extern-only']
    497         [`-B'] [`-C'|`--demangle'[=STYLE]] [`-D'|`--dynamic']
    498         [`-S'|`--print-size'] [`-s'|`--print-armap']
    499         [`-A'|`-o'|`--print-file-name'][`--special-syms']
    500         [`-n'|`-v'|`--numeric-sort'] [`-p'|`--no-sort']
    501         [`-r'|`--reverse-sort'] [`--size-sort'] [`-u'|`--undefined-only']
    502         [`-t' RADIX|`--radix='RADIX] [`-P'|`--portability']
    503         [`--target='BFDNAME] [`-f'FORMAT|`--format='FORMAT]
    504         [`--defined-only'] [`-l'|`--line-numbers'] [`--no-demangle']
    505         [`-V'|`--version'] [`-X 32_64'] [`--help']  [OBJFILE...]
    506 
    507    GNU `nm' lists the symbols from object files OBJFILE....  If no
    508 object files are listed as arguments, `nm' assumes the file `a.out'.
    509 
    510    For each symbol, `nm' shows:
    511 
    512    * The symbol value, in the radix selected by options (see below), or
    513      hexadecimal by default.
    514 
    515    * The symbol type.  At least the following types are used; others
    516      are, as well, depending on the object file format.  If lowercase,
    517      the symbol is local; if uppercase, the symbol is global (external).
    518 
    519     `A'
    520           The symbol's value is absolute, and will not be changed by
    521           further linking.
    522 
    523     `B'
    524     `b'
    525           The symbol is in the uninitialized data section (known as
    526           BSS).
    527 
    528     `C'
    529           The symbol is common.  Common symbols are uninitialized data.
    530           When linking, multiple common symbols may appear with the
    531           same name.  If the symbol is defined anywhere, the common
    532           symbols are treated as undefined references.  For more
    533           details on common symbols, see the discussion of -warn-common
    534           in *Note Linker options: (ld.info)Options.
    535 
    536     `D'
    537     `d'
    538           The symbol is in the initialized data section.
    539 
    540     `G'
    541     `g'
    542           The symbol is in an initialized data section for small
    543           objects.  Some object file formats permit more efficient
    544           access to small data objects, such as a global int variable
    545           as opposed to a large global array.
    546 
    547     `I'
    548           The symbol is an indirect reference to another symbol.  This
    549           is a GNU extension to the a.out object file format which is
    550           rarely used.
    551 
    552     `i'
    553           The symbol is in a section specific to the implementation of
    554           DLLs.
    555 
    556     `N'
    557           The symbol is a debugging symbol.
    558 
    559     `p'
    560           The symbols is in a stack unwind section.
    561 
    562     `R'
    563     `r'
    564           The symbol is in a read only data section.
    565 
    566     `S'
    567     `s'
    568           The symbol is in an uninitialized data section for small
    569           objects.
    570 
    571     `T'
    572     `t'
    573           The symbol is in the text (code) section.
    574 
    575     `U'
    576           The symbol is undefined.
    577 
    578     `V'
    579     `v'
    580           The symbol is a weak object.  When a weak defined symbol is
    581           linked with a normal defined symbol, the normal defined
    582           symbol is used with no error.  When a weak undefined symbol
    583           is linked and the symbol is not defined, the value of the
    584           weak symbol becomes zero with no error.  On some systems,
    585           uppercase indicates that a default value has been specified.
    586 
    587     `W'
    588     `w'
    589           The symbol is a weak symbol that has not been specifically
    590           tagged as a weak object symbol.  When a weak defined symbol
    591           is linked with a normal defined symbol, the normal defined
    592           symbol is used with no error.  When a weak undefined symbol
    593           is linked and the symbol is not defined, the value of the
    594           symbol is determined in a system-specific manner without
    595           error.  On some systems, uppercase indicates that a default
    596           value has been specified.
    597 
    598     `-'
    599           The symbol is a stabs symbol in an a.out object file.  In
    600           this case, the next values printed are the stabs other field,
    601           the stabs desc field, and the stab type.  Stabs symbols are
    602           used to hold debugging information.  For more information,
    603           see *Note Stabs: (stabs.info)Top.
    604 
    605     `?'
    606           The symbol type is unknown, or object file format specific.
    607 
    608    * The symbol name.
    609 
    610    The long and short forms of options, shown here as alternatives, are
    611 equivalent.
    612 
    613 `-A'
    614 `-o'
    615 `--print-file-name'
    616      Precede each symbol by the name of the input file (or archive
    617      member) in which it was found, rather than identifying the input
    618      file once only, before all of its symbols.
    619 
    620 `-a'
    621 `--debug-syms'
    622      Display all symbols, even debugger-only symbols; normally these
    623      are not listed.
    624 
    625 `-B'
    626      The same as `--format=bsd' (for compatibility with the MIPS `nm').
    627 
    628 `-C'
    629 `--demangle[=STYLE]'
    630      Decode ("demangle") low-level symbol names into user-level names.
    631      Besides removing any initial underscore prepended by the system,
    632      this makes C++ function names readable. Different compilers have
    633      different mangling styles. The optional demangling style argument
    634      can be used to choose an appropriate demangling style for your
    635      compiler. *Note c++filt::, for more information on demangling.
    636 
    637 `--no-demangle'
    638      Do not demangle low-level symbol names.  This is the default.
    639 
    640 `-D'
    641 `--dynamic'
    642      Display the dynamic symbols rather than the normal symbols.  This
    643      is only meaningful for dynamic objects, such as certain types of
    644      shared libraries.
    645 
    646 `-f FORMAT'
    647 `--format=FORMAT'
    648      Use the output format FORMAT, which can be `bsd', `sysv', or
    649      `posix'.  The default is `bsd'.  Only the first character of
    650      FORMAT is significant; it can be either upper or lower case.
    651 
    652 `-g'
    653 `--extern-only'
    654      Display only external symbols.
    655 
    656 `-l'
    657 `--line-numbers'
    658      For each symbol, use debugging information to try to find a
    659      filename and line number.  For a defined symbol, look for the line
    660      number of the address of the symbol.  For an undefined symbol,
    661      look for the line number of a relocation entry which refers to the
    662      symbol.  If line number information can be found, print it after
    663      the other symbol information.
    664 
    665 `-n'
    666 `-v'
    667 `--numeric-sort'
    668      Sort symbols numerically by their addresses, rather than
    669      alphabetically by their names.
    670 
    671 `-p'
    672 `--no-sort'
    673      Do not bother to sort the symbols in any order; print them in the
    674      order encountered.
    675 
    676 `-P'
    677 `--portability'
    678      Use the POSIX.2 standard output format instead of the default
    679      format.  Equivalent to `-f posix'.
    680 
    681 `-S'
    682 `--print-size'
    683      Print size, not the value, of defined symbols for the `bsd' output
    684      format.
    685 
    686 `-s'
    687 `--print-armap'
    688      When listing symbols from archive members, include the index: a
    689      mapping (stored in the archive by `ar' or `ranlib') of which
    690      modules contain definitions for which names.
    691 
    692 `-r'
    693 `--reverse-sort'
    694      Reverse the order of the sort (whether numeric or alphabetic); let
    695      the last come first.
    696 
    697 `--size-sort'
    698      Sort symbols by size.  The size is computed as the difference
    699      between the value of the symbol and the value of the symbol with
    700      the next higher value.  If the `bsd' output format is used the
    701      size of the symbol is printed, rather than the value, and `-S'
    702      must be used in order both size and value to be printed.
    703 
    704 `--special-syms'
    705      Display symbols which have a target-specific special meaning.
    706      These symbols are usually used by the target for some special
    707      processing and are not normally helpful when included included in
    708      the normal symbol lists.  For example for ARM targets this option
    709      would skip the mapping symbols used to mark transitions between
    710      ARM code, THUMB code and data.
    711 
    712 `-t RADIX'
    713 `--radix=RADIX'
    714      Use RADIX as the radix for printing the symbol values.  It must be
    715      `d' for decimal, `o' for octal, or `x' for hexadecimal.
    716 
    717 `--target=BFDNAME'
    718      Specify an object code format other than your system's default
    719      format.  *Note Target Selection::, for more information.
    720 
    721 `-u'
    722 `--undefined-only'
    723      Display only undefined symbols (those external to each object
    724      file).
    725 
    726 `--defined-only'
    727      Display only defined symbols for each object file.
    728 
    729 `-V'
    730 `--version'
    731      Show the version number of `nm' and exit.
    732 
    733 `-X'
    734      This option is ignored for compatibility with the AIX version of
    735      `nm'.  It takes one parameter which must be the string `32_64'.
    736      The default mode of AIX `nm' corresponds to `-X 32', which is not
    737      supported by GNU `nm'.
    738 
    739 `--help'
    740      Show a summary of the options to `nm' and exit.
    741 
    742 
    743 File: binutils.info,  Node: objcopy,  Next: objdump,  Prev: nm,  Up: Top
    744 
    745 3 objcopy
    746 *********
    747 
    748      objcopy [`-F' BFDNAME|`--target='BFDNAME]
    749              [`-I' BFDNAME|`--input-target='BFDNAME]
    750              [`-O' BFDNAME|`--output-target='BFDNAME]
    751              [`-B' BFDARCH|`--binary-architecture='BFDARCH]
    752              [`-S'|`--strip-all']
    753              [`-g'|`--strip-debug']
    754              [`-K' SYMBOLNAME|`--keep-symbol='SYMBOLNAME]
    755              [`-N' SYMBOLNAME|`--strip-symbol='SYMBOLNAME]
    756              [`--strip-unneeded-symbol='SYMBOLNAME]
    757              [`-G' SYMBOLNAME|`--keep-global-symbol='SYMBOLNAME]
    758              [`--localize-hidden']
    759              [`-L' SYMBOLNAME|`--localize-symbol='SYMBOLNAME]
    760              [`--globalize-symbol='SYMBOLNAME]
    761              [`-W' SYMBOLNAME|`--weaken-symbol='SYMBOLNAME]
    762              [`-w'|`--wildcard']
    763              [`-x'|`--discard-all']
    764              [`-X'|`--discard-locals']
    765              [`-b' BYTE|`--byte='BYTE]
    766              [`-i' INTERLEAVE|`--interleave='INTERLEAVE]
    767              [`-j' SECTIONNAME|`--only-section='SECTIONNAME]
    768              [`-R' SECTIONNAME|`--remove-section='SECTIONNAME]
    769              [`-p'|`--preserve-dates']
    770              [`--debugging']
    771              [`--gap-fill='VAL]
    772              [`--pad-to='ADDRESS]
    773              [`--set-start='VAL]
    774              [`--adjust-start='INCR]
    775              [`--change-addresses='INCR]
    776              [`--change-section-address' SECTION{=,+,-}VAL]
    777              [`--change-section-lma' SECTION{=,+,-}VAL]
    778              [`--change-section-vma' SECTION{=,+,-}VAL]
    779              [`--change-warnings'] [`--no-change-warnings']
    780              [`--set-section-flags' SECTION=FLAGS]
    781              [`--add-section' SECTIONNAME=FILENAME]
    782              [`--rename-section' OLDNAME=NEWNAME[,FLAGS]]
    783              [`--change-leading-char'] [`--remove-leading-char']
    784              [`--reverse-bytes='NUM]
    785              [`--srec-len='IVAL] [`--srec-forceS3']
    786              [`--redefine-sym' OLD=NEW]
    787              [`--redefine-syms='FILENAME]
    788              [`--weaken']
    789              [`--keep-symbols='FILENAME]
    790              [`--strip-symbols='FILENAME]
    791              [`--strip-unneeded-symbols='FILENAME]
    792              [`--keep-global-symbols='FILENAME]
    793              [`--localize-symbols='FILENAME]
    794              [`--globalize-symbols='FILENAME]
    795              [`--weaken-symbols='FILENAME]
    796              [`--alt-machine-code='INDEX]
    797              [`--prefix-symbols='STRING]
    798              [`--prefix-sections='STRING]
    799              [`--prefix-alloc-sections='STRING]
    800              [`--add-gnu-debuglink='PATH-TO-FILE]
    801              [`--keep-file-symbols']
    802              [`--only-keep-debug']
    803              [`--extract-symbol']
    804              [`--writable-text']
    805              [`--readonly-text']
    806              [`--pure']
    807              [`--impure']
    808              [`-v'|`--verbose']
    809              [`-V'|`--version']
    810              [`--help'] [`--info']
    811              INFILE [OUTFILE]
    812 
    813    The GNU `objcopy' utility copies the contents of an object file to
    814 another.  `objcopy' uses the GNU BFD Library to read and write the
    815 object files.  It can write the destination object file in a format
    816 different from that of the source object file.  The exact behavior of
    817 `objcopy' is controlled by command-line options.  Note that `objcopy'
    818 should be able to copy a fully linked file between any two formats.
    819 However, copying a relocatable object file between any two formats may
    820 not work as expected.
    821 
    822    `objcopy' creates temporary files to do its translations and deletes
    823 them afterward.  `objcopy' uses BFD to do all its translation work; it
    824 has access to all the formats described in BFD and thus is able to
    825 recognize most formats without being told explicitly.  *Note BFD:
    826 (ld.info)BFD.
    827 
    828    `objcopy' can be used to generate S-records by using an output
    829 target of `srec' (e.g., use `-O srec').
    830 
    831    `objcopy' can be used to generate a raw binary file by using an
    832 output target of `binary' (e.g., use `-O binary').  When `objcopy'
    833 generates a raw binary file, it will essentially produce a memory dump
    834 of the contents of the input object file.  All symbols and relocation
    835 information will be discarded.  The memory dump will start at the load
    836 address of the lowest section copied into the output file.
    837 
    838    When generating an S-record or a raw binary file, it may be helpful
    839 to use `-S' to remove sections containing debugging information.  In
    840 some cases `-R' will be useful to remove sections which contain
    841 information that is not needed by the binary file.
    842 
    843    Note--`objcopy' is not able to change the endianness of its input
    844 files.  If the input format has an endianness (some formats do not),
    845 `objcopy' can only copy the inputs into file formats that have the same
    846 endianness or which have no endianness (e.g., `srec').  (However, see
    847 the `--reverse-bytes' option.)
    848 
    849 `INFILE'
    850 `OUTFILE'
    851      The input and output files, respectively.  If you do not specify
    852      OUTFILE, `objcopy' creates a temporary file and destructively
    853      renames the result with the name of INFILE.
    854 
    855 `-I BFDNAME'
    856 `--input-target=BFDNAME'
    857      Consider the source file's object format to be BFDNAME, rather than
    858      attempting to deduce it.  *Note Target Selection::, for more
    859      information.
    860 
    861 `-O BFDNAME'
    862 `--output-target=BFDNAME'
    863      Write the output file using the object format BFDNAME.  *Note
    864      Target Selection::, for more information.
    865 
    866 `-F BFDNAME'
    867 `--target=BFDNAME'
    868      Use BFDNAME as the object format for both the input and the output
    869      file; i.e., simply transfer data from source to destination with no
    870      translation.  *Note Target Selection::, for more information.
    871 
    872 `-B BFDARCH'
    873 `--binary-architecture=BFDARCH'
    874      Useful when transforming a raw binary input file into an object
    875      file.  In this case the output architecture can be set to BFDARCH.
    876      This option will be ignored if the input file has a known BFDARCH.
    877      You can access this binary data inside a program by referencing
    878      the special symbols that are created by the conversion process.
    879      These symbols are called _binary_OBJFILE_start,
    880      _binary_OBJFILE_end and _binary_OBJFILE_size.  e.g. you can
    881      transform a picture file into an object file and then access it in
    882      your code using these symbols.
    883 
    884 `-j SECTIONNAME'
    885 `--only-section=SECTIONNAME'
    886      Copy only the named section from the input file to the output file.
    887      This option may be given more than once.  Note that using this
    888      option inappropriately may make the output file unusable.
    889 
    890 `-R SECTIONNAME'
    891 `--remove-section=SECTIONNAME'
    892      Remove any section named SECTIONNAME from the output file.  This
    893      option may be given more than once.  Note that using this option
    894      inappropriately may make the output file unusable.
    895 
    896 `-S'
    897 `--strip-all'
    898      Do not copy relocation and symbol information from the source file.
    899 
    900 `-g'
    901 `--strip-debug'
    902      Do not copy debugging symbols or sections from the source file.
    903 
    904 `--strip-unneeded'
    905      Strip all symbols that are not needed for relocation processing.
    906 
    907 `-K SYMBOLNAME'
    908 `--keep-symbol=SYMBOLNAME'
    909      When stripping symbols, keep symbol SYMBOLNAME even if it would
    910      normally be stripped.  This option may be given more than once.
    911 
    912 `-N SYMBOLNAME'
    913 `--strip-symbol=SYMBOLNAME'
    914      Do not copy symbol SYMBOLNAME from the source file.  This option
    915      may be given more than once.
    916 
    917 `--strip-unneeded-symbol=SYMBOLNAME'
    918      Do not copy symbol SYMBOLNAME from the source file unless it is
    919      needed by a relocation.  This option may be given more than once.
    920 
    921 `-G SYMBOLNAME'
    922 `--keep-global-symbol=SYMBOLNAME'
    923      Keep only symbol SYMBOLNAME global.  Make all other symbols local
    924      to the file, so that they are not visible externally.  This option
    925      may be given more than once.
    926 
    927 `--localize-hidden'
    928      In an ELF object, mark all symbols that have hidden or internal
    929      visibility as local.  This option applies on top of
    930      symbol-specific localization options such as `-L'.
    931 
    932 `-L SYMBOLNAME'
    933 `--localize-symbol=SYMBOLNAME'
    934      Make symbol SYMBOLNAME local to the file, so that it is not
    935      visible externally.  This option may be given more than once.
    936 
    937 `-W SYMBOLNAME'
    938 `--weaken-symbol=SYMBOLNAME'
    939      Make symbol SYMBOLNAME weak. This option may be given more than
    940      once.
    941 
    942 `--globalize-symbol=SYMBOLNAME'
    943      Give symbol SYMBOLNAME global scoping so that it is visible
    944      outside of the file in which it is defined.  This option may be
    945      given more than once.
    946 
    947 `-w'
    948 `--wildcard'
    949      Permit regular expressions in SYMBOLNAMEs used in other command
    950      line options.  The question mark (?), asterisk (*), backslash (\)
    951      and square brackets ([]) operators can be used anywhere in the
    952      symbol name.  If the first character of the symbol name is the
    953      exclamation point (!) then the sense of the switch is reversed for
    954      that symbol.  For example:
    955 
    956             -w -W !foo -W fo*
    957 
    958      would cause objcopy to weaken all symbols that start with "fo"
    959      except for the symbol "foo".
    960 
    961 `-x'
    962 `--discard-all'
    963      Do not copy non-global symbols from the source file.
    964 
    965 `-X'
    966 `--discard-locals'
    967      Do not copy compiler-generated local symbols.  (These usually
    968      start with `L' or `.'.)
    969 
    970 `-b BYTE'
    971 `--byte=BYTE'
    972      Keep only every BYTEth byte of the input file (header data is not
    973      affected).  BYTE can be in the range from 0 to INTERLEAVE-1, where
    974      INTERLEAVE is given by the `-i' or `--interleave' option, or the
    975      default of 4.  This option is useful for creating files to program
    976      ROM.  It is typically used with an `srec' output target.
    977 
    978 `-i INTERLEAVE'
    979 `--interleave=INTERLEAVE'
    980      Only copy one out of every INTERLEAVE bytes.  Select which byte to
    981      copy with the `-b' or `--byte' option.  The default is 4.
    982      `objcopy' ignores this option if you do not specify either `-b' or
    983      `--byte'.
    984 
    985 `-p'
    986 `--preserve-dates'
    987      Set the access and modification dates of the output file to be the
    988      same as those of the input file.
    989 
    990 `--debugging'
    991      Convert debugging information, if possible.  This is not the
    992      default because only certain debugging formats are supported, and
    993      the conversion process can be time consuming.
    994 
    995 `--gap-fill VAL'
    996      Fill gaps between sections with VAL.  This operation applies to
    997      the _load address_ (LMA) of the sections.  It is done by increasing
    998      the size of the section with the lower address, and filling in the
    999      extra space created with VAL.
   1000 
   1001 `--pad-to ADDRESS'
   1002      Pad the output file up to the load address ADDRESS.  This is done
   1003      by increasing the size of the last section.  The extra space is
   1004      filled in with the value specified by `--gap-fill' (default zero).
   1005 
   1006 `--set-start VAL'
   1007      Set the start address of the new file to VAL.  Not all object file
   1008      formats support setting the start address.
   1009 
   1010 `--change-start INCR'
   1011 `--adjust-start INCR'
   1012      Change the start address by adding INCR.  Not all object file
   1013      formats support setting the start address.
   1014 
   1015 `--change-addresses INCR'
   1016 `--adjust-vma INCR'
   1017      Change the VMA and LMA addresses of all sections, as well as the
   1018      start address, by adding INCR.  Some object file formats do not
   1019      permit section addresses to be changed arbitrarily.  Note that
   1020      this does not relocate the sections; if the program expects
   1021      sections to be loaded at a certain address, and this option is
   1022      used to change the sections such that they are loaded at a
   1023      different address, the program may fail.
   1024 
   1025 `--change-section-address SECTION{=,+,-}VAL'
   1026 `--adjust-section-vma SECTION{=,+,-}VAL'
   1027      Set or change both the VMA address and the LMA address of the named
   1028      SECTION.  If `=' is used, the section address is set to VAL.
   1029      Otherwise, VAL is added to or subtracted from the section address.
   1030      See the comments under `--change-addresses', above. If SECTION
   1031      does not exist in the input file, a warning will be issued, unless
   1032      `--no-change-warnings' is used.
   1033 
   1034 `--change-section-lma SECTION{=,+,-}VAL'
   1035      Set or change the LMA address of the named SECTION.  The LMA
   1036      address is the address where the section will be loaded into
   1037      memory at program load time.  Normally this is the same as the VMA
   1038      address, which is the address of the section at program run time,
   1039      but on some systems, especially those where a program is held in
   1040      ROM, the two can be different.  If `=' is used, the section
   1041      address is set to VAL.  Otherwise, VAL is added to or subtracted
   1042      from the section address.  See the comments under
   1043      `--change-addresses', above.  If SECTION does not exist in the
   1044      input file, a warning will be issued, unless
   1045      `--no-change-warnings' is used.
   1046 
   1047 `--change-section-vma SECTION{=,+,-}VAL'
   1048      Set or change the VMA address of the named SECTION.  The VMA
   1049      address is the address where the section will be located once the
   1050      program has started executing.  Normally this is the same as the
   1051      LMA address, which is the address where the section will be loaded
   1052      into memory, but on some systems, especially those where a program
   1053      is held in ROM, the two can be different.  If `=' is used, the
   1054      section address is set to VAL.  Otherwise, VAL is added to or
   1055      subtracted from the section address.  See the comments under
   1056      `--change-addresses', above.  If SECTION does not exist in the
   1057      input file, a warning will be issued, unless
   1058      `--no-change-warnings' is used.
   1059 
   1060 `--change-warnings'
   1061 `--adjust-warnings'
   1062      If `--change-section-address' or `--change-section-lma' or
   1063      `--change-section-vma' is used, and the named section does not
   1064      exist, issue a warning.  This is the default.
   1065 
   1066 `--no-change-warnings'
   1067 `--no-adjust-warnings'
   1068      Do not issue a warning if `--change-section-address' or
   1069      `--adjust-section-lma' or `--adjust-section-vma' is used, even if
   1070      the named section does not exist.
   1071 
   1072 `--set-section-flags SECTION=FLAGS'
   1073      Set the flags for the named section.  The FLAGS argument is a
   1074      comma separated string of flag names.  The recognized names are
   1075      `alloc', `contents', `load', `noload', `readonly', `code', `data',
   1076      `rom', `share', and `debug'.  You can set the `contents' flag for
   1077      a section which does not have contents, but it is not meaningful
   1078      to clear the `contents' flag of a section which does have
   1079      contents-just remove the section instead.  Not all flags are
   1080      meaningful for all object file formats.
   1081 
   1082 `--add-section SECTIONNAME=FILENAME'
   1083      Add a new section named SECTIONNAME while copying the file.  The
   1084      contents of the new section are taken from the file FILENAME.  The
   1085      size of the section will be the size of the file.  This option only
   1086      works on file formats which can support sections with arbitrary
   1087      names.
   1088 
   1089 `--rename-section OLDNAME=NEWNAME[,FLAGS]'
   1090      Rename a section from OLDNAME to NEWNAME, optionally changing the
   1091      section's flags to FLAGS in the process.  This has the advantage
   1092      over usng a linker script to perform the rename in that the output
   1093      stays as an object file and does not become a linked executable.
   1094 
   1095      This option is particularly helpful when the input format is
   1096      binary, since this will always create a section called .data.  If
   1097      for example, you wanted instead to create a section called .rodata
   1098      containing binary data you could use the following command line to
   1099      achieve it:
   1100 
   1101             objcopy -I binary -O <output_format> -B <architecture> \
   1102              --rename-section .data=.rodata,alloc,load,readonly,data,contents \
   1103              <input_binary_file> <output_object_file>
   1104 
   1105 `--change-leading-char'
   1106      Some object file formats use special characters at the start of
   1107      symbols.  The most common such character is underscore, which
   1108      compilers often add before every symbol.  This option tells
   1109      `objcopy' to change the leading character of every symbol when it
   1110      converts between object file formats.  If the object file formats
   1111      use the same leading character, this option has no effect.
   1112      Otherwise, it will add a character, or remove a character, or
   1113      change a character, as appropriate.
   1114 
   1115 `--remove-leading-char'
   1116      If the first character of a global symbol is a special symbol
   1117      leading character used by the object file format, remove the
   1118      character.  The most common symbol leading character is
   1119      underscore.  This option will remove a leading underscore from all
   1120      global symbols.  This can be useful if you want to link together
   1121      objects of different file formats with different conventions for
   1122      symbol names.  This is different from `--change-leading-char'
   1123      because it always changes the symbol name when appropriate,
   1124      regardless of the object file format of the output file.
   1125 
   1126 `--reverse-bytes=NUM'
   1127      Reverse the bytes in a section with output contents.  A section
   1128      length must be evenly divisible by the value given in order for
   1129      the swap to be able to take place. Reversing takes place before
   1130      the interleaving is performed.
   1131 
   1132      This option is used typically in generating ROM images for
   1133      problematic target systems.  For example, on some target boards,
   1134      the 32-bit words fetched from 8-bit ROMs are re-assembled in
   1135      little-endian byte order regardless of the CPU byte order.
   1136      Depending on the programming model, the endianness of the ROM may
   1137      need to be modified.
   1138 
   1139      Consider a simple file with a section containing the following
   1140      eight bytes:  `12345678'.
   1141 
   1142      Using `--reverse-bytes=2' for the above example, the bytes in the
   1143      output file would be ordered `21436587'.
   1144 
   1145      Using `--reverse-bytes=4' for the above example, the bytes in the
   1146      output file would be ordered `43218765'.
   1147 
   1148      By using `--reverse-bytes=2' for the above example, followed by
   1149      `--reverse-bytes=4' on the output file, the bytes in the second
   1150      output file would be ordered `34127856'.
   1151 
   1152 `--srec-len=IVAL'
   1153      Meaningful only for srec output.  Set the maximum length of the
   1154      Srecords being produced to IVAL.  This length covers both address,
   1155      data and crc fields.
   1156 
   1157 `--srec-forceS3'
   1158      Meaningful only for srec output.  Avoid generation of S1/S2
   1159      records, creating S3-only record format.
   1160 
   1161 `--redefine-sym OLD=NEW'
   1162      Change the name of a symbol OLD, to NEW.  This can be useful when
   1163      one is trying link two things together for which you have no
   1164      source, and there are name collisions.
   1165 
   1166 `--redefine-syms=FILENAME'
   1167      Apply `--redefine-sym' to each symbol pair "OLD NEW" listed in the
   1168      file FILENAME.  FILENAME is simply a flat file, with one symbol
   1169      pair per line.  Line comments may be introduced by the hash
   1170      character.  This option may be given more than once.
   1171 
   1172 `--weaken'
   1173      Change all global symbols in the file to be weak.  This can be
   1174      useful when building an object which will be linked against other
   1175      objects using the `-R' option to the linker.  This option is only
   1176      effective when using an object file format which supports weak
   1177      symbols.
   1178 
   1179 `--keep-symbols=FILENAME'
   1180      Apply `--keep-symbol' option to each symbol listed in the file
   1181      FILENAME.  FILENAME is simply a flat file, with one symbol name
   1182      per line.  Line comments may be introduced by the hash character.
   1183      This option may be given more than once.
   1184 
   1185 `--strip-symbols=FILENAME'
   1186      Apply `--strip-symbol' option to each symbol listed in the file
   1187      FILENAME.  FILENAME is simply a flat file, with one symbol name
   1188      per line.  Line comments may be introduced by the hash character.
   1189      This option may be given more than once.
   1190 
   1191 `--strip-unneeded-symbols=FILENAME'
   1192      Apply `--strip-unneeded-symbol' option to each symbol listed in
   1193      the file FILENAME.  FILENAME is simply a flat file, with one
   1194      symbol name per line.  Line comments may be introduced by the hash
   1195      character.  This option may be given more than once.
   1196 
   1197 `--keep-global-symbols=FILENAME'
   1198      Apply `--keep-global-symbol' option to each symbol listed in the
   1199      file FILENAME.  FILENAME is simply a flat file, with one symbol
   1200      name per line.  Line comments may be introduced by the hash
   1201      character.  This option may be given more than once.
   1202 
   1203 `--localize-symbols=FILENAME'
   1204      Apply `--localize-symbol' option to each symbol listed in the file
   1205      FILENAME.  FILENAME is simply a flat file, with one symbol name
   1206      per line.  Line comments may be introduced by the hash character.
   1207      This option may be given more than once.
   1208 
   1209 `--globalize-symbols=FILENAME'
   1210      Apply `--globalize-symbol' option to each symbol listed in the file
   1211      FILENAME.  FILENAME is simply a flat file, with one symbol name
   1212      per line.  Line comments may be introduced by the hash character.
   1213      This option may be given more than once.
   1214 
   1215 `--weaken-symbols=FILENAME'
   1216      Apply `--weaken-symbol' option to each symbol listed in the file
   1217      FILENAME.  FILENAME is simply a flat file, with one symbol name
   1218      per line.  Line comments may be introduced by the hash character.
   1219      This option may be given more than once.
   1220 
   1221 `--alt-machine-code=INDEX'
   1222      If the output architecture has alternate machine codes, use the
   1223      INDEXth code instead of the default one.  This is useful in case a
   1224      machine is assigned an official code and the tool-chain adopts the
   1225      new code, but other applications still depend on the original code
   1226      being used.  For ELF based architectures if the INDEX alternative
   1227      does not exist then the value is treated as an absolute number to
   1228      be stored in the e_machine field of the ELF header.
   1229 
   1230 `--writable-text'
   1231      Mark the output text as writable.  This option isn't meaningful
   1232      for all object file formats.
   1233 
   1234 `--readonly-text'
   1235      Make the output text write protected.  This option isn't
   1236      meaningful for all object file formats.
   1237 
   1238 `--pure'
   1239      Mark the output file as demand paged.  This option isn't
   1240      meaningful for all object file formats.
   1241 
   1242 `--impure'
   1243      Mark the output file as impure.  This option isn't meaningful for
   1244      all object file formats.
   1245 
   1246 `--prefix-symbols=STRING'
   1247      Prefix all symbols in the output file with STRING.
   1248 
   1249 `--prefix-sections=STRING'
   1250      Prefix all section names in the output file with STRING.
   1251 
   1252 `--prefix-alloc-sections=STRING'
   1253      Prefix all the names of all allocated sections in the output file
   1254      with STRING.
   1255 
   1256 `--add-gnu-debuglink=PATH-TO-FILE'
   1257      Creates a .gnu_debuglink section which contains a reference to
   1258      PATH-TO-FILE and adds it to the output file.
   1259 
   1260 `--keep-file-symbols'
   1261      When stripping a file, perhaps with `--strip-debug' or
   1262      `--strip-unneeded', retain any symbols specifying source file
   1263      names, which would otherwise get stripped.
   1264 
   1265 `--only-keep-debug'
   1266      Strip a file, removing contents of any sections that would not be
   1267      stripped by `--strip-debug' and leaving the debugging sections
   1268      intact.  In ELF files, this preserves all note sections in the
   1269      output.
   1270 
   1271      The intention is that this option will be used in conjunction with
   1272      `--add-gnu-debuglink' to create a two part executable.  One a
   1273      stripped binary which will occupy less space in RAM and in a
   1274      distribution and the second a debugging information file which is
   1275      only needed if debugging abilities are required.  The suggested
   1276      procedure to create these files is as follows:
   1277 
   1278        1. Link the executable as normal.  Assuming that is is called
   1279           `foo' then...
   1280 
   1281        2. Run `objcopy --only-keep-debug foo foo.dbg' to create a file
   1282           containing the debugging info.
   1283 
   1284        3. Run `objcopy --strip-debug foo' to create a stripped
   1285           executable.
   1286 
   1287        4. Run `objcopy --add-gnu-debuglink=foo.dbg foo' to add a link
   1288           to the debugging info into the stripped executable.
   1289 
   1290      Note--the choice of `.dbg' as an extension for the debug info file
   1291      is arbitrary.  Also the `--only-keep-debug' step is optional.  You
   1292      could instead do this:
   1293 
   1294        1. Link the executable as normal.
   1295 
   1296        2. Copy `foo' to  `foo.full'
   1297 
   1298        3. Run `objcopy --strip-debug foo'
   1299 
   1300        4. Run `objcopy --add-gnu-debuglink=foo.full foo'
   1301 
   1302      i.e., the file pointed to by the `--add-gnu-debuglink' can be the
   1303      full executable.  It does not have to be a file created by the
   1304      `--only-keep-debug' switch.
   1305 
   1306      Note--this switch is only intended for use on fully linked files.
   1307      It does not make sense to use it on object files where the
   1308      debugging information may be incomplete.  Besides the
   1309      gnu_debuglink feature currently only supports the presence of one
   1310      filename containing debugging information, not multiple filenames
   1311      on a one-per-object-file basis.
   1312 
   1313 `--extract-symbol'
   1314      Keep the file's section flags and symbols but remove all section
   1315      data.  Specifically, the option:
   1316 
   1317         * removes the contents of all sections;
   1318 
   1319         * sets the size of every section to zero; and
   1320 
   1321         * sets the file's start address to zero.
   1322 
   1323      This option is used to build a `.sym' file for a VxWorks kernel.
   1324      It can also be a useful way of reducing the size of a
   1325      `--just-symbols' linker input file.
   1326 
   1327 `-V'
   1328 `--version'
   1329      Show the version number of `objcopy'.
   1330 
   1331 `-v'
   1332 `--verbose'
   1333      Verbose output: list all object files modified.  In the case of
   1334      archives, `objcopy -V' lists all members of the archive.
   1335 
   1336 `--help'
   1337      Show a summary of the options to `objcopy'.
   1338 
   1339 `--info'
   1340      Display a list showing all architectures and object formats
   1341      available.
   1342 
   1343 
   1344 File: binutils.info,  Node: objdump,  Next: ranlib,  Prev: objcopy,  Up: Top
   1345 
   1346 4 objdump
   1347 *********
   1348 
   1349      objdump [`-a'|`--archive-headers']
   1350              [`-b' BFDNAME|`--target=BFDNAME']
   1351              [`-C'|`--demangle'[=STYLE] ]
   1352              [`-d'|`--disassemble']
   1353              [`-D'|`--disassemble-all']
   1354              [`-z'|`--disassemble-zeroes']
   1355              [`-EB'|`-EL'|`--endian='{big | little }]
   1356              [`-f'|`--file-headers']
   1357              [`-F'|`--file-offsets']
   1358              [`--file-start-context']
   1359              [`-g'|`--debugging']
   1360              [`-e'|`--debugging-tags']
   1361              [`-h'|`--section-headers'|`--headers']
   1362              [`-i'|`--info']
   1363              [`-j' SECTION|`--section='SECTION]
   1364              [`-l'|`--line-numbers']
   1365              [`-S'|`--source']
   1366              [`-m' MACHINE|`--architecture='MACHINE]
   1367              [`-M' OPTIONS|`--disassembler-options='OPTIONS]
   1368              [`-p'|`--private-headers']
   1369              [`-r'|`--reloc']
   1370              [`-R'|`--dynamic-reloc']
   1371              [`-s'|`--full-contents']
   1372              [`-W'|`--dwarf']
   1373              [`-G'|`--stabs']
   1374              [`-t'|`--syms']
   1375              [`-T'|`--dynamic-syms']
   1376              [`-x'|`--all-headers']
   1377              [`-w'|`--wide']
   1378              [`--start-address='ADDRESS]
   1379              [`--stop-address='ADDRESS]
   1380              [`--prefix-addresses']
   1381              [`--[no-]show-raw-insn']
   1382              [`--adjust-vma='OFFSET]
   1383              [`--special-syms']
   1384              [`-V'|`--version']
   1385              [`-H'|`--help']
   1386              OBJFILE...
   1387 
   1388    `objdump' displays information about one or more object files.  The
   1389 options control what particular information to display.  This
   1390 information is mostly useful to programmers who are working on the
   1391 compilation tools, as opposed to programmers who just want their
   1392 program to compile and work.
   1393 
   1394    OBJFILE... are the object files to be examined.  When you specify
   1395 archives, `objdump' shows information on each of the member object
   1396 files.
   1397 
   1398    The long and short forms of options, shown here as alternatives, are
   1399 equivalent.  At least one option from the list
   1400 `-a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-r,-R,-s,-S,-t,-T,-V,-x' must be given.
   1401 
   1402 `-a'
   1403 `--archive-header'
   1404      If any of the OBJFILE files are archives, display the archive
   1405      header information (in a format similar to `ls -l').  Besides the
   1406      information you could list with `ar tv', `objdump -a' shows the
   1407      object file format of each archive member.
   1408 
   1409 `--adjust-vma=OFFSET'
   1410      When dumping information, first add OFFSET to all the section
   1411      addresses.  This is useful if the section addresses do not
   1412      correspond to the symbol table, which can happen when putting
   1413      sections at particular addresses when using a format which can not
   1414      represent section addresses, such as a.out.
   1415 
   1416 `-b BFDNAME'
   1417 `--target=BFDNAME'
   1418      Specify that the object-code format for the object files is
   1419      BFDNAME.  This option may not be necessary; OBJDUMP can
   1420      automatically recognize many formats.
   1421 
   1422      For example,
   1423           objdump -b oasys -m vax -h fu.o
   1424      displays summary information from the section headers (`-h') of
   1425      `fu.o', which is explicitly identified (`-m') as a VAX object file
   1426      in the format produced by Oasys compilers.  You can list the
   1427      formats available with the `-i' option.  *Note Target Selection::,
   1428      for more information.
   1429 
   1430 `-C'
   1431 `--demangle[=STYLE]'
   1432      Decode ("demangle") low-level symbol names into user-level names.
   1433      Besides removing any initial underscore prepended by the system,
   1434      this makes C++ function names readable.  Different compilers have
   1435      different mangling styles. The optional demangling style argument
   1436      can be used to choose an appropriate demangling style for your
   1437      compiler. *Note c++filt::, for more information on demangling.
   1438 
   1439 `-g'
   1440 `--debugging'
   1441      Display debugging information.  This attempts to parse STABS and
   1442      IEEE debugging format information stored in the file and print it
   1443      out using a C like syntax.  If neither of these formats are found
   1444      this option falls back on the `-W' option to print any DWARF
   1445      information in the file.
   1446 
   1447 `-e'
   1448 `--debugging-tags'
   1449      Like `-g', but the information is generated in a format compatible
   1450      with ctags tool.
   1451 
   1452 `-d'
   1453 `--disassemble'
   1454      Display the assembler mnemonics for the machine instructions from
   1455      OBJFILE.  This option only disassembles those sections which are
   1456      expected to contain instructions.
   1457 
   1458 `-D'
   1459 `--disassemble-all'
   1460      Like `-d', but disassemble the contents of all sections, not just
   1461      those expected to contain instructions.
   1462 
   1463 `--prefix-addresses'
   1464      When disassembling, print the complete address on each line.  This
   1465      is the older disassembly format.
   1466 
   1467 `-EB'
   1468 `-EL'
   1469 `--endian={big|little}'
   1470      Specify the endianness of the object files.  This only affects
   1471      disassembly.  This can be useful when disassembling a file format
   1472      which does not describe endianness information, such as S-records.
   1473 
   1474 `-f'
   1475 `--file-headers'
   1476      Display summary information from the overall header of each of the
   1477      OBJFILE files.
   1478 
   1479 `-F'
   1480 `--file-offsets'
   1481      When disassembling sections, whenever a symbol is displayed, also
   1482      display the file offset of the region of data that is about to be
   1483      dumped.  If zeroes are being skipped, then when disassembly
   1484      resumes, tell the user how many zeroes were skipped and the file
   1485      offset of the location from where the disassembly resumes.  When
   1486      dumping sections, display the file offset of the location from
   1487      where the dump starts.
   1488 
   1489 `--file-start-context'
   1490      Specify that when displaying interlisted source code/disassembly
   1491      (assumes `-S') from a file that has not yet been displayed, extend
   1492      the context to the start of the file.
   1493 
   1494 `-h'
   1495 `--section-headers'
   1496 `--headers'
   1497      Display summary information from the section headers of the object
   1498      file.
   1499 
   1500      File segments may be relocated to nonstandard addresses, for
   1501      example by using the `-Ttext', `-Tdata', or `-Tbss' options to
   1502      `ld'.  However, some object file formats, such as a.out, do not
   1503      store the starting address of the file segments.  In those
   1504      situations, although `ld' relocates the sections correctly, using
   1505      `objdump -h' to list the file section headers cannot show the
   1506      correct addresses.  Instead, it shows the usual addresses, which
   1507      are implicit for the target.
   1508 
   1509 `-H'
   1510 `--help'
   1511      Print a summary of the options to `objdump' and exit.
   1512 
   1513 `-i'
   1514 `--info'
   1515      Display a list showing all architectures and object formats
   1516      available for specification with `-b' or `-m'.
   1517 
   1518 `-j NAME'
   1519 `--section=NAME'
   1520      Display information only for section NAME.
   1521 
   1522 `-l'
   1523 `--line-numbers'
   1524      Label the display (using debugging information) with the filename
   1525      and source line numbers corresponding to the object code or relocs
   1526      shown.  Only useful with `-d', `-D', or `-r'.
   1527 
   1528 `-m MACHINE'
   1529 `--architecture=MACHINE'
   1530      Specify the architecture to use when disassembling object files.
   1531      This can be useful when disassembling object files which do not
   1532      describe architecture information, such as S-records.  You can
   1533      list the available architectures with the `-i' option.
   1534 
   1535 `-M OPTIONS'
   1536 `--disassembler-options=OPTIONS'
   1537      Pass target specific information to the disassembler.  Only
   1538      supported on some targets.  If it is necessary to specify more
   1539      than one disassembler option then multiple `-M' options can be
   1540      used or can be placed together into a comma separated list.
   1541 
   1542      If the target is an ARM architecture then this switch can be used
   1543      to select which register name set is used during disassembler.
   1544      Specifying `-M reg-names-std' (the default) will select the
   1545      register names as used in ARM's instruction set documentation, but
   1546      with register 13 called 'sp', register 14 called 'lr' and register
   1547      15 called 'pc'.  Specifying `-M reg-names-apcs' will select the
   1548      name set used by the ARM Procedure Call Standard, whilst
   1549      specifying `-M reg-names-raw' will just use `r' followed by the
   1550      register number.
   1551 
   1552      There are also two variants on the APCS register naming scheme
   1553      enabled by `-M reg-names-atpcs' and `-M reg-names-special-atpcs'
   1554      which use the ARM/Thumb Procedure Call Standard naming
   1555      conventions.  (Either with the normal register names or the
   1556      special register names).
   1557 
   1558      This option can also be used for ARM architectures to force the
   1559      disassembler to interpret all instructions as Thumb instructions by
   1560      using the switch `--disassembler-options=force-thumb'.  This can be
   1561      useful when attempting to disassemble thumb code produced by other
   1562      compilers.
   1563 
   1564      For the x86, some of the options duplicate functions of the `-m'
   1565      switch, but allow finer grained control.  Multiple selections from
   1566      the following may be specified as a comma separated string.
   1567      `x86-64', `i386' and `i8086' select disassembly for the given
   1568      architecture.  `intel' and `att' select between intel syntax mode
   1569      and AT&T syntax mode.  `intel-mnemonic' and `att-mnemonic' select
   1570      between intel mnemonic mode and AT&T mnemonic mode.
   1571      `intel-mnemonic' implies `intel' and `att-mnemonic' implies `att'.
   1572      `addr64', `addr32', `addr16', `data32' and `data16' specify the
   1573      default address size and operand size.  These four options will be
   1574      overridden if `x86-64', `i386' or `i8086' appear later in the
   1575      option string.  Lastly, `suffix', when in AT&T mode, instructs the
   1576      disassembler to print a mnemonic suffix even when the suffix could
   1577      be inferred by the operands.
   1578 
   1579      For PPC, `booke', `booke32' and `booke64' select disassembly of
   1580      BookE instructions.  `32' and `64' select PowerPC and PowerPC64
   1581      disassembly, respectively.  `e300' selects disassembly for the
   1582      e300 family.  `440' selects disassembly for the PowerPC 440.
   1583      `ppcps' selects disassembly for the paired single instructions of
   1584      the PPC750CL.
   1585 
   1586      For MIPS, this option controls the printing of instruction mnemonic
   1587      names and register names in disassembled instructions.  Multiple
   1588      selections from the following may be specified as a comma separated
   1589      string, and invalid options are ignored:
   1590 
   1591     `no-aliases'
   1592           Print the 'raw' instruction mnemonic instead of some pseudo
   1593           instruction mnemonic.  I.e., print 'daddu' or 'or' instead of
   1594           'move', 'sll' instead of 'nop', etc.
   1595 
   1596     `gpr-names=ABI'
   1597           Print GPR (general-purpose register) names as appropriate for
   1598           the specified ABI.  By default, GPR names are selected
   1599           according to the ABI of the binary being disassembled.
   1600 
   1601     `fpr-names=ABI'
   1602           Print FPR (floating-point register) names as appropriate for
   1603           the specified ABI.  By default, FPR numbers are printed
   1604           rather than names.
   1605 
   1606     `cp0-names=ARCH'
   1607           Print CP0 (system control coprocessor; coprocessor 0)
   1608           register names as appropriate for the CPU or architecture
   1609           specified by ARCH.  By default, CP0 register names are
   1610           selected according to the architecture and CPU of the binary
   1611           being disassembled.
   1612 
   1613     `hwr-names=ARCH'
   1614           Print HWR (hardware register, used by the `rdhwr'
   1615           instruction) names as appropriate for the CPU or architecture
   1616           specified by ARCH.  By default, HWR names are selected
   1617           according to the architecture and CPU of the binary being
   1618           disassembled.
   1619 
   1620     `reg-names=ABI'
   1621           Print GPR and FPR names as appropriate for the selected ABI.
   1622 
   1623     `reg-names=ARCH'
   1624           Print CPU-specific register names (CP0 register and HWR names)
   1625           as appropriate for the selected CPU or architecture.
   1626 
   1627      For any of the options listed above, ABI or ARCH may be specified
   1628      as `numeric' to have numbers printed rather than names, for the
   1629      selected types of registers.  You can list the available values of
   1630      ABI and ARCH using the `--help' option.
   1631 
   1632      For VAX, you can specify function entry addresses with `-M
   1633      entry:0xf00ba'.  You can use this multiple times to properly
   1634      disassemble VAX binary files that don't contain symbol tables (like
   1635      ROM dumps).  In these cases, the function entry mask would
   1636      otherwise be decoded as VAX instructions, which would probably
   1637      lead the rest of the function being wrongly disassembled.
   1638 
   1639 `-p'
   1640 `--private-headers'
   1641      Print information that is specific to the object file format.  The
   1642      exact information printed depends upon the object file format.
   1643      For some object file formats, no additional information is printed.
   1644 
   1645 `-r'
   1646 `--reloc'
   1647      Print the relocation entries of the file.  If used with `-d' or
   1648      `-D', the relocations are printed interspersed with the
   1649      disassembly.
   1650 
   1651 `-R'
   1652 `--dynamic-reloc'
   1653      Print the dynamic relocation entries of the file.  This is only
   1654      meaningful for dynamic objects, such as certain types of shared
   1655      libraries.
   1656 
   1657 `-s'
   1658 `--full-contents'
   1659      Display the full contents of any sections requested.  By default
   1660      all non-empty sections are displayed.
   1661 
   1662 `-S'
   1663 `--source'
   1664      Display source code intermixed with disassembly, if possible.
   1665      Implies `-d'.
   1666 
   1667 `--show-raw-insn'
   1668      When disassembling instructions, print the instruction in hex as
   1669      well as in symbolic form.  This is the default except when
   1670      `--prefix-addresses' is used.
   1671 
   1672 `--no-show-raw-insn'
   1673      When disassembling instructions, do not print the instruction
   1674      bytes.  This is the default when `--prefix-addresses' is used.
   1675 
   1676 `-W'
   1677 `--dwarf'
   1678      Displays the contents of the DWARF debug sections in the file, if
   1679      any are present.
   1680 
   1681 `-G'
   1682 `--stabs'
   1683      Display the full contents of any sections requested.  Display the
   1684      contents of the .stab and .stab.index and .stab.excl sections from
   1685      an ELF file.  This is only useful on systems (such as Solaris 2.0)
   1686      in which `.stab' debugging symbol-table entries are carried in an
   1687      ELF section.  In most other file formats, debugging symbol-table
   1688      entries are interleaved with linkage symbols, and are visible in
   1689      the `--syms' output.  For more information on stabs symbols, see
   1690      *Note Stabs: (stabs.info)Top.
   1691 
   1692 `--start-address=ADDRESS'
   1693      Start displaying data at the specified address.  This affects the
   1694      output of the `-d', `-r' and `-s' options.
   1695 
   1696 `--stop-address=ADDRESS'
   1697      Stop displaying data at the specified address.  This affects the
   1698      output of the `-d', `-r' and `-s' options.
   1699 
   1700 `-t'
   1701 `--syms'
   1702      Print the symbol table entries of the file.  This is similar to
   1703      the information provided by the `nm' program, although the display
   1704      format is different.  The format of the output depends upon the
   1705      format of the file being dumped, but there are two main types.
   1706      One looks like this:
   1707 
   1708           [  4](sec  3)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .bss
   1709           [  6](sec  1)(fl 0x00)(ty   0)(scl   2) (nx 0) 0x00000000 fred
   1710 
   1711      where the number inside the square brackets is the number of the
   1712      entry in the symbol table, the SEC number is the section number,
   1713      the FL value are the symbol's flag bits, the TY number is the
   1714      symbol's type, the SCL number is the symbol's storage class and
   1715      the NX value is the number of auxilary entries associated with the
   1716      symbol.  The last two fields are the symbol's value and its name.
   1717 
   1718      The other common output format, usually seen with ELF based files,
   1719      looks like this:
   1720 
   1721           00000000 l    d  .bss   00000000 .bss
   1722           00000000 g       .text  00000000 fred
   1723 
   1724      Here the first number is the symbol's value (sometimes refered to
   1725      as its address).  The next field is actually a set of characters
   1726      and spaces indicating the flag bits that are set on the symbol.
   1727      These characters are described below.  Next is the section with
   1728      which the symbol is associated or _*ABS*_ if the section is
   1729      absolute (ie not connected with any section), or _*UND*_ if the
   1730      section is referenced in the file being dumped, but not defined
   1731      there.
   1732 
   1733      After the section name comes another field, a number, which for
   1734      common symbols is the alignment and for other symbol is the size.
   1735      Finally the symbol's name is displayed.
   1736 
   1737      The flag characters are divided into 7 groups as follows:
   1738     `l'
   1739     `g'
   1740     `!'
   1741           The symbol is local (l), global (g), neither (a space) or
   1742           both (!).  A symbol can be neither local or global for a
   1743           variety of reasons, e.g., because it is used for debugging,
   1744           but it is probably an indication of a bug if it is ever both
   1745           local and global.
   1746 
   1747     `w'
   1748           The symbol is weak (w) or strong (a space).
   1749 
   1750     `C'
   1751           The symbol denotes a constructor (C) or an ordinary symbol (a
   1752           space).
   1753 
   1754     `W'
   1755           The symbol is a warning (W) or a normal symbol (a space).  A
   1756           warning symbol's name is a message to be displayed if the
   1757           symbol following the warning symbol is ever referenced.
   1758 
   1759     `I'
   1760           The symbol is an indirect reference to another symbol (I) or
   1761           a normal symbol (a space).
   1762 
   1763     `d'
   1764     `D'
   1765           The symbol is a debugging symbol (d) or a dynamic symbol (D)
   1766           or a normal symbol (a space).
   1767 
   1768     `F'
   1769 
   1770     `f'
   1771 
   1772     `O'
   1773           The symbol is the name of a function (F) or a file (f) or an
   1774           object (O) or just a normal symbol (a space).
   1775 
   1776 `-T'
   1777 `--dynamic-syms'
   1778      Print the dynamic symbol table entries of the file.  This is only
   1779      meaningful for dynamic objects, such as certain types of shared
   1780      libraries.  This is similar to the information provided by the `nm'
   1781      program when given the `-D' (`--dynamic') option.
   1782 
   1783 `--special-syms'
   1784      When displaying symbols include those which the target considers
   1785      to be special in some way and which would not normally be of
   1786      interest to the user.
   1787 
   1788 `-V'
   1789 `--version'
   1790      Print the version number of `objdump' and exit.
   1791 
   1792 `-x'
   1793 `--all-headers'
   1794      Display all available header information, including the symbol
   1795      table and relocation entries.  Using `-x' is equivalent to
   1796      specifying all of `-a -f -h -p -r -t'.
   1797 
   1798 `-w'
   1799 `--wide'
   1800      Format some lines for output devices that have more than 80
   1801      columns.  Also do not truncate symbol names when they are
   1802      displayed.
   1803 
   1804 `-z'
   1805 `--disassemble-zeroes'
   1806      Normally the disassembly output will skip blocks of zeroes.  This
   1807      option directs the disassembler to disassemble those blocks, just
   1808      like any other data.
   1809 
   1810 
   1811 File: binutils.info,  Node: ranlib,  Next: readelf,  Prev: objdump,  Up: Top
   1812 
   1813 5 ranlib
   1814 ********
   1815 
   1816      ranlib [`-vVt'] ARCHIVE
   1817 
   1818    `ranlib' generates an index to the contents of an archive and stores
   1819 it in the archive.  The index lists each symbol defined by a member of
   1820 an archive that is a relocatable object file.
   1821 
   1822    You may use `nm -s' or `nm --print-armap' to list this index.
   1823 
   1824    An archive with such an index speeds up linking to the library and
   1825 allows routines in the library to call each other without regard to
   1826 their placement in the archive.
   1827 
   1828    The GNU `ranlib' program is another form of GNU `ar'; running
   1829 `ranlib' is completely equivalent to executing `ar -s'.  *Note ar::.
   1830 
   1831 `-v'
   1832 `-V'
   1833 `--version'
   1834      Show the version number of `ranlib'.
   1835 
   1836 `-t'
   1837      Update the timestamp of the symbol map of an archive.
   1838 
   1839 
   1840 File: binutils.info,  Node: size,  Next: strings,  Prev: readelf,  Up: Top
   1841 
   1842 6 size
   1843 ******
   1844 
   1845      size [`-A'|`-B'|`--format='COMPATIBILITY]
   1846           [`--help']
   1847           [`-d'|`-o'|`-x'|`--radix='NUMBER]
   1848           [`--common']
   1849           [`-t'|`--totals']
   1850           [`--target='BFDNAME] [`-V'|`--version']
   1851           [OBJFILE...]
   1852 
   1853    The GNU `size' utility lists the section sizes--and the total
   1854 size--for each of the object or archive files OBJFILE in its argument
   1855 list.  By default, one line of output is generated for each object file
   1856 or each module in an archive.
   1857 
   1858    OBJFILE... are the object files to be examined.  If none are
   1859 specified, the file `a.out' will be used.
   1860 
   1861    The command line options have the following meanings:
   1862 
   1863 `-A'
   1864 `-B'
   1865 `--format=COMPATIBILITY'
   1866      Using one of these options, you can choose whether the output from
   1867      GNU `size' resembles output from System V `size' (using `-A', or
   1868      `--format=sysv'), or Berkeley `size' (using `-B', or
   1869      `--format=berkeley').  The default is the one-line format similar
   1870      to Berkeley's.
   1871 
   1872      Here is an example of the Berkeley (default) format of output from
   1873      `size':
   1874           $ size --format=Berkeley ranlib size
   1875           text    data    bss     dec     hex     filename
   1876           294880  81920   11592   388392  5ed28   ranlib
   1877           294880  81920   11888   388688  5ee50   size
   1878 
   1879      This is the same data, but displayed closer to System V
   1880      conventions:
   1881 
   1882           $ size --format=SysV ranlib size
   1883           ranlib  :
   1884           section         size         addr
   1885           .text         294880         8192
   1886           .data          81920       303104
   1887           .bss           11592       385024
   1888           Total         388392
   1889 
   1890 
   1891           size  :
   1892           section         size         addr
   1893           .text         294880         8192
   1894           .data          81920       303104
   1895           .bss           11888       385024
   1896           Total         388688
   1897 
   1898 `--help'
   1899      Show a summary of acceptable arguments and options.
   1900 
   1901 `-d'
   1902 `-o'
   1903 `-x'
   1904 `--radix=NUMBER'
   1905      Using one of these options, you can control whether the size of
   1906      each section is given in decimal (`-d', or `--radix=10'); octal
   1907      (`-o', or `--radix=8'); or hexadecimal (`-x', or `--radix=16').
   1908      In `--radix=NUMBER', only the three values (8, 10, 16) are
   1909      supported.  The total size is always given in two radices; decimal
   1910      and hexadecimal for `-d' or `-x' output, or octal and hexadecimal
   1911      if you're using `-o'.
   1912 
   1913 `--common'
   1914      Print total size of common symbols in each file.  When using
   1915      Berkeley format these are included in the bss size.
   1916 
   1917 `-t'
   1918 `--totals'
   1919      Show totals of all objects listed (Berkeley format listing mode
   1920      only).
   1921 
   1922 `--target=BFDNAME'
   1923      Specify that the object-code format for OBJFILE is BFDNAME.  This
   1924      option may not be necessary; `size' can automatically recognize
   1925      many formats.  *Note Target Selection::, for more information.
   1926 
   1927 `-V'
   1928 `--version'
   1929      Display the version number of `size'.
   1930 
   1931 
   1932 File: binutils.info,  Node: strings,  Next: strip,  Prev: size,  Up: Top
   1933 
   1934 7 strings
   1935 *********
   1936 
   1937      strings [`-afov'] [`-'MIN-LEN]
   1938              [`-n' MIN-LEN] [`--bytes='MIN-LEN]
   1939              [`-t' RADIX] [`--radix='RADIX]
   1940              [`-e' ENCODING] [`--encoding='ENCODING]
   1941              [`-'] [`--all'] [`--print-file-name']
   1942              [`-T' BFDNAME] [`--target='BFDNAME]
   1943              [`--help'] [`--version'] FILE...
   1944 
   1945    For each FILE given, GNU `strings' prints the printable character
   1946 sequences that are at least 4 characters long (or the number given with
   1947 the options below) and are followed by an unprintable character.  By
   1948 default, it only prints the strings from the initialized and loaded
   1949 sections of object files; for other types of files, it prints the
   1950 strings from the whole file.
   1951 
   1952    `strings' is mainly useful for determining the contents of non-text
   1953 files.
   1954 
   1955 `-a'
   1956 `--all'
   1957 `-'
   1958      Do not scan only the initialized and loaded sections of object
   1959      files; scan the whole files.
   1960 
   1961 `-f'
   1962 `--print-file-name'
   1963      Print the name of the file before each string.
   1964 
   1965 `--help'
   1966      Print a summary of the program usage on the standard output and
   1967      exit.
   1968 
   1969 `-MIN-LEN'
   1970 `-n MIN-LEN'
   1971 `--bytes=MIN-LEN'
   1972      Print sequences of characters that are at least MIN-LEN characters
   1973      long, instead of the default 4.
   1974 
   1975 `-o'
   1976      Like `-t o'.  Some other versions of `strings' have `-o' act like
   1977      `-t d' instead.  Since we can not be compatible with both ways, we
   1978      simply chose one.
   1979 
   1980 `-t RADIX'
   1981 `--radix=RADIX'
   1982      Print the offset within the file before each string.  The single
   1983      character argument specifies the radix of the offset--`o' for
   1984      octal, `x' for hexadecimal, or `d' for decimal.
   1985 
   1986 `-e ENCODING'
   1987 `--encoding=ENCODING'
   1988      Select the character encoding of the strings that are to be found.
   1989      Possible values for ENCODING are: `s' = single-7-bit-byte
   1990      characters (ASCII, ISO 8859, etc., default), `S' =
   1991      single-8-bit-byte characters, `b' = 16-bit bigendian, `l' = 16-bit
   1992      littleendian, `B' = 32-bit bigendian, `L' = 32-bit littleendian.
   1993      Useful for finding wide character strings. (`l' and `b' apply to,
   1994      for example, Unicode UTF-16/UCS-2 encodings).
   1995 
   1996 `-T BFDNAME'
   1997 `--target=BFDNAME'
   1998      Specify an object code format other than your system's default
   1999      format.  *Note Target Selection::, for more information.
   2000 
   2001 `-v'
   2002 `--version'
   2003      Print the program version number on the standard output and exit.
   2004 
   2005 
   2006 File: binutils.info,  Node: strip,  Next: c++filt,  Prev: strings,  Up: Top
   2007 
   2008 8 strip
   2009 *******
   2010 
   2011      strip [`-F' BFDNAME |`--target='BFDNAME]
   2012            [`-I' BFDNAME |`--input-target='BFDNAME]
   2013            [`-O' BFDNAME |`--output-target='BFDNAME]
   2014            [`-s'|`--strip-all']
   2015            [`-S'|`-g'|`-d'|`--strip-debug']
   2016            [`-K' SYMBOLNAME |`--keep-symbol='SYMBOLNAME]
   2017            [`-N' SYMBOLNAME |`--strip-symbol='SYMBOLNAME]
   2018            [`-w'|`--wildcard']
   2019            [`-x'|`--discard-all'] [`-X' |`--discard-locals']
   2020            [`-R' SECTIONNAME |`--remove-section='SECTIONNAME]
   2021            [`-o' FILE] [`-p'|`--preserve-dates']
   2022            [`--keep-file-symbols']
   2023            [`--only-keep-debug']
   2024            [`-v' |`--verbose'] [`-V'|`--version']
   2025            [`--help'] [`--info']
   2026            OBJFILE...
   2027 
   2028    GNU `strip' discards all symbols from object files OBJFILE.  The
   2029 list of object files may include archives.  At least one object file
   2030 must be given.
   2031 
   2032    `strip' modifies the files named in its argument, rather than
   2033 writing modified copies under different names.
   2034 
   2035 `-F BFDNAME'
   2036 `--target=BFDNAME'
   2037      Treat the original OBJFILE as a file with the object code format
   2038      BFDNAME, and rewrite it in the same format.  *Note Target
   2039      Selection::, for more information.
   2040 
   2041 `--help'
   2042      Show a summary of the options to `strip' and exit.
   2043 
   2044 `--info'
   2045      Display a list showing all architectures and object formats
   2046      available.
   2047 
   2048 `-I BFDNAME'
   2049 `--input-target=BFDNAME'
   2050      Treat the original OBJFILE as a file with the object code format
   2051      BFDNAME.  *Note Target Selection::, for more information.
   2052 
   2053 `-O BFDNAME'
   2054 `--output-target=BFDNAME'
   2055      Replace OBJFILE with a file in the output format BFDNAME.  *Note
   2056      Target Selection::, for more information.
   2057 
   2058 `-R SECTIONNAME'
   2059 `--remove-section=SECTIONNAME'
   2060      Remove any section named SECTIONNAME from the output file.  This
   2061      option may be given more than once.  Note that using this option
   2062      inappropriately may make the output file unusable.
   2063 
   2064 `-s'
   2065 `--strip-all'
   2066      Remove all symbols.
   2067 
   2068 `-g'
   2069 `-S'
   2070 `-d'
   2071 `--strip-debug'
   2072      Remove debugging symbols only.
   2073 
   2074 `--strip-unneeded'
   2075      Remove all symbols that are not needed for relocation processing.
   2076 
   2077 `-K SYMBOLNAME'
   2078 `--keep-symbol=SYMBOLNAME'
   2079      When stripping symbols, keep symbol SYMBOLNAME even if it would
   2080      normally be stripped.  This option may be given more than once.
   2081 
   2082 `-N SYMBOLNAME'
   2083 `--strip-symbol=SYMBOLNAME'
   2084      Remove symbol SYMBOLNAME from the source file. This option may be
   2085      given more than once, and may be combined with strip options other
   2086      than `-K'.
   2087 
   2088 `-o FILE'
   2089      Put the stripped output in FILE, rather than replacing the
   2090      existing file.  When this argument is used, only one OBJFILE
   2091      argument may be specified.
   2092 
   2093 `-p'
   2094 `--preserve-dates'
   2095      Preserve the access and modification dates of the file.
   2096 
   2097 `-w'
   2098 `--wildcard'
   2099      Permit regular expressions in SYMBOLNAMEs used in other command
   2100      line options.  The question mark (?), asterisk (*), backslash (\)
   2101      and square brackets ([]) operators can be used anywhere in the
   2102      symbol name.  If the first character of the symbol name is the
   2103      exclamation point (!) then the sense of the switch is reversed for
   2104      that symbol.  For example:
   2105 
   2106             -w -K !foo -K fo*
   2107 
   2108      would cause strip to only keep symbols that start with the letters
   2109      "fo", but to discard the symbol "foo".
   2110 
   2111 `-x'
   2112 `--discard-all'
   2113      Remove non-global symbols.
   2114 
   2115 `-X'
   2116 `--discard-locals'
   2117      Remove compiler-generated local symbols.  (These usually start
   2118      with `L' or `.'.)
   2119 
   2120 `--keep-file-symbols'
   2121      When stripping a file, perhaps with `--strip-debug' or
   2122      `--strip-unneeded', retain any symbols specifying source file
   2123      names, which would otherwise get stripped.
   2124 
   2125 `--only-keep-debug'
   2126      Strip a file, removing contents of any sections that would not be
   2127      stripped by `--strip-debug' and leaving the debugging sections
   2128      intact.  In ELF files, this preserves all note sections in the
   2129      output.
   2130 
   2131      The intention is that this option will be used in conjunction with
   2132      `--add-gnu-debuglink' to create a two part executable.  One a
   2133      stripped binary which will occupy less space in RAM and in a
   2134      distribution and the second a debugging information file which is
   2135      only needed if debugging abilities are required.  The suggested
   2136      procedure to create these files is as follows:
   2137 
   2138        1. Link the executable as normal.  Assuming that is is called
   2139           `foo' then...
   2140 
   2141        2. Run `objcopy --only-keep-debug foo foo.dbg' to create a file
   2142           containing the debugging info.
   2143 
   2144        3. Run `objcopy --strip-debug foo' to create a stripped
   2145           executable.
   2146 
   2147        4. Run `objcopy --add-gnu-debuglink=foo.dbg foo' to add a link
   2148           to the debugging info into the stripped executable.
   2149 
   2150      Note--the choice of `.dbg' as an extension for the debug info file
   2151      is arbitrary.  Also the `--only-keep-debug' step is optional.  You
   2152      could instead do this:
   2153 
   2154        1. Link the executable as normal.
   2155 
   2156        2. Copy `foo' to `foo.full'
   2157 
   2158        3. Run `strip --strip-debug foo'
   2159 
   2160        4. Run `objcopy --add-gnu-debuglink=foo.full foo'
   2161 
   2162      i.e., the file pointed to by the `--add-gnu-debuglink' can be the
   2163      full executable.  It does not have to be a file created by the
   2164      `--only-keep-debug' switch.
   2165 
   2166      Note--this switch is only intended for use on fully linked files.
   2167      It does not make sense to use it on object files where the
   2168      debugging information may be incomplete.  Besides the
   2169      gnu_debuglink feature currently only supports the presence of one
   2170      filename containing debugging information, not multiple filenames
   2171      on a one-per-object-file basis.
   2172 
   2173 `-V'
   2174 `--version'
   2175      Show the version number for `strip'.
   2176 
   2177 `-v'
   2178 `--verbose'
   2179      Verbose output: list all object files modified.  In the case of
   2180      archives, `strip -v' lists all members of the archive.
   2181 
   2182 
   2183 File: binutils.info,  Node: c++filt,  Next: addr2line,  Prev: strip,  Up: Top
   2184 
   2185 9 c++filt
   2186 *********
   2187 
   2188      c++filt [`-_'|`--strip-underscores']
   2189              [`-n'|`--no-strip-underscores']
   2190              [`-p'|`--no-params']
   2191              [`-t'|`--types']
   2192              [`-i'|`--no-verbose']
   2193              [`-s' FORMAT|`--format='FORMAT]
   2194              [`--help']  [`--version']  [SYMBOL...]
   2195 
   2196    The C++ and Java languages provide function overloading, which means
   2197 that you can write many functions with the same name, providing that
   2198 each function takes parameters of different types.  In order to be able
   2199 to distinguish these similarly named functions C++ and Java encode them
   2200 into a low-level assembler name which uniquely identifies each
   2201 different version.  This process is known as "mangling". The `c++filt'
   2202 (1) program does the inverse mapping: it decodes ("demangles") low-level
   2203 names into user-level names so that they can be read.
   2204 
   2205    Every alphanumeric word (consisting of letters, digits, underscores,
   2206 dollars, or periods) seen in the input is a potential mangled name.  If
   2207 the name decodes into a C++ name, the C++ name replaces the low-level
   2208 name in the output, otherwise the original word is output.  In this way
   2209 you can pass an entire assembler source file, containing mangled names,
   2210 through `c++filt' and see the same source file containing demangled
   2211 names.
   2212 
   2213    You can also use `c++filt' to decipher individual symbols by passing
   2214 them on the command line:
   2215 
   2216      c++filt SYMBOL
   2217 
   2218    If no SYMBOL arguments are given, `c++filt' reads symbol names from
   2219 the standard input instead.  All the results are printed on the
   2220 standard output.  The difference between reading names from the command
   2221 line versus reading names from the standard input is that command line
   2222 arguments are expected to be just mangled names and no checking is
   2223 performed to separate them from surrounding text.  Thus for example:
   2224 
   2225      c++filt -n _Z1fv
   2226 
   2227    will work and demangle the name to "f()" whereas:
   2228 
   2229      c++filt -n _Z1fv,
   2230 
   2231    will not work.  (Note the extra comma at the end of the mangled name
   2232 which makes it invalid).  This command however will work:
   2233 
   2234      echo _Z1fv, | c++filt -n
   2235 
   2236    and will display "f(),", i.e., the demangled name followed by a
   2237 trailing comma.  This behaviour is because when the names are read from
   2238 the standard input it is expected that they might be part of an
   2239 assembler source file where there might be extra, extraneous characters
   2240 trailing after a mangled name.  For example:
   2241 
   2242          .type   _Z1fv, @function
   2243 
   2244 `-_'
   2245 `--strip-underscores'
   2246      On some systems, both the C and C++ compilers put an underscore in
   2247      front of every name.  For example, the C name `foo' gets the
   2248      low-level name `_foo'.  This option removes the initial
   2249      underscore.  Whether `c++filt' removes the underscore by default
   2250      is target dependent.
   2251 
   2252 `-j'
   2253 `--java'
   2254      Prints demangled names using Java syntax.  The default is to use
   2255      C++ syntax.
   2256 
   2257 `-n'
   2258 `--no-strip-underscores'
   2259      Do not remove the initial underscore.
   2260 
   2261 `-p'
   2262 `--no-params'
   2263      When demangling the name of a function, do not display the types of
   2264      the function's parameters.
   2265 
   2266 `-t'
   2267 `--types'
   2268      Attempt to demangle types as well as function names.  This is
   2269      disabled by default since mangled types are normally only used
   2270      internally in the compiler, and they can be confused with
   2271      non-mangled names.  For example, a function called "a" treated as
   2272      a mangled type name would be demangled to "signed char".
   2273 
   2274 `-i'
   2275 `--no-verbose'
   2276      Do not include implementation details (if any) in the demangled
   2277      output.
   2278 
   2279 `-s FORMAT'
   2280 `--format=FORMAT'
   2281      `c++filt' can decode various methods of mangling, used by
   2282      different compilers.  The argument to this option selects which
   2283      method it uses:
   2284 
   2285     `auto'
   2286           Automatic selection based on executable (the default method)
   2287 
   2288     `gnu'
   2289           the one used by the GNU C++ compiler (g++)
   2290 
   2291     `lucid'
   2292           the one used by the Lucid compiler (lcc)
   2293 
   2294     `arm'
   2295           the one specified by the C++ Annotated Reference Manual
   2296 
   2297     `hp'
   2298           the one used by the HP compiler (aCC)
   2299 
   2300     `edg'
   2301           the one used by the EDG compiler
   2302 
   2303     `gnu-v3'
   2304           the one used by the GNU C++ compiler (g++) with the V3 ABI.
   2305 
   2306     `java'
   2307           the one used by the GNU Java compiler (gcj)
   2308 
   2309     `gnat'
   2310           the one used by the GNU Ada compiler (GNAT).
   2311 
   2312 `--help'
   2313      Print a summary of the options to `c++filt' and exit.
   2314 
   2315 `--version'
   2316      Print the version number of `c++filt' and exit.
   2317 
   2318      _Warning:_ `c++filt' is a new utility, and the details of its user
   2319      interface are subject to change in future releases.  In particular,
   2320      a command-line option may be required in the future to decode a
   2321      name passed as an argument on the command line; in other words,
   2322 
   2323           c++filt SYMBOL
   2324 
   2325      may in a future release become
   2326 
   2327           c++filt OPTION SYMBOL
   2328 
   2329    ---------- Footnotes ----------
   2330 
   2331    (1) MS-DOS does not allow `+' characters in file names, so on MS-DOS
   2332 this program is named `CXXFILT'.
   2333 
   2334 
   2335 File: binutils.info,  Node: addr2line,  Next: nlmconv,  Prev: c++filt,  Up: Top
   2336 
   2337 10 addr2line
   2338 ************
   2339 
   2340      addr2line [`-b' BFDNAME|`--target='BFDNAME]
   2341                [`-C'|`--demangle'[=STYLE]]
   2342                [`-e' FILENAME|`--exe='FILENAME]
   2343                [`-f'|`--functions'] [`-s'|`--basename']
   2344                [`-i'|`--inlines']
   2345                [`-j'|`--section='NAME]
   2346                [`-H'|`--help'] [`-V'|`--version']
   2347                [addr addr ...]
   2348 
   2349    `addr2line' translates addresses into file names and line numbers.
   2350 Given an address in an executable or an offset in a section of a
   2351 relocatable object, it uses the debugging information to figure out
   2352 which file name and line number are associated with it.
   2353 
   2354    The executable or relocatable object to use is specified with the
   2355 `-e' option.  The default is the file `a.out'.  The section in the
   2356 relocatable object to use is specified with the `-j' option.
   2357 
   2358    `addr2line' has two modes of operation.
   2359 
   2360    In the first, hexadecimal addresses are specified on the command
   2361 line, and `addr2line' displays the file name and line number for each
   2362 address.
   2363 
   2364    In the second, `addr2line' reads hexadecimal addresses from standard
   2365 input, and prints the file name and line number for each address on
   2366 standard output.  In this mode, `addr2line' may be used in a pipe to
   2367 convert dynamically chosen addresses.
   2368 
   2369    The format of the output is `FILENAME:LINENO'.  The file name and
   2370 line number for each address is printed on a separate line.  If the
   2371 `-f' option is used, then each `FILENAME:LINENO' line is preceded by a
   2372 `FUNCTIONNAME' line which is the name of the function containing the
   2373 address.
   2374 
   2375    If the file name or function name can not be determined, `addr2line'
   2376 will print two question marks in their place.  If the line number can
   2377 not be determined, `addr2line' will print 0.
   2378 
   2379    The long and short forms of options, shown here as alternatives, are
   2380 equivalent.
   2381 
   2382 `-b BFDNAME'
   2383 `--target=BFDNAME'
   2384      Specify that the object-code format for the object files is
   2385      BFDNAME.
   2386 
   2387 `-C'
   2388 `--demangle[=STYLE]'
   2389      Decode ("demangle") low-level symbol names into user-level names.
   2390      Besides removing any initial underscore prepended by the system,
   2391      this makes C++ function names readable.  Different compilers have
   2392      different mangling styles. The optional demangling style argument
   2393      can be used to choose an appropriate demangling style for your
   2394      compiler. *Note c++filt::, for more information on demangling.
   2395 
   2396 `-e FILENAME'
   2397 `--exe=FILENAME'
   2398      Specify the name of the executable for which addresses should be
   2399      translated.  The default file is `a.out'.
   2400 
   2401 `-f'
   2402 `--functions'
   2403      Display function names as well as file and line number information.
   2404 
   2405 `-s'
   2406 `--basenames'
   2407      Display only the base of each file name.
   2408 
   2409 `-i'
   2410 `--inlines'
   2411      If the address belongs to a function that was inlined, the source
   2412      information for all enclosing scopes back to the first non-inlined
   2413      function will also be printed.  For example, if `main' inlines
   2414      `callee1' which inlines `callee2', and address is from `callee2',
   2415      the source information for `callee1' and `main' will also be
   2416      printed.
   2417 
   2418 `-j'
   2419 `--section'
   2420      Read offsets relative to the specified section instead of absolute
   2421      addresses.
   2422 
   2423 
   2424 File: binutils.info,  Node: nlmconv,  Next: windres,  Prev: addr2line,  Up: Top
   2425 
   2426 11 nlmconv
   2427 **********
   2428 
   2429 `nlmconv' converts a relocatable object file into a NetWare Loadable
   2430 Module.
   2431 
   2432      _Warning:_ `nlmconv' is not always built as part of the binary
   2433      utilities, since it is only useful for NLM targets.
   2434 
   2435      nlmconv [`-I' BFDNAME|`--input-target='BFDNAME]
   2436              [`-O' BFDNAME|`--output-target='BFDNAME]
   2437              [`-T' HEADERFILE|`--header-file='HEADERFILE]
   2438              [`-d'|`--debug'] [`-l' LINKER|`--linker='LINKER]
   2439              [`-h'|`--help'] [`-V'|`--version']
   2440              INFILE OUTFILE
   2441 
   2442    `nlmconv' converts the relocatable `i386' object file INFILE into
   2443 the NetWare Loadable Module OUTFILE, optionally reading HEADERFILE for
   2444 NLM header information.  For instructions on writing the NLM command
   2445 file language used in header files, see the `linkers' section,
   2446 `NLMLINK' in particular, of the `NLM Development and Tools Overview',
   2447 which is part of the NLM Software Developer's Kit ("NLM SDK"),
   2448 available from Novell, Inc.  `nlmconv' uses the GNU Binary File
   2449 Descriptor library to read INFILE; see *Note BFD: (ld.info)BFD, for
   2450 more information.
   2451 
   2452    `nlmconv' can perform a link step.  In other words, you can list
   2453 more than one object file for input if you list them in the definitions
   2454 file (rather than simply specifying one input file on the command line).
   2455 In this case, `nlmconv' calls the linker for you.
   2456 
   2457 `-I BFDNAME'
   2458 `--input-target=BFDNAME'
   2459      Object format of the input file.  `nlmconv' can usually determine
   2460      the format of a given file (so no default is necessary).  *Note
   2461      Target Selection::, for more information.
   2462 
   2463 `-O BFDNAME'
   2464 `--output-target=BFDNAME'
   2465      Object format of the output file.  `nlmconv' infers the output
   2466      format based on the input format, e.g. for a `i386' input file the
   2467      output format is `nlm32-i386'.  *Note Target Selection::, for more
   2468      information.
   2469 
   2470 `-T HEADERFILE'
   2471 `--header-file=HEADERFILE'
   2472      Reads HEADERFILE for NLM header information.  For instructions on
   2473      writing the NLM command file language used in header files, see
   2474      see the `linkers' section, of the `NLM Development and Tools
   2475      Overview', which is part of the NLM Software Developer's Kit,
   2476      available from Novell, Inc.
   2477 
   2478 `-d'
   2479 `--debug'
   2480      Displays (on standard error) the linker command line used by
   2481      `nlmconv'.
   2482 
   2483 `-l LINKER'
   2484 `--linker=LINKER'
   2485      Use LINKER for any linking.  LINKER can be an absolute or a
   2486      relative pathname.
   2487 
   2488 `-h'
   2489 `--help'
   2490      Prints a usage summary.
   2491 
   2492 `-V'
   2493 `--version'
   2494      Prints the version number for `nlmconv'.
   2495 
   2496 
   2497 File: binutils.info,  Node: windmc,  Next: dlltool,  Prev: windres,  Up: Top
   2498 
   2499 12 windmc
   2500 *********
   2501 
   2502 `windmc' may be used to generator Windows message resources.
   2503 
   2504      _Warning:_ `windmc' is not always built as part of the binary
   2505      utilities, since it is only useful for Windows targets.
   2506 
   2507      windmc [options] input-file
   2508 
   2509    `windmc' reads message definitions from an input file (.mc) and
   2510 translate them into a set of output files.  The output files may be of
   2511 four kinds:
   2512 
   2513 `h'
   2514      A C header file containing the message definitions.
   2515 
   2516 `rc'
   2517      A resource file compilable by the `windres' tool.
   2518 
   2519 `bin'
   2520      One or more binary files containing the resource data for a
   2521      specific message language.
   2522 
   2523 `dbg'
   2524      A C include file that maps message id's to their symbolic name.
   2525 
   2526    The exact description of these different formats is available in
   2527 documentation from Microsoft.
   2528 
   2529    When `windmc' converts from the `mc' format to the `bin' format,
   2530 `rc', `h', and optional `dbg' it is acting like the Windows Message
   2531 Compiler.
   2532 
   2533 `-a'
   2534 `--ascii_in'
   2535      Specifies that the input file specified is ANSI. This is the
   2536      default behaviour.
   2537 
   2538 `-A'
   2539 `--ascii_out'
   2540      Specifies that messages in the output `bin' files should be in ANSI
   2541      format.
   2542 
   2543 `-b'
   2544 `--binprefix'
   2545      Specifies that `bin' filenames should have to be prefixed by the
   2546      basename of the source file.
   2547 
   2548 `-c'
   2549 `--customflag'
   2550      Sets the customer bit in all message id's.
   2551 
   2552 `-C CODEPAGE'
   2553 `--codepage_in CODEPAGE'
   2554      Sets the default codepage to be used to convert input file to
   2555      UTF16. The default is ocdepage 1252.
   2556 
   2557 `-d'
   2558 `--decimal_values'
   2559      Outputs the constants in the header file in decimal. Default is
   2560      using hexadecimal output.
   2561 
   2562 `-e EXT'
   2563 `--extension EXT'
   2564      The extension for the header file. The default is .h extension.
   2565 
   2566 `-F TARGET'
   2567 `--target TARGET'
   2568      Specify the BFD format to use for a bin file as output.  This is a
   2569      BFD target name; you can use the `--help' option to see a list of
   2570      supported targets.  Normally `windmc' will use the default format,
   2571      which is the first one listed by the `--help' option.  *Note
   2572      Target Selection::.
   2573 
   2574 `-h PATH'
   2575 `--headerdir PATH'
   2576      The target directory of the generated header file. The default is
   2577      the current directory.
   2578 
   2579 `-H'
   2580 `--help'
   2581      Displays a list of command line options and then exits.
   2582 
   2583 `-m CHARACTERS'
   2584 `--maxlength CHARACTERS'
   2585      Instructs `windmc' to generate a warning if the length of any
   2586      message exceeds the number specified.
   2587 
   2588 `-n'
   2589 `--nullterminate'
   2590      Terminate message text in `bin' files by zero. By default they are
   2591      terminated by CR/LF.
   2592 
   2593 `-o'
   2594 `--hresult_use'
   2595      Not yet implemented. Instructs `windmc' to generate an OLE2 header
   2596      file, using HRESULT definitions. Status codes are used if the flag
   2597      is not specified.
   2598 
   2599 `-O CODEPAGE'
   2600 `--codepage_out CODEPAGE'
   2601      Sets the default codepage to be used to output text files. The
   2602      default is ocdepage 1252.
   2603 
   2604 `-r PATH'
   2605 `--rcdir PATH'
   2606      The target directory for the generated `rc' script and the
   2607      generated `bin' files that the resource compiler script includes.
   2608      The default is the current directory.
   2609 
   2610 `-u'
   2611 `--unicode_in'
   2612      Specifies that the input file is UTF16.
   2613 
   2614 `-U'
   2615 `--unicode_out'
   2616      Specifies that messages in the output `bin' file should be in UTF16
   2617      format. This is the default behaviour.
   2618 
   2619 `-v'
   2620 
   2621 `--verbose'
   2622      Enable verbose mode.
   2623 
   2624 `-V'
   2625 
   2626 `--version'
   2627      Prints the version number for `windmc'.
   2628 
   2629 `-x PATH'
   2630 `--xdgb PATH'
   2631      The path of the `dbg' C include file that maps message id's to the
   2632      symbolic name. No such file is generated without specifying the
   2633      switch.
   2634 
   2635 
   2636 File: binutils.info,  Node: windres,  Next: windmc,  Prev: nlmconv,  Up: Top
   2637 
   2638 13 windres
   2639 **********
   2640 
   2641 `windres' may be used to manipulate Windows resources.
   2642 
   2643      _Warning:_ `windres' is not always built as part of the binary
   2644      utilities, since it is only useful for Windows targets.
   2645 
   2646      windres [options] [input-file] [output-file]
   2647 
   2648    `windres' reads resources from an input file and copies them into an
   2649 output file.  Either file may be in one of three formats:
   2650 
   2651 `rc'
   2652      A text format read by the Resource Compiler.
   2653 
   2654 `res'
   2655      A binary format generated by the Resource Compiler.
   2656 
   2657 `coff'
   2658      A COFF object or executable.
   2659 
   2660    The exact description of these different formats is available in
   2661 documentation from Microsoft.
   2662 
   2663    When `windres' converts from the `rc' format to the `res' format, it
   2664 is acting like the Windows Resource Compiler.  When `windres' converts
   2665 from the `res' format to the `coff' format, it is acting like the
   2666 Windows `CVTRES' program.
   2667 
   2668    When `windres' generates an `rc' file, the output is similar but not
   2669 identical to the format expected for the input.  When an input `rc'
   2670 file refers to an external filename, an output `rc' file will instead
   2671 include the file contents.
   2672 
   2673    If the input or output format is not specified, `windres' will guess
   2674 based on the file name, or, for the input file, the file contents.  A
   2675 file with an extension of `.rc' will be treated as an `rc' file, a file
   2676 with an extension of `.res' will be treated as a `res' file, and a file
   2677 with an extension of `.o' or `.exe' will be treated as a `coff' file.
   2678 
   2679    If no output file is specified, `windres' will print the resources
   2680 in `rc' format to standard output.
   2681 
   2682    The normal use is for you to write an `rc' file, use `windres' to
   2683 convert it to a COFF object file, and then link the COFF file into your
   2684 application.  This will make the resources described in the `rc' file
   2685 available to Windows.
   2686 
   2687 `-i FILENAME'
   2688 `--input FILENAME'
   2689      The name of the input file.  If this option is not used, then
   2690      `windres' will use the first non-option argument as the input file
   2691      name.  If there are no non-option arguments, then `windres' will
   2692      read from standard input.  `windres' can not read a COFF file from
   2693      standard input.
   2694 
   2695 `-o FILENAME'
   2696 `--output FILENAME'
   2697      The name of the output file.  If this option is not used, then
   2698      `windres' will use the first non-option argument, after any used
   2699      for the input file name, as the output file name.  If there is no
   2700      non-option argument, then `windres' will write to standard output.
   2701      `windres' can not write a COFF file to standard output.  Note, for
   2702      compatibility with `rc' the option `-fo' is also accepted, but its
   2703      use is not recommended.
   2704 
   2705 `-J FORMAT'
   2706 `--input-format FORMAT'
   2707      The input format to read.  FORMAT may be `res', `rc', or `coff'.
   2708      If no input format is specified, `windres' will guess, as
   2709      described above.
   2710 
   2711 `-O FORMAT'
   2712 `--output-format FORMAT'
   2713      The output format to generate.  FORMAT may be `res', `rc', or
   2714      `coff'.  If no output format is specified, `windres' will guess,
   2715      as described above.
   2716 
   2717 `-F TARGET'
   2718 `--target TARGET'
   2719      Specify the BFD format to use for a COFF file as input or output.
   2720      This is a BFD target name; you can use the `--help' option to see
   2721      a list of supported targets.  Normally `windres' will use the
   2722      default format, which is the first one listed by the `--help'
   2723      option.  *Note Target Selection::.
   2724 
   2725 `--preprocessor PROGRAM'
   2726      When `windres' reads an `rc' file, it runs it through the C
   2727      preprocessor first.  This option may be used to specify the
   2728      preprocessor to use, including any leading arguments.  The default
   2729      preprocessor argument is `gcc -E -xc-header -DRC_INVOKED'.
   2730 
   2731 `-I DIRECTORY'
   2732 `--include-dir DIRECTORY'
   2733      Specify an include directory to use when reading an `rc' file.
   2734      `windres' will pass this to the preprocessor as an `-I' option.
   2735      `windres' will also search this directory when looking for files
   2736      named in the `rc' file.  If the argument passed to this command
   2737      matches any of the supported FORMATS (as described in the `-J'
   2738      option), it will issue a deprecation warning, and behave just like
   2739      the `-J' option.  New programs should not use this behaviour.  If a
   2740      directory happens to match a FORMAT, simple prefix it with `./' to
   2741      disable the backward compatibility.
   2742 
   2743 `-D TARGET'
   2744 `--define SYM[=VAL]'
   2745      Specify a `-D' option to pass to the preprocessor when reading an
   2746      `rc' file.
   2747 
   2748 `-U TARGET'
   2749 `--undefine SYM'
   2750      Specify a `-U' option to pass to the preprocessor when reading an
   2751      `rc' file.
   2752 
   2753 `-r'
   2754      Ignored for compatibility with rc.
   2755 
   2756 `-v'
   2757      Enable verbose mode.  This tells you what the preprocessor is if
   2758      you didn't specify one.
   2759 
   2760 `-c VAL'
   2761 
   2762 `--codepage VAL'
   2763      Specify the default codepage to use when reading an `rc' file.
   2764      VAL should be a hexadecimal prefixed by `0x' or decimal codepage
   2765      code. The valid range is from zero up to 0xffff, but the validity
   2766      of the codepage is host and configuration dependent.
   2767 
   2768 `-l VAL'
   2769 
   2770 `--language VAL'
   2771      Specify the default language to use when reading an `rc' file.
   2772      VAL should be a hexadecimal language code.  The low eight bits are
   2773      the language, and the high eight bits are the sublanguage.
   2774 
   2775 `--use-temp-file'
   2776      Use a temporary file to instead of using popen to read the output
   2777      of the preprocessor. Use this option if the popen implementation
   2778      is buggy on the host (eg., certain non-English language versions
   2779      of Windows 95 and Windows 98 are known to have buggy popen where
   2780      the output will instead go the console).
   2781 
   2782 `--no-use-temp-file'
   2783      Use popen, not a temporary file, to read the output of the
   2784      preprocessor.  This is the default behaviour.
   2785 
   2786 `-h'
   2787 
   2788 `--help'
   2789      Prints a usage summary.
   2790 
   2791 `-V'
   2792 
   2793 `--version'
   2794      Prints the version number for `windres'.
   2795 
   2796 `--yydebug'
   2797      If `windres' is compiled with `YYDEBUG' defined as `1', this will
   2798      turn on parser debugging.
   2799 
   2800 
   2801 File: binutils.info,  Node: dlltool,  Next: Common Options,  Prev: windmc,  Up: Top
   2802 
   2803 14 dlltool
   2804 **********
   2805 
   2806 `dlltool' is used to create the files needed to create dynamic link
   2807 libraries (DLLs) on systems which understand PE format image files such
   2808 as Windows.  A DLL contains an export table which contains information
   2809 that the runtime loader needs to resolve references from a referencing
   2810 program.
   2811 
   2812    The export table is generated by this program by reading in a `.def'
   2813 file or scanning the `.a' and `.o' files which will be in the DLL.  A
   2814 `.o' file can contain information in special `.drectve' sections with
   2815 export information.
   2816 
   2817      _Note:_ `dlltool' is not always built as part of the binary
   2818      utilities, since it is only useful for those targets which support
   2819      DLLs.
   2820 
   2821      dlltool [`-d'|`--input-def' DEF-FILE-NAME]
   2822              [`-b'|`--base-file' BASE-FILE-NAME]
   2823              [`-e'|`--output-exp' EXPORTS-FILE-NAME]
   2824              [`-z'|`--output-def' DEF-FILE-NAME]
   2825              [`-l'|`--output-lib' LIBRARY-FILE-NAME]
   2826              [`--export-all-symbols'] [`--no-export-all-symbols']
   2827              [`--exclude-symbols' LIST]
   2828              [`--no-default-excludes']
   2829              [`-S'|`--as' PATH-TO-ASSEMBLER] [`-f'|`--as-flags' OPTIONS]
   2830              [`-D'|`--dllname' NAME] [`-m'|`--machine' MACHINE]
   2831              [`-a'|`--add-indirect']
   2832              [`-U'|`--add-underscore'] [`--add-stdcall-underscore']
   2833              [`-k'|`--kill-at'] [`-A'|`--add-stdcall-alias']
   2834              [`-p'|`--ext-prefix-alias' PREFIX]
   2835              [`-x'|`--no-idata4'] [`-c'|`--no-idata5'] [`-i'|`--interwork']
   2836              [`-n'|`--nodelete'] [`-t'|`--temp-prefix' PREFIX]
   2837              [`-v'|`--verbose']
   2838              [`-h'|`--help'] [`-V'|`--version']
   2839              [object-file ...]
   2840 
   2841    `dlltool' reads its inputs, which can come from the `-d' and `-b'
   2842 options as well as object files specified on the command line.  It then
   2843 processes these inputs and if the `-e' option has been specified it
   2844 creates a exports file.  If the `-l' option has been specified it
   2845 creates a library file and if the `-z' option has been specified it
   2846 creates a def file.  Any or all of the `-e', `-l' and `-z' options can
   2847 be present in one invocation of dlltool.
   2848 
   2849    When creating a DLL, along with the source for the DLL, it is
   2850 necessary to have three other files.  `dlltool' can help with the
   2851 creation of these files.
   2852 
   2853    The first file is a `.def' file which specifies which functions are
   2854 exported from the DLL, which functions the DLL imports, and so on.  This
   2855 is a text file and can be created by hand, or `dlltool' can be used to
   2856 create it using the `-z' option.  In this case `dlltool' will scan the
   2857 object files specified on its command line looking for those functions
   2858 which have been specially marked as being exported and put entries for
   2859 them in the `.def' file it creates.
   2860 
   2861    In order to mark a function as being exported from a DLL, it needs to
   2862 have an `-export:<name_of_function>' entry in the `.drectve' section of
   2863 the object file.  This can be done in C by using the asm() operator:
   2864 
   2865        asm (".section .drectve");
   2866        asm (".ascii \"-export:my_func\"");
   2867 
   2868        int my_func (void) { ... }
   2869 
   2870    The second file needed for DLL creation is an exports file.  This
   2871 file is linked with the object files that make up the body of the DLL
   2872 and it handles the interface between the DLL and the outside world.
   2873 This is a binary file and it can be created by giving the `-e' option to
   2874 `dlltool' when it is creating or reading in a `.def' file.
   2875 
   2876    The third file needed for DLL creation is the library file that
   2877 programs will link with in order to access the functions in the DLL.
   2878 This file can be created by giving the `-l' option to dlltool when it
   2879 is creating or reading in a `.def' file.
   2880 
   2881    `dlltool' builds the library file by hand, but it builds the exports
   2882 file by creating temporary files containing assembler statements and
   2883 then assembling these.  The `-S' command line option can be used to
   2884 specify the path to the assembler that dlltool will use, and the `-f'
   2885 option can be used to pass specific flags to that assembler.  The `-n'
   2886 can be used to prevent dlltool from deleting these temporary assembler
   2887 files when it is done, and if `-n' is specified twice then this will
   2888 prevent dlltool from deleting the temporary object files it used to
   2889 build the library.
   2890 
   2891    Here is an example of creating a DLL from a source file `dll.c' and
   2892 also creating a program (from an object file called `program.o') that
   2893 uses that DLL:
   2894 
   2895        gcc -c dll.c
   2896        dlltool -e exports.o -l dll.lib dll.o
   2897        gcc dll.o exports.o -o dll.dll
   2898        gcc program.o dll.lib -o program
   2899 
   2900    The command line options have the following meanings:
   2901 
   2902 `-d FILENAME'
   2903 `--input-def FILENAME'
   2904      Specifies the name of a `.def' file to be read in and processed.
   2905 
   2906 `-b FILENAME'
   2907 `--base-file FILENAME'
   2908      Specifies the name of a base file to be read in and processed.  The
   2909      contents of this file will be added to the relocation section in
   2910      the exports file generated by dlltool.
   2911 
   2912 `-e FILENAME'
   2913 `--output-exp FILENAME'
   2914      Specifies the name of the export file to be created by dlltool.
   2915 
   2916 `-z FILENAME'
   2917 `--output-def FILENAME'
   2918      Specifies the name of the `.def' file to be created by dlltool.
   2919 
   2920 `-l FILENAME'
   2921 `--output-lib FILENAME'
   2922      Specifies the name of the library file to be created by dlltool.
   2923 
   2924 `--export-all-symbols'
   2925      Treat all global and weak defined symbols found in the input object
   2926      files as symbols to be exported.  There is a small list of symbols
   2927      which are not exported by default; see the `--no-default-excludes'
   2928      option.  You may add to the list of symbols to not export by using
   2929      the `--exclude-symbols' option.
   2930 
   2931 `--no-export-all-symbols'
   2932      Only export symbols explicitly listed in an input `.def' file or in
   2933      `.drectve' sections in the input object files.  This is the default
   2934      behaviour.  The `.drectve' sections are created by `dllexport'
   2935      attributes in the source code.
   2936 
   2937 `--exclude-symbols LIST'
   2938      Do not export the symbols in LIST.  This is a list of symbol names
   2939      separated by comma or colon characters.  The symbol names should
   2940      not contain a leading underscore.  This is only meaningful when
   2941      `--export-all-symbols' is used.
   2942 
   2943 `--no-default-excludes'
   2944      When `--export-all-symbols' is used, it will by default avoid
   2945      exporting certain special symbols.  The current list of symbols to
   2946      avoid exporting is `DllMain@12', `DllEntryPoint@0', `impure_ptr'.
   2947      You may use the `--no-default-excludes' option to go ahead and
   2948      export these special symbols.  This is only meaningful when
   2949      `--export-all-symbols' is used.
   2950 
   2951 `-S PATH'
   2952 `--as PATH'
   2953      Specifies the path, including the filename, of the assembler to be
   2954      used to create the exports file.
   2955 
   2956 `-f OPTIONS'
   2957 `--as-flags OPTIONS'
   2958      Specifies any specific command line options to be passed to the
   2959      assembler when building the exports file.  This option will work
   2960      even if the `-S' option is not used.  This option only takes one
   2961      argument, and if it occurs more than once on the command line,
   2962      then later occurrences will override earlier occurrences.  So if
   2963      it is necessary to pass multiple options to the assembler they
   2964      should be enclosed in double quotes.
   2965 
   2966 `-D NAME'
   2967 `--dll-name NAME'
   2968      Specifies the name to be stored in the `.def' file as the name of
   2969      the DLL when the `-e' option is used.  If this option is not
   2970      present, then the filename given to the `-e' option will be used
   2971      as the name of the DLL.
   2972 
   2973 `-m MACHINE'
   2974 `-machine MACHINE'
   2975      Specifies the type of machine for which the library file should be
   2976      built.  `dlltool' has a built in default type, depending upon how
   2977      it was created, but this option can be used to override that.
   2978      This is normally only useful when creating DLLs for an ARM
   2979      processor, when the contents of the DLL are actually encode using
   2980      Thumb instructions.
   2981 
   2982 `-a'
   2983 `--add-indirect'
   2984      Specifies that when `dlltool' is creating the exports file it
   2985      should add a section which allows the exported functions to be
   2986      referenced without using the import library.  Whatever the hell
   2987      that means!
   2988 
   2989 `-U'
   2990 `--add-underscore'
   2991      Specifies that when `dlltool' is creating the exports file it
   2992      should prepend an underscore to the names of _all_ exported
   2993      symbols.
   2994 
   2995 `--add-stdcall-underscore'
   2996      Specifies that when `dlltool' is creating the exports file it
   2997      should prepend an underscore to the names of exported _stdcall_
   2998      functions. Variable names and non-stdcall function names are not
   2999      modified.  This option is useful when creating GNU-compatible
   3000      import libs for third party DLLs that were built with MS-Windows
   3001      tools.
   3002 
   3003 `-k'
   3004 `--kill-at'
   3005      Specifies that when `dlltool' is creating the exports file it
   3006      should not append the string `@ <number>'.  These numbers are
   3007      called ordinal numbers and they represent another way of accessing
   3008      the function in a DLL, other than by name.
   3009 
   3010 `-A'
   3011 `--add-stdcall-alias'
   3012      Specifies that when `dlltool' is creating the exports file it
   3013      should add aliases for stdcall symbols without `@ <number>' in
   3014      addition to the symbols with `@ <number>'.
   3015 
   3016 `-p'
   3017 `--ext-prefix-alias PREFIX'
   3018      Causes `dlltool' to create external aliases for all DLL imports
   3019      with the specified prefix.  The aliases are created for both
   3020      external and import symbols with no leading underscore.
   3021 
   3022 `-x'
   3023 `--no-idata4'
   3024      Specifies that when `dlltool' is creating the exports and library
   3025      files it should omit the `.idata4' section.  This is for
   3026      compatibility with certain operating systems.
   3027 
   3028 `-c'
   3029 `--no-idata5'
   3030      Specifies that when `dlltool' is creating the exports and library
   3031      files it should omit the `.idata5' section.  This is for
   3032      compatibility with certain operating systems.
   3033 
   3034 `-i'
   3035 `--interwork'
   3036      Specifies that `dlltool' should mark the objects in the library
   3037      file and exports file that it produces as supporting interworking
   3038      between ARM and Thumb code.
   3039 
   3040 `-n'
   3041 `--nodelete'
   3042      Makes `dlltool' preserve the temporary assembler files it used to
   3043      create the exports file.  If this option is repeated then dlltool
   3044      will also preserve the temporary object files it uses to create
   3045      the library file.
   3046 
   3047 `-t PREFIX'
   3048 `--temp-prefix PREFIX'
   3049      Makes `dlltool' use PREFIX when constructing the names of
   3050      temporary assembler and object files.  By default, the temp file
   3051      prefix is generated from the pid.
   3052 
   3053 `-v'
   3054 `--verbose'
   3055      Make dlltool describe what it is doing.
   3056 
   3057 `-h'
   3058 `--help'
   3059      Displays a list of command line options and then exits.
   3060 
   3061 `-V'
   3062 `--version'
   3063      Displays dlltool's version number and then exits.
   3064 
   3065 
   3066 * Menu:
   3067 
   3068 * def file format::             The format of the dlltool `.def' file
   3069 
   3070 
   3071 File: binutils.info,  Node: def file format,  Up: dlltool
   3072 
   3073 14.1 The format of the `dlltool' `.def' file
   3074 ============================================
   3075 
   3076 A `.def' file contains any number of the following commands:
   3077 
   3078 `NAME' NAME `[ ,' BASE `]'
   3079      The result is going to be named NAME`.exe'.
   3080 
   3081 `LIBRARY' NAME `[ ,' BASE `]'
   3082      The result is going to be named NAME`.dll'.
   3083 
   3084 `EXPORTS ( ( (' NAME1 `[ = ' NAME2 `] ) | ( ' NAME1 `=' MODULE-NAME `.' EXTERNAL-NAME `) )'
   3085 
   3086 `[' INTEGER `] [ NONAME ] [ CONSTANT ] [ DATA ] [ PRIVATE ] ) *'
   3087      Declares NAME1 as an exported symbol from the DLL, with optional
   3088      ordinal number INTEGER, or declares NAME1 as an alias (forward) of
   3089      the function EXTERNAL-NAME in the DLL MODULE-NAME.
   3090 
   3091 `IMPORTS ( (' INTERNAL-NAME `=' MODULE-NAME `.' INTEGER `) | [' INTERNAL-NAME `= ]' MODULE-NAME `.' EXTERNAL-NAME `) ) *'
   3092      Declares that EXTERNAL-NAME or the exported function whose ordinal
   3093      number is INTEGER is to be imported from the file MODULE-NAME.  If
   3094      INTERNAL-NAME is specified then this is the name that the imported
   3095      function will be referred to in the body of the DLL.
   3096 
   3097 `DESCRIPTION' STRING
   3098      Puts STRING into the output `.exp' file in the `.rdata' section.
   3099 
   3100 `STACKSIZE' NUMBER-RESERVE `[, ' NUMBER-COMMIT `]'
   3101 
   3102 `HEAPSIZE' NUMBER-RESERVE `[, ' NUMBER-COMMIT `]'
   3103      Generates `--stack' or `--heap' NUMBER-RESERVE,NUMBER-COMMIT in
   3104      the output `.drectve' section.  The linker will see this and act
   3105      upon it.
   3106 
   3107 `CODE' ATTR `+'
   3108 
   3109 `DATA' ATTR `+'
   3110 
   3111 `SECTIONS (' SECTION-NAME ATTR` + ) *'
   3112      Generates `--attr' SECTION-NAME ATTR in the output `.drectve'
   3113      section, where ATTR is one of `READ', `WRITE', `EXECUTE' or
   3114      `SHARED'.  The linker will see this and act upon it.
   3115 
   3116 
   3117 
   3118 File: binutils.info,  Node: readelf,  Next: size,  Prev: ranlib,  Up: Top
   3119 
   3120 15 readelf
   3121 **********
   3122 
   3123      readelf [`-a'|`--all']
   3124              [`-h'|`--file-header']
   3125              [`-l'|`--program-headers'|`--segments']
   3126              [`-S'|`--section-headers'|`--sections']
   3127              [`-g'|`--section-groups']
   3128              [`-t'|`--section-details']
   3129              [`-e'|`--headers']
   3130              [`-s'|`--syms'|`--symbols']
   3131              [`-n'|`--notes']
   3132              [`-r'|`--relocs']
   3133              [`-u'|`--unwind']
   3134              [`-d'|`--dynamic']
   3135              [`-V'|`--version-info']
   3136              [`-A'|`--arch-specific']
   3137              [`-D'|`--use-dynamic']
   3138              [`-x' <number or name>|`--hex-dump='<number or name>]
   3139              [`-p' <number or name>|`--string-dump='<number or name>]
   3140              [`-c'|`--archive-index']
   3141              [`-w[lLiaprmfFsoR]'|
   3142               `--debug-dump'[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]]
   3143              [`-I'|`-histogram']
   3144              [`-v'|`--version']
   3145              [`-W'|`--wide']
   3146              [`-H'|`--help']
   3147              ELFFILE...
   3148 
   3149    `readelf' displays information about one or more ELF format object
   3150 files.  The options control what particular information to display.
   3151 
   3152    ELFFILE... are the object files to be examined.  32-bit and 64-bit
   3153 ELF files are supported, as are archives containing ELF files.
   3154 
   3155    This program performs a similar function to `objdump' but it goes
   3156 into more detail and it exists independently of the BFD library, so if
   3157 there is a bug in BFD then readelf will not be affected.
   3158 
   3159    The long and short forms of options, shown here as alternatives, are
   3160 equivalent.  At least one option besides `-v' or `-H' must be given.
   3161 
   3162 `-a'
   3163 `--all'
   3164      Equivalent to specifying `--file-header', `--program-headers',
   3165      `--sections', `--symbols', `--relocs', `--dynamic', `--notes' and
   3166      `--version-info'.
   3167 
   3168 `-h'
   3169 `--file-header'
   3170      Displays the information contained in the ELF header at the start
   3171      of the file.
   3172 
   3173 `-l'
   3174 `--program-headers'
   3175 `--segments'
   3176      Displays the information contained in the file's segment headers,
   3177      if it has any.
   3178 
   3179 `-S'
   3180 `--sections'
   3181 `--section-headers'
   3182      Displays the information contained in the file's section headers,
   3183      if it has any.
   3184 
   3185 `-g'
   3186 `--section-groups'
   3187      Displays the information contained in the file's section groups,
   3188      if it has any.
   3189 
   3190 `-t'
   3191 `--section-details'
   3192      Displays the detailed section information. Implies `-S'.
   3193 
   3194 `-s'
   3195 `--symbols'
   3196 `--syms'
   3197      Displays the entries in symbol table section of the file, if it
   3198      has one.
   3199 
   3200 `-e'
   3201 `--headers'
   3202      Display all the headers in the file.  Equivalent to `-h -l -S'.
   3203 
   3204 `-n'
   3205 `--notes'
   3206      Displays the contents of the NOTE segments and/or sections, if any.
   3207 
   3208 `-r'
   3209 `--relocs'
   3210      Displays the contents of the file's relocation section, if it has
   3211      one.
   3212 
   3213 `-u'
   3214 `--unwind'
   3215      Displays the contents of the file's unwind section, if it has one.
   3216      Only the unwind sections for IA64 ELF files are currently
   3217      supported.
   3218 
   3219 `-d'
   3220 `--dynamic'
   3221      Displays the contents of the file's dynamic section, if it has one.
   3222 
   3223 `-V'
   3224 `--version-info'
   3225      Displays the contents of the version sections in the file, it they
   3226      exist.
   3227 
   3228 `-A'
   3229 `--arch-specific'
   3230      Displays architecture-specific information in the file, if there
   3231      is any.
   3232 
   3233 `-D'
   3234 `--use-dynamic'
   3235      When displaying symbols, this option makes `readelf' use the
   3236      symbol table in the file's dynamic section, rather than the one in
   3237      the symbols section.
   3238 
   3239 `-x <number or name>'
   3240 `--hex-dump=<number or name>'
   3241      Displays the contents of the indicated section as a hexadecimal
   3242      dump.  A number identifies a particular section by index in the
   3243      section table; any other string identifies all sections with that
   3244      name in the object file.
   3245 
   3246 `-p <number or name>'
   3247 `--string-dump=<number or name>'
   3248      Displays the contents of the indicated section as printable
   3249      strings.  A number identifies a particular section by index in the
   3250      section table; any other string identifies all sections with that
   3251      name in the object file.
   3252 
   3253 `-c'
   3254 `--archive-index'
   3255      Displays the file symbol index infomation contained in the header
   3256      part of binary archives.  Performs the same function as the `t'
   3257      command to `ar', but without using the BFD library.  *Note ar::.
   3258 
   3259 `-w[lLiaprmfFsoR]'
   3260 `--debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]'
   3261      Displays the contents of the debug sections in the file, if any are
   3262      present.  If one of the optional letters or words follows the
   3263      switch then only data found in those specific sections will be
   3264      dumped.
   3265 
   3266      Note: the `=decodedline' option will display the interpreted
   3267      contents of a .debug_line section whereas the `=rawline' option
   3268      dumps the contents in a raw format.
   3269 
   3270 `-I'
   3271 `--histogram'
   3272      Display a histogram of bucket list lengths when displaying the
   3273      contents of the symbol tables.
   3274 
   3275 `-v'
   3276 `--version'
   3277      Display the version number of readelf.
   3278 
   3279 `-W'
   3280 `--wide'
   3281      Don't break output lines to fit into 80 columns. By default
   3282      `readelf' breaks section header and segment listing lines for
   3283      64-bit ELF files, so that they fit into 80 columns. This option
   3284      causes `readelf' to print each section header resp. each segment
   3285      one a single line, which is far more readable on terminals wider
   3286      than 80 columns.
   3287 
   3288 `-H'
   3289 `--help'
   3290      Display the command line options understood by `readelf'.
   3291 
   3292 
   3293 
   3294 File: binutils.info,  Node: Common Options,  Next: Selecting the Target System,  Prev: dlltool,  Up: Top
   3295 
   3296 16 Common Options
   3297 *****************
   3298 
   3299 The following command-line options are supported by all of the programs
   3300 described in this manual.
   3301 
   3302 `@FILE'
   3303      Read command-line options from FILE.  The options read are
   3304      inserted in place of the original @FILE option.  If FILE does not
   3305      exist, or cannot be read, then the option will be treated
   3306      literally, and not removed.
   3307 
   3308      Options in FILE are separated by whitespace.  A whitespace
   3309      character may be included in an option by surrounding the entire
   3310      option in either single or double quotes.  Any character
   3311      (including a backslash) may be included by prefixing the character
   3312      to be included with a backslash.  The FILE may itself contain
   3313      additional @FILE options; any such options will be processed
   3314      recursively.
   3315 
   3316 `--help'
   3317      Display the command-line options supported by the program.
   3318 
   3319 `--version'
   3320      Display the version number of the program.
   3321 
   3322 
   3323 
   3324 File: binutils.info,  Node: Selecting the Target System,  Next: Reporting Bugs,  Prev: Common Options,  Up: Top
   3325 
   3326 17 Selecting the Target System
   3327 ******************************
   3328 
   3329 You can specify two aspects of the target system to the GNU binary file
   3330 utilities, each in several ways:
   3331 
   3332    * the target
   3333 
   3334    * the architecture
   3335 
   3336    In the following summaries, the lists of ways to specify values are
   3337 in order of decreasing precedence.  The ways listed first override those
   3338 listed later.
   3339 
   3340    The commands to list valid values only list the values for which the
   3341 programs you are running were configured.  If they were configured with
   3342 `--enable-targets=all', the commands list most of the available values,
   3343 but a few are left out; not all targets can be configured in at once
   3344 because some of them can only be configured "native" (on hosts with the
   3345 same type as the target system).
   3346 
   3347 * Menu:
   3348 
   3349 * Target Selection::
   3350 * Architecture Selection::
   3351 
   3352 
   3353 File: binutils.info,  Node: Target Selection,  Next: Architecture Selection,  Up: Selecting the Target System
   3354 
   3355 17.1 Target Selection
   3356 =====================
   3357 
   3358 A "target" is an object file format.  A given target may be supported
   3359 for multiple architectures (*note Architecture Selection::).  A target
   3360 selection may also have variations for different operating systems or
   3361 architectures.
   3362 
   3363    The command to list valid target values is `objdump -i' (the first
   3364 column of output contains the relevant information).
   3365 
   3366    Some sample values are: `a.out-hp300bsd', `ecoff-littlemips',
   3367 `a.out-sunos-big'.
   3368 
   3369    You can also specify a target using a configuration triplet.  This is
   3370 the same sort of name that is passed to `configure' to specify a
   3371 target.  When you use a configuration triplet as an argument, it must be
   3372 fully canonicalized.  You can see the canonical version of a triplet by
   3373 running the shell script `config.sub' which is included with the
   3374 sources.
   3375 
   3376    Some sample configuration triplets are: `m68k-hp-bsd',
   3377 `mips-dec-ultrix', `sparc-sun-sunos'.
   3378 
   3379 `objdump' Target
   3380 ----------------
   3381 
   3382 Ways to specify:
   3383 
   3384   1. command line option: `-b' or `--target'
   3385 
   3386   2. environment variable `GNUTARGET'
   3387 
   3388   3. deduced from the input file
   3389 
   3390 `objcopy' and `strip' Input Target
   3391 ----------------------------------
   3392 
   3393 Ways to specify:
   3394 
   3395   1. command line options: `-I' or `--input-target', or `-F' or
   3396      `--target'
   3397 
   3398   2. environment variable `GNUTARGET'
   3399 
   3400   3. deduced from the input file
   3401 
   3402 `objcopy' and `strip' Output Target
   3403 -----------------------------------
   3404 
   3405 Ways to specify:
   3406 
   3407   1. command line options: `-O' or `--output-target', or `-F' or
   3408      `--target'
   3409 
   3410   2. the input target (see "`objcopy' and `strip' Input Target" above)
   3411 
   3412   3. environment variable `GNUTARGET'
   3413 
   3414   4. deduced from the input file
   3415 
   3416 `nm', `size', and `strings' Target
   3417 ----------------------------------
   3418 
   3419 Ways to specify:
   3420 
   3421   1. command line option: `--target'
   3422 
   3423   2. environment variable `GNUTARGET'
   3424 
   3425   3. deduced from the input file
   3426 
   3427 
   3428 File: binutils.info,  Node: Architecture Selection,  Prev: Target Selection,  Up: Selecting the Target System
   3429 
   3430 17.2 Architecture Selection
   3431 ===========================
   3432 
   3433 An "architecture" is a type of CPU on which an object file is to run.
   3434 Its name may contain a colon, separating the name of the processor
   3435 family from the name of the particular CPU.
   3436 
   3437    The command to list valid architecture values is `objdump -i' (the
   3438 second column contains the relevant information).
   3439 
   3440    Sample values: `m68k:68020', `mips:3000', `sparc'.
   3441 
   3442 `objdump' Architecture
   3443 ----------------------
   3444 
   3445 Ways to specify:
   3446 
   3447   1. command line option: `-m' or `--architecture'
   3448 
   3449   2. deduced from the input file
   3450 
   3451 `objcopy', `nm', `size', `strings' Architecture
   3452 -----------------------------------------------
   3453 
   3454 Ways to specify:
   3455 
   3456   1. deduced from the input file
   3457 
   3458 
   3459 File: binutils.info,  Node: Reporting Bugs,  Next: GNU Free Documentation License,  Prev: Selecting the Target System,  Up: Top
   3460 
   3461 18 Reporting Bugs
   3462 *****************
   3463 
   3464 Your bug reports play an essential role in making the binary utilities
   3465 reliable.
   3466 
   3467    Reporting a bug may help you by bringing a solution to your problem,
   3468 or it may not.  But in any case the principal function of a bug report
   3469 is to help the entire community by making the next version of the binary
   3470 utilities work better.  Bug reports are your contribution to their
   3471 maintenance.
   3472 
   3473    In order for a bug report to serve its purpose, you must include the
   3474 information that enables us to fix the bug.
   3475 
   3476 * Menu:
   3477 
   3478 * Bug Criteria::                Have you found a bug?
   3479 * Bug Reporting::               How to report bugs
   3480 
   3481 
   3482 File: binutils.info,  Node: Bug Criteria,  Next: Bug Reporting,  Up: Reporting Bugs
   3483 
   3484 18.1 Have You Found a Bug?
   3485 ==========================
   3486 
   3487 If you are not sure whether you have found a bug, here are some
   3488 guidelines:
   3489 
   3490    * If a binary utility gets a fatal signal, for any input whatever,
   3491      that is a bug.  Reliable utilities never crash.
   3492 
   3493    * If a binary utility produces an error message for valid input,
   3494      that is a bug.
   3495 
   3496    * If you are an experienced user of binary utilities, your
   3497      suggestions for improvement are welcome in any case.
   3498 
   3499 
   3500 File: binutils.info,  Node: Bug Reporting,  Prev: Bug Criteria,  Up: Reporting Bugs
   3501 
   3502 18.2 How to Report Bugs
   3503 =======================
   3504 
   3505 A number of companies and individuals offer support for GNU products.
   3506 If you obtained the binary utilities from a support organization, we
   3507 recommend you contact that organization first.
   3508 
   3509    You can find contact information for many support companies and
   3510 individuals in the file `etc/SERVICE' in the GNU Emacs distribution.
   3511 
   3512    In any event, we also recommend that you send bug reports for the
   3513 binary utilities to `http://www.sourceware.org/bugzilla/'.
   3514 
   3515    The fundamental principle of reporting bugs usefully is this:
   3516 *report all the facts*.  If you are not sure whether to state a fact or
   3517 leave it out, state it!
   3518 
   3519    Often people omit facts because they think they know what causes the
   3520 problem and assume that some details do not matter.  Thus, you might
   3521 assume that the name of a file you use in an example does not matter.
   3522 Well, probably it does not, but one cannot be sure.  Perhaps the bug is
   3523 a stray memory reference which happens to fetch from the location where
   3524 that pathname is stored in memory; perhaps, if the pathname were
   3525 different, the contents of that location would fool the utility into
   3526 doing the right thing despite the bug.  Play it safe and give a
   3527 specific, complete example.  That is the easiest thing for you to do,
   3528 and the most helpful.
   3529 
   3530    Keep in mind that the purpose of a bug report is to enable us to fix
   3531 the bug if it is new to us.  Therefore, always write your bug reports
   3532 on the assumption that the bug has not been reported previously.
   3533 
   3534    Sometimes people give a few sketchy facts and ask, "Does this ring a
   3535 bell?"  This cannot help us fix a bug, so it is basically useless.  We
   3536 respond by asking for enough details to enable us to investigate.  You
   3537 might as well expedite matters by sending them to begin with.
   3538 
   3539    To enable us to fix the bug, you should include all these things:
   3540 
   3541    * The version of the utility.  Each utility announces it if you
   3542      start it with the `--version' argument.
   3543 
   3544      Without this, we will not know whether there is any point in
   3545      looking for the bug in the current version of the binary utilities.
   3546 
   3547    * Any patches you may have applied to the source, including any
   3548      patches made to the `BFD' library.
   3549 
   3550    * The type of machine you are using, and the operating system name
   3551      and version number.
   3552 
   3553    * What compiler (and its version) was used to compile the
   3554      utilities--e.g.  "`gcc-2.7'".
   3555 
   3556    * The command arguments you gave the utility to observe the bug.  To
   3557      guarantee you will not omit something important, list them all.  A
   3558      copy of the Makefile (or the output from make) is sufficient.
   3559 
   3560      If we were to try to guess the arguments, we would probably guess
   3561      wrong and then we might not encounter the bug.
   3562 
   3563    * A complete input file, or set of input files, that will reproduce
   3564      the bug.  If the utility is reading an object file or files, then
   3565      it is generally most helpful to send the actual object files.
   3566 
   3567      If the source files were produced exclusively using GNU programs
   3568      (e.g., `gcc', `gas', and/or the GNU `ld'), then it may be OK to
   3569      send the source files rather than the object files.  In this case,
   3570      be sure to say exactly what version of `gcc', or whatever, was
   3571      used to produce the object files.  Also say how `gcc', or
   3572      whatever, was configured.
   3573 
   3574    * A description of what behavior you observe that you believe is
   3575      incorrect.  For example, "It gets a fatal signal."
   3576 
   3577      Of course, if the bug is that the utility gets a fatal signal,
   3578      then we will certainly notice it.  But if the bug is incorrect
   3579      output, we might not notice unless it is glaringly wrong.  You
   3580      might as well not give us a chance to make a mistake.
   3581 
   3582      Even if the problem you experience is a fatal signal, you should
   3583      still say so explicitly.  Suppose something strange is going on,
   3584      such as your copy of the utility is out of sync, or you have
   3585      encountered a bug in the C library on your system.  (This has
   3586      happened!)  Your copy might crash and ours would not.  If you told
   3587      us to expect a crash, then when ours fails to crash, we would know
   3588      that the bug was not happening for us.  If you had not told us to
   3589      expect a crash, then we would not be able to draw any conclusion
   3590      from our observations.
   3591 
   3592    * If you wish to suggest changes to the source, send us context
   3593      diffs, as generated by `diff' with the `-u', `-c', or `-p' option.
   3594      Always send diffs from the old file to the new file.  If you wish
   3595      to discuss something in the `ld' source, refer to it by context,
   3596      not by line number.
   3597 
   3598      The line numbers in our development sources will not match those
   3599      in your sources.  Your line numbers would convey no useful
   3600      information to us.
   3601 
   3602    Here are some things that are not necessary:
   3603 
   3604    * A description of the envelope of the bug.
   3605 
   3606      Often people who encounter a bug spend a lot of time investigating
   3607      which changes to the input file will make the bug go away and which
   3608      changes will not affect it.
   3609 
   3610      This is often time consuming and not very useful, because the way
   3611      we will find the bug is by running a single example under the
   3612      debugger with breakpoints, not by pure deduction from a series of
   3613      examples.  We recommend that you save your time for something else.
   3614 
   3615      Of course, if you can find a simpler example to report _instead_
   3616      of the original one, that is a convenience for us.  Errors in the
   3617      output will be easier to spot, running under the debugger will take
   3618      less time, and so on.
   3619 
   3620      However, simplification is not vital; if you do not want to do
   3621      this, report the bug anyway and send us the entire test case you
   3622      used.
   3623 
   3624    * A patch for the bug.
   3625 
   3626      A patch for the bug does help us if it is a good one.  But do not
   3627      omit the necessary information, such as the test case, on the
   3628      assumption that a patch is all we need.  We might see problems
   3629      with your patch and decide to fix the problem another way, or we
   3630      might not understand it at all.
   3631 
   3632      Sometimes with programs as complicated as the binary utilities it
   3633      is very hard to construct an example that will make the program
   3634      follow a certain path through the code.  If you do not send us the
   3635      example, we will not be able to construct one, so we will not be
   3636      able to verify that the bug is fixed.
   3637 
   3638      And if we cannot understand what bug you are trying to fix, or why
   3639      your patch should be an improvement, we will not install it.  A
   3640      test case will help us to understand.
   3641 
   3642    * A guess about what the bug is or what it depends on.
   3643 
   3644      Such guesses are usually wrong.  Even we cannot guess right about
   3645      such things without first using the debugger to find the facts.
   3646 
   3647 
   3648 File: binutils.info,  Node: GNU Free Documentation License,  Next: Binutils Index,  Prev: Reporting Bugs,  Up: Top
   3649 
   3650 Appendix A GNU Free Documentation License
   3651 *****************************************
   3652 
   3653                       Version 1.2, November 2002
   3654 
   3655      Copyright (C) 2000,2001,2002 Free Software Foundation, Inc.
   3656      51 Franklin St, Fifth Floor, Boston, MA  02110-1301, USA
   3657 
   3658      Everyone is permitted to copy and distribute verbatim copies
   3659      of this license document, but changing it is not allowed.
   3660 
   3661   0. PREAMBLE
   3662 
   3663      The purpose of this License is to make a manual, textbook, or other
   3664      functional and useful document "free" in the sense of freedom: to
   3665      assure everyone the effective freedom to copy and redistribute it,
   3666      with or without modifying it, either commercially or
   3667      noncommercially.  Secondarily, this License preserves for the
   3668      author and publisher a way to get credit for their work, while not
   3669      being considered responsible for modifications made by others.
   3670 
   3671      This License is a kind of "copyleft", which means that derivative
   3672      works of the document must themselves be free in the same sense.
   3673      It complements the GNU General Public License, which is a copyleft
   3674      license designed for free software.
   3675 
   3676      We have designed this License in order to use it for manuals for
   3677      free software, because free software needs free documentation: a
   3678      free program should come with manuals providing the same freedoms
   3679      that the software does.  But this License is not limited to
   3680      software manuals; it can be used for any textual work, regardless
   3681      of subject matter or whether it is published as a printed book.
   3682      We recommend this License principally for works whose purpose is
   3683      instruction or reference.
   3684 
   3685   1. APPLICABILITY AND DEFINITIONS
   3686 
   3687      This License applies to any manual or other work, in any medium,
   3688      that contains a notice placed by the copyright holder saying it
   3689      can be distributed under the terms of this License.  Such a notice
   3690      grants a world-wide, royalty-free license, unlimited in duration,
   3691      to use that work under the conditions stated herein.  The
   3692      "Document", below, refers to any such manual or work.  Any member
   3693      of the public is a licensee, and is addressed as "you".  You
   3694      accept the license if you copy, modify or distribute the work in a
   3695      way requiring permission under copyright law.
   3696 
   3697      A "Modified Version" of the Document means any work containing the
   3698      Document or a portion of it, either copied verbatim, or with
   3699      modifications and/or translated into another language.
   3700 
   3701      A "Secondary Section" is a named appendix or a front-matter section
   3702      of the Document that deals exclusively with the relationship of the
   3703      publishers or authors of the Document to the Document's overall
   3704      subject (or to related matters) and contains nothing that could
   3705      fall directly within that overall subject.  (Thus, if the Document
   3706      is in part a textbook of mathematics, a Secondary Section may not
   3707      explain any mathematics.)  The relationship could be a matter of
   3708      historical connection with the subject or with related matters, or
   3709      of legal, commercial, philosophical, ethical or political position
   3710      regarding them.
   3711 
   3712      The "Invariant Sections" are certain Secondary Sections whose
   3713      titles are designated, as being those of Invariant Sections, in
   3714      the notice that says that the Document is released under this
   3715      License.  If a section does not fit the above definition of
   3716      Secondary then it is not allowed to be designated as Invariant.
   3717      The Document may contain zero Invariant Sections.  If the Document
   3718      does not identify any Invariant Sections then there are none.
   3719 
   3720      The "Cover Texts" are certain short passages of text that are
   3721      listed, as Front-Cover Texts or Back-Cover Texts, in the notice
   3722      that says that the Document is released under this License.  A
   3723      Front-Cover Text may be at most 5 words, and a Back-Cover Text may
   3724      be at most 25 words.
   3725 
   3726      A "Transparent" copy of the Document means a machine-readable copy,
   3727      represented in a format whose specification is available to the
   3728      general public, that is suitable for revising the document
   3729      straightforwardly with generic text editors or (for images
   3730      composed of pixels) generic paint programs or (for drawings) some
   3731      widely available drawing editor, and that is suitable for input to
   3732      text formatters or for automatic translation to a variety of
   3733      formats suitable for input to text formatters.  A copy made in an
   3734      otherwise Transparent file format whose markup, or absence of
   3735      markup, has been arranged to thwart or discourage subsequent
   3736      modification by readers is not Transparent.  An image format is
   3737      not Transparent if used for any substantial amount of text.  A
   3738      copy that is not "Transparent" is called "Opaque".
   3739 
   3740      Examples of suitable formats for Transparent copies include plain
   3741      ASCII without markup, Texinfo input format, LaTeX input format,
   3742      SGML or XML using a publicly available DTD, and
   3743      standard-conforming simple HTML, PostScript or PDF designed for
   3744      human modification.  Examples of transparent image formats include
   3745      PNG, XCF and JPG.  Opaque formats include proprietary formats that
   3746      can be read and edited only by proprietary word processors, SGML or
   3747      XML for which the DTD and/or processing tools are not generally
   3748      available, and the machine-generated HTML, PostScript or PDF
   3749      produced by some word processors for output purposes only.
   3750 
   3751      The "Title Page" means, for a printed book, the title page itself,
   3752      plus such following pages as are needed to hold, legibly, the
   3753      material this License requires to appear in the title page.  For
   3754      works in formats which do not have any title page as such, "Title
   3755      Page" means the text near the most prominent appearance of the
   3756      work's title, preceding the beginning of the body of the text.
   3757 
   3758      A section "Entitled XYZ" means a named subunit of the Document
   3759      whose title either is precisely XYZ or contains XYZ in parentheses
   3760      following text that translates XYZ in another language.  (Here XYZ
   3761      stands for a specific section name mentioned below, such as
   3762      "Acknowledgements", "Dedications", "Endorsements", or "History".)
   3763      To "Preserve the Title" of such a section when you modify the
   3764      Document means that it remains a section "Entitled XYZ" according
   3765      to this definition.
   3766 
   3767      The Document may include Warranty Disclaimers next to the notice
   3768      which states that this License applies to the Document.  These
   3769      Warranty Disclaimers are considered to be included by reference in
   3770      this License, but only as regards disclaiming warranties: any other
   3771      implication that these Warranty Disclaimers may have is void and
   3772      has no effect on the meaning of this License.
   3773 
   3774   2. VERBATIM COPYING
   3775 
   3776      You may copy and distribute the Document in any medium, either
   3777      commercially or noncommercially, provided that this License, the
   3778      copyright notices, and the license notice saying this License
   3779      applies to the Document are reproduced in all copies, and that you
   3780      add no other conditions whatsoever to those of this License.  You
   3781      may not use technical measures to obstruct or control the reading
   3782      or further copying of the copies you make or distribute.  However,
   3783      you may accept compensation in exchange for copies.  If you
   3784      distribute a large enough number of copies you must also follow
   3785      the conditions in section 3.
   3786 
   3787      You may also lend copies, under the same conditions stated above,
   3788      and you may publicly display copies.
   3789 
   3790   3. COPYING IN QUANTITY
   3791 
   3792      If you publish printed copies (or copies in media that commonly
   3793      have printed covers) of the Document, numbering more than 100, and
   3794      the Document's license notice requires Cover Texts, you must
   3795      enclose the copies in covers that carry, clearly and legibly, all
   3796      these Cover Texts: Front-Cover Texts on the front cover, and
   3797      Back-Cover Texts on the back cover.  Both covers must also clearly
   3798      and legibly identify you as the publisher of these copies.  The
   3799      front cover must present the full title with all words of the
   3800      title equally prominent and visible.  You may add other material
   3801      on the covers in addition.  Copying with changes limited to the
   3802      covers, as long as they preserve the title of the Document and
   3803      satisfy these conditions, can be treated as verbatim copying in
   3804      other respects.
   3805 
   3806      If the required texts for either cover are too voluminous to fit
   3807      legibly, you should put the first ones listed (as many as fit
   3808      reasonably) on the actual cover, and continue the rest onto
   3809      adjacent pages.
   3810 
   3811      If you publish or distribute Opaque copies of the Document
   3812      numbering more than 100, you must either include a
   3813      machine-readable Transparent copy along with each Opaque copy, or
   3814      state in or with each Opaque copy a computer-network location from
   3815      which the general network-using public has access to download
   3816      using public-standard network protocols a complete Transparent
   3817      copy of the Document, free of added material.  If you use the
   3818      latter option, you must take reasonably prudent steps, when you
   3819      begin distribution of Opaque copies in quantity, to ensure that
   3820      this Transparent copy will remain thus accessible at the stated
   3821      location until at least one year after the last time you
   3822      distribute an Opaque copy (directly or through your agents or
   3823      retailers) of that edition to the public.
   3824 
   3825      It is requested, but not required, that you contact the authors of
   3826      the Document well before redistributing any large number of
   3827      copies, to give them a chance to provide you with an updated
   3828      version of the Document.
   3829 
   3830   4. MODIFICATIONS
   3831 
   3832      You may copy and distribute a Modified Version of the Document
   3833      under the conditions of sections 2 and 3 above, provided that you
   3834      release the Modified Version under precisely this License, with
   3835      the Modified Version filling the role of the Document, thus
   3836      licensing distribution and modification of the Modified Version to
   3837      whoever possesses a copy of it.  In addition, you must do these
   3838      things in the Modified Version:
   3839 
   3840        A. Use in the Title Page (and on the covers, if any) a title
   3841           distinct from that of the Document, and from those of
   3842           previous versions (which should, if there were any, be listed
   3843           in the History section of the Document).  You may use the
   3844           same title as a previous version if the original publisher of
   3845           that version gives permission.
   3846 
   3847        B. List on the Title Page, as authors, one or more persons or
   3848           entities responsible for authorship of the modifications in
   3849           the Modified Version, together with at least five of the
   3850           principal authors of the Document (all of its principal
   3851           authors, if it has fewer than five), unless they release you
   3852           from this requirement.
   3853 
   3854        C. State on the Title page the name of the publisher of the
   3855           Modified Version, as the publisher.
   3856 
   3857        D. Preserve all the copyright notices of the Document.
   3858 
   3859        E. Add an appropriate copyright notice for your modifications
   3860           adjacent to the other copyright notices.
   3861 
   3862        F. Include, immediately after the copyright notices, a license
   3863           notice giving the public permission to use the Modified
   3864           Version under the terms of this License, in the form shown in
   3865           the Addendum below.
   3866 
   3867        G. Preserve in that license notice the full lists of Invariant
   3868           Sections and required Cover Texts given in the Document's
   3869           license notice.
   3870 
   3871        H. Include an unaltered copy of this License.
   3872 
   3873        I. Preserve the section Entitled "History", Preserve its Title,
   3874           and add to it an item stating at least the title, year, new
   3875           authors, and publisher of the Modified Version as given on
   3876           the Title Page.  If there is no section Entitled "History" in
   3877           the Document, create one stating the title, year, authors,
   3878           and publisher of the Document as given on its Title Page,
   3879           then add an item describing the Modified Version as stated in
   3880           the previous sentence.
   3881 
   3882        J. Preserve the network location, if any, given in the Document
   3883           for public access to a Transparent copy of the Document, and
   3884           likewise the network locations given in the Document for
   3885           previous versions it was based on.  These may be placed in
   3886           the "History" section.  You may omit a network location for a
   3887           work that was published at least four years before the
   3888           Document itself, or if the original publisher of the version
   3889           it refers to gives permission.
   3890 
   3891        K. For any section Entitled "Acknowledgements" or "Dedications",
   3892           Preserve the Title of the section, and preserve in the
   3893           section all the substance and tone of each of the contributor
   3894           acknowledgements and/or dedications given therein.
   3895 
   3896        L. Preserve all the Invariant Sections of the Document,
   3897           unaltered in their text and in their titles.  Section numbers
   3898           or the equivalent are not considered part of the section
   3899           titles.
   3900 
   3901        M. Delete any section Entitled "Endorsements".  Such a section
   3902           may not be included in the Modified Version.
   3903 
   3904        N. Do not retitle any existing section to be Entitled
   3905           "Endorsements" or to conflict in title with any Invariant
   3906           Section.
   3907 
   3908        O. Preserve any Warranty Disclaimers.
   3909 
   3910      If the Modified Version includes new front-matter sections or
   3911      appendices that qualify as Secondary Sections and contain no
   3912      material copied from the Document, you may at your option
   3913      designate some or all of these sections as invariant.  To do this,
   3914      add their titles to the list of Invariant Sections in the Modified
   3915      Version's license notice.  These titles must be distinct from any
   3916      other section titles.
   3917 
   3918      You may add a section Entitled "Endorsements", provided it contains
   3919      nothing but endorsements of your Modified Version by various
   3920      parties--for example, statements of peer review or that the text
   3921      has been approved by an organization as the authoritative
   3922      definition of a standard.
   3923 
   3924      You may add a passage of up to five words as a Front-Cover Text,
   3925      and a passage of up to 25 words as a Back-Cover Text, to the end
   3926      of the list of Cover Texts in the Modified Version.  Only one
   3927      passage of Front-Cover Text and one of Back-Cover Text may be
   3928      added by (or through arrangements made by) any one entity.  If the
   3929      Document already includes a cover text for the same cover,
   3930      previously added by you or by arrangement made by the same entity
   3931      you are acting on behalf of, you may not add another; but you may
   3932      replace the old one, on explicit permission from the previous
   3933      publisher that added the old one.
   3934 
   3935      The author(s) and publisher(s) of the Document do not by this
   3936      License give permission to use their names for publicity for or to
   3937      assert or imply endorsement of any Modified Version.
   3938 
   3939   5. COMBINING DOCUMENTS
   3940 
   3941      You may combine the Document with other documents released under
   3942      this License, under the terms defined in section 4 above for
   3943      modified versions, provided that you include in the combination
   3944      all of the Invariant Sections of all of the original documents,
   3945      unmodified, and list them all as Invariant Sections of your
   3946      combined work in its license notice, and that you preserve all
   3947      their Warranty Disclaimers.
   3948 
   3949      The combined work need only contain one copy of this License, and
   3950      multiple identical Invariant Sections may be replaced with a single
   3951      copy.  If there are multiple Invariant Sections with the same name
   3952      but different contents, make the title of each such section unique
   3953      by adding at the end of it, in parentheses, the name of the
   3954      original author or publisher of that section if known, or else a
   3955      unique number.  Make the same adjustment to the section titles in
   3956      the list of Invariant Sections in the license notice of the
   3957      combined work.
   3958 
   3959      In the combination, you must combine any sections Entitled
   3960      "History" in the various original documents, forming one section
   3961      Entitled "History"; likewise combine any sections Entitled
   3962      "Acknowledgements", and any sections Entitled "Dedications".  You
   3963      must delete all sections Entitled "Endorsements."
   3964 
   3965   6. COLLECTIONS OF DOCUMENTS
   3966 
   3967      You may make a collection consisting of the Document and other
   3968      documents released under this License, and replace the individual
   3969      copies of this License in the various documents with a single copy
   3970      that is included in the collection, provided that you follow the
   3971      rules of this License for verbatim copying of each of the
   3972      documents in all other respects.
   3973 
   3974      You may extract a single document from such a collection, and
   3975      distribute it individually under this License, provided you insert
   3976      a copy of this License into the extracted document, and follow
   3977      this License in all other respects regarding verbatim copying of
   3978      that document.
   3979 
   3980   7. AGGREGATION WITH INDEPENDENT WORKS
   3981 
   3982      A compilation of the Document or its derivatives with other
   3983      separate and independent documents or works, in or on a volume of
   3984      a storage or distribution medium, is called an "aggregate" if the
   3985      copyright resulting from the compilation is not used to limit the
   3986      legal rights of the compilation's users beyond what the individual
   3987      works permit.  When the Document is included in an aggregate, this
   3988      License does not apply to the other works in the aggregate which
   3989      are not themselves derivative works of the Document.
   3990 
   3991      If the Cover Text requirement of section 3 is applicable to these
   3992      copies of the Document, then if the Document is less than one half
   3993      of the entire aggregate, the Document's Cover Texts may be placed
   3994      on covers that bracket the Document within the aggregate, or the
   3995      electronic equivalent of covers if the Document is in electronic
   3996      form.  Otherwise they must appear on printed covers that bracket
   3997      the whole aggregate.
   3998 
   3999   8. TRANSLATION
   4000 
   4001      Translation is considered a kind of modification, so you may
   4002      distribute translations of the Document under the terms of section
   4003      4.  Replacing Invariant Sections with translations requires special
   4004      permission from their copyright holders, but you may include
   4005      translations of some or all Invariant Sections in addition to the
   4006      original versions of these Invariant Sections.  You may include a
   4007      translation of this License, and all the license notices in the
   4008      Document, and any Warranty Disclaimers, provided that you also
   4009      include the original English version of this License and the
   4010      original versions of those notices and disclaimers.  In case of a
   4011      disagreement between the translation and the original version of
   4012      this License or a notice or disclaimer, the original version will
   4013      prevail.
   4014 
   4015      If a section in the Document is Entitled "Acknowledgements",
   4016      "Dedications", or "History", the requirement (section 4) to
   4017      Preserve its Title (section 1) will typically require changing the
   4018      actual title.
   4019 
   4020   9. TERMINATION
   4021 
   4022      You may not copy, modify, sublicense, or distribute the Document
   4023      except as expressly provided for under this License.  Any other
   4024      attempt to copy, modify, sublicense or distribute the Document is
   4025      void, and will automatically terminate your rights under this
   4026      License.  However, parties who have received copies, or rights,
   4027      from you under this License will not have their licenses
   4028      terminated so long as such parties remain in full compliance.
   4029 
   4030  10. FUTURE REVISIONS OF THIS LICENSE
   4031 
   4032      The Free Software Foundation may publish new, revised versions of
   4033      the GNU Free Documentation License from time to time.  Such new
   4034      versions will be similar in spirit to the present version, but may
   4035      differ in detail to address new problems or concerns.  See
   4036      `http://www.gnu.org/copyleft/'.
   4037 
   4038      Each version of the License is given a distinguishing version
   4039      number.  If the Document specifies that a particular numbered
   4040      version of this License "or any later version" applies to it, you
   4041      have the option of following the terms and conditions either of
   4042      that specified version or of any later version that has been
   4043      published (not as a draft) by the Free Software Foundation.  If
   4044      the Document does not specify a version number of this License,
   4045      you may choose any version ever published (not as a draft) by the
   4046      Free Software Foundation.
   4047 
   4048 ADDENDUM: How to use this License for your documents
   4049 ====================================================
   4050 
   4051 To use this License in a document you have written, include a copy of
   4052 the License in the document and put the following copyright and license
   4053 notices just after the title page:
   4054 
   4055        Copyright (C)  YEAR  YOUR NAME.
   4056        Permission is granted to copy, distribute and/or modify this document
   4057        under the terms of the GNU Free Documentation License, Version 1.2
   4058        or any later version published by the Free Software Foundation;
   4059        with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
   4060        Texts.  A copy of the license is included in the section entitled ``GNU
   4061        Free Documentation License''.
   4062 
   4063    If you have Invariant Sections, Front-Cover Texts and Back-Cover
   4064 Texts, replace the "with...Texts." line with this:
   4065 
   4066          with the Invariant Sections being LIST THEIR TITLES, with
   4067          the Front-Cover Texts being LIST, and with the Back-Cover Texts
   4068          being LIST.
   4069 
   4070    If you have Invariant Sections without Cover Texts, or some other
   4071 combination of the three, merge those two alternatives to suit the
   4072 situation.
   4073 
   4074    If your document contains nontrivial examples of program code, we
   4075 recommend releasing these examples in parallel under your choice of
   4076 free software license, such as the GNU General Public License, to
   4077 permit their use in free software.
   4078 
   4079 
   4080 File: binutils.info,  Node: Binutils Index,  Prev: GNU Free Documentation License,  Up: Top
   4081 
   4082 Binutils Index
   4083 **************
   4084 
   4085 [index]
   4086 * Menu:
   4087 
   4088 * .stab:                                 objdump.             (line 340)
   4089 * addr2line:                             addr2line.           (line   6)
   4090 * address to file name and line number:  addr2line.           (line   6)
   4091 * all header information, object file:   objdump.             (line 451)
   4092 * ar:                                    ar.                  (line   6)
   4093 * ar compatibility:                      ar.                  (line  50)
   4094 * architecture:                          objdump.             (line 187)
   4095 * architectures available:               objdump.             (line 172)
   4096 * archive contents:                      ranlib.              (line   6)
   4097 * Archive file symbol index information: readelf.             (line 138)
   4098 * archive headers:                       objdump.             (line  61)
   4099 * archives:                              ar.                  (line   6)
   4100 * base files:                            dlltool.             (line 108)
   4101 * bug criteria:                          Bug Criteria.        (line   6)
   4102 * bug reports:                           Bug Reporting.       (line   6)
   4103 * bugs:                                  Reporting Bugs.      (line   6)
   4104 * bugs, reporting:                       Bug Reporting.       (line   6)
   4105 * c++filt:                               c++filt.             (line   6)
   4106 * changing object addresses:             objcopy.             (line 275)
   4107 * changing section address:              objcopy.             (line 285)
   4108 * changing section LMA:                  objcopy.             (line 293)
   4109 * changing section VMA:                  objcopy.             (line 306)
   4110 * changing start address:                objcopy.             (line 270)
   4111 * collections of files:                  ar.                  (line   6)
   4112 * compatibility, ar:                     ar.                  (line  50)
   4113 * contents of archive:                   ar cmdline.          (line  88)
   4114 * crash:                                 Bug Criteria.        (line   9)
   4115 * creating archives:                     ar cmdline.          (line 129)
   4116 * creating thin archive:                 ar cmdline.          (line 182)
   4117 * cxxfilt:                               c++filt.             (line  14)
   4118 * dates in archive:                      ar cmdline.          (line 156)
   4119 * debug symbols:                         objdump.             (line 335)
   4120 * debugging symbols:                     nm.                  (line 132)
   4121 * deleting from archive:                 ar cmdline.          (line  26)
   4122 * demangling C++ symbols:                c++filt.             (line   6)
   4123 * demangling in nm:                      nm.                  (line 140)
   4124 * demangling in objdump <1>:             addr2line.           (line  55)
   4125 * demangling in objdump:                 objdump.             (line  89)
   4126 * disassembling object code:             objdump.             (line 111)
   4127 * disassembly architecture:              objdump.             (line 187)
   4128 * disassembly endianness:                objdump.             (line 127)
   4129 * disassembly, with source:              objdump.             (line 321)
   4130 * discarding symbols:                    strip.               (line   6)
   4131 * DLL:                                   dlltool.             (line   6)
   4132 * dlltool:                               dlltool.             (line   6)
   4133 * DWARF:                                 objdump.             (line 335)
   4134 * dynamic relocation entries, in object file: objdump.        (line 310)
   4135 * dynamic symbol table entries, printing: objdump.            (line 435)
   4136 * dynamic symbols:                       nm.                  (line 152)
   4137 * ELF dynamic section information:       readelf.             (line 104)
   4138 * ELF file header information:           readelf.             (line  53)
   4139 * ELF file information:                  readelf.             (line   6)
   4140 * ELF notes:                             readelf.             (line  89)
   4141 * ELF object file format:                objdump.             (line 340)
   4142 * ELF program header information:        readelf.             (line  59)
   4143 * ELF reloc information:                 readelf.             (line  93)
   4144 * ELF section group information:         readelf.             (line  70)
   4145 * ELF section information:               readelf.             (line  65)
   4146 * ELF segment information:               readelf.             (line  59)
   4147 * ELF symbol table information:          readelf.             (line  80)
   4148 * ELF version sections informations:     readelf.             (line 108)
   4149 * endianness:                            objdump.             (line 127)
   4150 * error on valid input:                  Bug Criteria.        (line  12)
   4151 * external symbols:                      nm.                  (line 164)
   4152 * extract from archive:                  ar cmdline.          (line 103)
   4153 * fatal signal:                          Bug Criteria.        (line   9)
   4154 * file name:                             nm.                  (line 126)
   4155 * header information, all:               objdump.             (line 451)
   4156 * input .def file:                       dlltool.             (line 104)
   4157 * input file name:                       nm.                  (line 126)
   4158 * libraries:                             ar.                  (line  25)
   4159 * listings strings:                      strings.             (line   6)
   4160 * machine instructions:                  objdump.             (line 111)
   4161 * moving in archive:                     ar cmdline.          (line  34)
   4162 * MRI compatibility, ar:                 ar scripts.          (line   8)
   4163 * name duplication in archive:           ar cmdline.          (line  97)
   4164 * name length:                           ar.                  (line  18)
   4165 * nm:                                    nm.                  (line   6)
   4166 * nm compatibility:                      nm.                  (line 136)
   4167 * nm format:                             nm.                  (line 136)
   4168 * not writing archive index:             ar cmdline.          (line 175)
   4169 * objdump:                               objdump.             (line   6)
   4170 * object code format <1>:                addr2line.           (line  50)
   4171 * object code format <2>:                strings.             (line  67)
   4172 * object code format <3>:                size.                (line  84)
   4173 * object code format <4>:                objdump.             (line  75)
   4174 * object code format:                    nm.                  (line 228)
   4175 * object file header:                    objdump.             (line 133)
   4176 * object file information:               objdump.             (line   6)
   4177 * object file offsets:                   objdump.             (line 138)
   4178 * object file sections:                  objdump.             (line 316)
   4179 * object formats available:              objdump.             (line 172)
   4180 * operations on archive:                 ar cmdline.          (line  22)
   4181 * printing from archive:                 ar cmdline.          (line  46)
   4182 * printing strings:                      strings.             (line   6)
   4183 * quick append to archive:               ar cmdline.          (line  54)
   4184 * radix for section sizes:               size.                (line  66)
   4185 * ranlib:                                ranlib.              (line   6)
   4186 * readelf:                               readelf.             (line   6)
   4187 * relative placement in archive:         ar cmdline.          (line 117)
   4188 * relocation entries, in object file:    objdump.             (line 304)
   4189 * removing symbols:                      strip.               (line   6)
   4190 * repeated names in archive:             ar cmdline.          (line  97)
   4191 * replacement in archive:                ar cmdline.          (line  70)
   4192 * reporting bugs:                        Reporting Bugs.      (line   6)
   4193 * scripts, ar:                           ar scripts.          (line   8)
   4194 * section addresses in objdump:          objdump.             (line  67)
   4195 * section headers:                       objdump.             (line 154)
   4196 * section information:                   objdump.             (line 177)
   4197 * section sizes:                         size.                (line   6)
   4198 * sections, full contents:               objdump.             (line 316)
   4199 * size:                                  size.                (line   6)
   4200 * size display format:                   size.                (line  27)
   4201 * size number format:                    size.                (line  66)
   4202 * sorting symbols:                       nm.                  (line 183)
   4203 * source code context:                   objdump.             (line 147)
   4204 * source disassembly:                    objdump.             (line 321)
   4205 * source file name:                      nm.                  (line 126)
   4206 * source filenames for object files:     objdump.             (line 181)
   4207 * stab:                                  objdump.             (line 340)
   4208 * start-address:                         objdump.             (line 350)
   4209 * stop-address:                          objdump.             (line 354)
   4210 * strings:                               strings.             (line   6)
   4211 * strings, printing:                     strings.             (line   6)
   4212 * strip:                                 strip.               (line   6)
   4213 * symbol index <1>:                      ranlib.              (line   6)
   4214 * symbol index:                          ar.                  (line  28)
   4215 * symbol index, listing:                 nm.                  (line 198)
   4216 * symbol line numbers:                   nm.                  (line 168)
   4217 * symbol table entries, printing:        objdump.             (line 359)
   4218 * symbols:                               nm.                  (line   6)
   4219 * symbols, discarding:                   strip.               (line   6)
   4220 * thin archives:                         ar.                  (line  40)
   4221 * undefined symbols:                     nm.                  (line 233)
   4222 * Unix compatibility, ar:                ar cmdline.          (line   8)
   4223 * unwind information:                    readelf.             (line  98)
   4224 * updating an archive:                   ar cmdline.          (line 187)
   4225 * version:                               Top.                 (line   6)
   4226 * VMA in objdump:                        objdump.             (line  67)
   4227 * wide output, printing:                 objdump.             (line 457)
   4228 * writing archive index:                 ar cmdline.          (line 169)
   4229 
   4230 
   4231 
   4232 Tag Table:
   4233 Node: Top1923
   4234 Node: ar3557
   4235 Node: ar cmdline6344
   4236 Node: ar scripts14724
   4237 Node: nm20412
   4238 Node: objcopy28917
   4239 Node: objdump54369
   4240 Node: ranlib72909
   4241 Node: size73730
   4242 Node: strings76735
   4243 Node: strip79187
   4244 Node: c++filt85138
   4245 Ref: c++filt-Footnote-190085
   4246 Node: addr2line90191
   4247 Node: nlmconv93462
   4248 Node: windmc96068
   4249 Node: windres99715
   4250 Node: dlltool105742
   4251 Node: def file format116579
   4252 Node: readelf118317
   4253 Node: Common Options123871
   4254 Node: Selecting the Target System124911
   4255 Node: Target Selection125843
   4256 Node: Architecture Selection127825
   4257 Node: Reporting Bugs128653
   4258 Node: Bug Criteria129432
   4259 Node: Bug Reporting129985
   4260 Node: GNU Free Documentation License136855
   4261 Node: Binutils Index159299
   4262 
   4263 End Tag Table
   4264