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