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