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