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