t HWR (hardware register, used by the `rdhwr' instruction) names as appropriate for the CPU or architecture specified by ARCH. By default, HWR names are selected according to the architecture and CPU of the binary being disassembled. `reg-names=ABI' Print GPR and FPR names as appropriate for the selected ABI. `reg-names=ARCH' Print CPU-specific register names (CP0 register and HWR names) as appropriate for the selected CPU or architecture. For any of the options listed above, ABI or ARCH may be specified as `numeric' to have numbers printed rather than names, for the selected types of registers. You can list the available values of ABI and ARCH using the `--help' option. For VAX, you can specify function entry addresses with `-M entry:0xf00ba'. You can use this multiple times to properly disassemble VAX binary files that don't contain symbol tables (like ROM dumps). In these cases, the function entry mask would otherwise be decoded as VAX instructions, which would probably lead the rest of the function being wrongly disassembled. `-p' `--private-headers' Print information that is specific to the object file format. The exact information printed depends upon the object file format. For some object file formats, no additional information is printed. `-r' `--reloc' Print the relocation entries of the file. If used with `-d' or `-D', the relocations are printed interspersed with the disassembly. `-R' `--dynamic-reloc' Print the dynamic relocation entries of the file. This is only meaningful for dynamic objects, such as certain types of shared libraries. As for `-r', if used with `-d' or `-D', the relocations are printed interspersed with the disassembly. `-s' `--full-contents' Display the full contents of any sections requested. By default all non-empty sections are displayed. `-S' `--source' Display source code intermixed with disassembly, if possible. Implies `-d'. `--prefix=PREFIX' Specify PREFIX to add to the absolute paths when used with `-S'. `--prefix-strip=LEVEL' Indicate how many initial directory names to strip off the hardwired absolute paths. It has no effect without `--prefix='PREFIX. `--show-raw-insn' When disassembling instructions, print the instruction in hex as well as in symbolic form. This is the default except when `--prefix-addresses' is used. `--no-show-raw-insn' When disassembling instructions, do not print the instruction bytes. This is the default when `--prefix-addresses' is used. `--insn-width=WIDTH' Display WIDTH bytes on a single line when disassembling instructions. `-W[lLiaprmfFsoRt]' `--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges]' Displays the contents of the debug sections in the file, if any are present. If one of the optional letters or words follows the switch then only data found in those specific sections will be dumped. Note that there is no single letter option to display the content of trace sections. `-G' `--stabs' Display the full contents of any sections requested. Display the contents of the .stab and .stab.index and .stab.excl sections from an ELF file. This is only useful on systems (such as Solaris 2.0) in which `.stab' debugging symbol-table entries are carried in an ELF section. In most other file formats, debugging symbol-table entries are interleaved with linkage symbols, and are visible in the `--syms' output. For more information on stabs symbols, see *Note Stabs: (stabs.info)Top. `--start-address=ADDRESS' Start displaying data at the specified address. This affects the output of the `-d', `-r' and `-s' options. `--stop-address=ADDRESS' Stop displaying data at the specified address. This affects the output of the `-d', `-r' and `-s' options. `-t' `--syms' Print the symbol table entries of the file. This is similar to the information provided by the `nm' program, although the display format is different. The format of the output depends upon the format of the file being dumped, but there are two main types. One looks like this: [ 4](sec 3)(fl 0x00)(ty 0)(scl 3) (nx 1) 0x00000000 .bss [ 6](sec 1)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 fred where the number inside the square brackets is the number of the entry in the symbol table, the SEC number is the section number, the FL value are the symbol's flag bits, the TY number is the symbol's type, the SCL number is the symbol's storage class and the NX value is the number of auxilary entries associated with the symbol. The last two fields are the symbol's value and its name. The other common output format, usually seen with ELF based files, looks like this: 00000000 l d .bss 00000000 .bss 00000000 g .text 00000000 fred Here the first number is the symbol's value (sometimes refered to as its address). The next field is actually a set of characters and spaces indicating the flag bits that are set on the symbol. These characters are described below. Next is the section with which the symbol is associated or _*ABS*_ if the section is absolute (ie not connected with any section), or _*UND*_ if the section is referenced in the file being dumped, but not defined there. After the section name comes another field, a number, which for common symbols is the alignment and for other symbol is the size. Finally the symbol's name is displayed. The flag characters are divided into 7 groups as follows: `l' `g' `u' `!' The symbol is a local (l), global (g), unique global (u), neither global nor local (a space) or both global and local (!). A symbol can be neither local or global for a variety of reasons, e.g., because it is used for debugging, but it is probably an indication of a bug if it is ever both local and global. Unique global symbols are a GNU extension to the standard set of ELF symbol bindings. For such a symbol the dynamic linker will make sure that in the entire process there is just one symbol with this name and type in use. `w' The symbol is weak (w) or strong (a space). `C' The symbol denotes a constructor (C) or an ordinary symbol (a space). `W' The symbol is a warning (W) or a normal symbol (a space). A warning symbol's name is a message to be displayed if the symbol following the warning symbol is ever referenced. `I' `i' The symbol is an indirect reference to another symbol (I), a function to be evaluated during reloc processing (i) or a normal symbol (a space). `d' `D' The symbol is a debugging symbol (d) or a dynamic symbol (D) or a normal symbol (a space). `F' `f' `O' The symbol is the name of a function (F) or a file (f) or an object (O) or just a normal symbol (a space). `-T' `--dynamic-syms' Print the dynamic symbol table entries of the file. This is only meaningful for dynamic objects, such as certain types of shared libraries. This is similar to the information provided by the `nm' program when given the `-D' (`--dynamic') option. `--special-syms' When displaying symbols include those which the target considers to be special in some way and which would not normally be of interest to the user. `-V' `--version' Print the version number of `objdump' and exit. `-x' `--all-headers' Display all available header information, including the symbol table and relocation entries. Using `-x' is equivalent to specifying all of `-a -f -h -p -r -t'. `-w' `--wide' Format some lines for output devices that have more than 80 columns. Also do not truncate symbol names when they are displayed. `-z' `--disassemble-zeroes' Normally the disassembly output will skip blocks of zeroes. This option directs the disassembler to disassemble those blocks, just like any other data.  File: binutils.info, Node: ranlib, Next: readelf, Prev: objdump, Up: Top 5 ranlib ******** ranlib [`-vVt'] ARCHIVE `ranlib' generates an index to the contents of an archive and stores it in the archive. The index lists each symbol defined by a member of an archive that is a relocatable object file. You may use `nm -s' or `nm --print-armap' to list this index. An archive with such an index speeds up linking to the library and allows routines in the library to call each other without regard to their placement in the archive. The GNU `ranlib' program is another form of GNU `ar'; running `ranlib' is completely equivalent to executing `ar -s'. *Note ar::. `-v' `-V' `--version' Show the version number of `ranlib'. `-t' Update the timestamp of the symbol map of an archive.  File: binutils.info, Node: size, Next: strings, Prev: readelf, Up: Top 6 size ****** size [`-A'|`-B'|`--format='COMPATIBILITY] [`--help'] [`-d'|`-o'|`-x'|`--radix='NUMBER] [`--common'] [`-t'|`--totals'] [`--target='BFDNAME] [`-V'|`--version'] [OBJFILE...] The GNU `size' utility lists the section sizes--and the total size--for each of the object or archive files OBJFILE in its argument list. By default, one line of output is generated for each object file or each module in an archive. OBJFILE... are the object files to be examined. If none are specified, the file `a.out' will be used. The command line options have the following meanings: `-A' `-B' `--format=COMPATIBILITY' Using one of these options, you can choose whether the output from GNU `size' resembles output from System V `size' (using `-A', or `--format=sysv'), or Berkeley `size' (using `-B', or `--format=berkeley'). The default is the one-line format similar to Berkeley's. Here is an example of the Berkeley (default) format of output from `size': $ size --format=Berkeley ranlib size text data bss dec hex filename 294880 81920 11592 388392 5ed28 ranlib 294880 81920 11888 388688 5ee50 size This is the same data, but displayed closer to System V conventions: $ size --format=SysV ranlib size ranlib : section size addr .text 294880 8192 .data 81920 303104 .bss 11592 385024 Total 388392 size : section size addr .text 294880 8192 .data 81920 303104 .bss 11888 385024 Total 388688 `--help' Show a summary of acceptable arguments and options. `-d' `-o' `-x' `--radix=NUMBER' Using one of these options, you can control whether the size of each section is given in decimal (`-d', or `--radix=10'); octal (`-o', or `--radix=8'); or hexadecimal (`-x', or `--radix=16'). In `--radix=NUMBER', only the three values (8, 10, 16) are supported. The total size is always given in two radices; decimal and hexadecimal for `-d' or `-x' output, or octal and hexadecimal if you're using `-o'. `--common' Print total size of common symbols in each file. When using Berkeley format these are included in the bss size. `-t' `--totals' Show totals of all objects listed (Berkeley format listing mode only). `--target=BFDNAME' Specify that the object-code format for OBJFILE is BFDNAME. This option may not be necessary; `size' can automatically recognize many formats. *Note Target Selection::, for more information. `-V' `--version' Display the version number of `size'.  File: binutils.info, Node: strings, Next: strip, Prev: size, Up: Top 7 strings ********* strings [`-afovV'] [`-'MIN-LEN] [`-n' MIN-LEN] [`--bytes='MIN-LEN] [`-t' RADIX] [`--radix='RADIX] [`-e' ENCODING] [`--encoding='ENCODING] [`-'] [`--all'] [`--print-file-name'] [`-T' BFDNAME] [`--target='BFDNAME] [`--help'] [`--version'] FILE... For each FILE given, GNU `strings' prints the printable character sequences that are at least 4 characters long (or the number given with the options below) and are followed by an unprintable character. By default, it only prints the strings from the initialized and loaded sections of object files; for other types of files, it prints the strings from the whole file. `strings' is mainly useful for determining the contents of non-text files. `-a' `--all' `-' Do not scan only the initialized and loaded sections of object files; scan the whole files. `-f' `--print-file-name' Print the name of the file before each string. `--help' Print a summary of the program usage on the standard output and exit. `-MIN-LEN' `-n MIN-LEN' `--bytes=MIN-LEN' Print sequences of characters that are at least MIN-LEN characters long, instead of the default 4. `-o' Like `-t o'. Some other versions of `strings' have `-o' act like `-t d' instead. Since we can not be compatible with both ways, we simply chose one. `-t RADIX' `--radix=RADIX' Print the offset within the file before each string. The single character argument specifies the radix of the offset--`o' for octal, `x' for hexadecimal, or `d' for decimal. `-e ENCODING' `--encoding=ENCODING' Select the character encoding of the strings that are to be found. Possible values for ENCODING are: `s' = single-7-bit-byte characters (ASCII, ISO 8859, etc., default), `S' = single-8-bit-byte characters, `b' = 16-bit bigendian, `l' = 16-bit littleendian, `B' = 32-bit bigendian, `L' = 32-bit littleendian. Useful for finding wide character strings. (`l' and `b' apply to, for example, Unicode UTF-16/UCS-2 encodings). `-T BFDNAME' `--target=BFDNAME' Specify an object code format other than your system's default format. *Note Target Selection::, for more information. `-v' `-V' `--version' Print the program version number on the standard output and exit.  File: binutils.info, Node: strip, Next: elfedit, Prev: strings, Up: Top 8 strip ******* strip [`-F' BFDNAME |`--target='BFDNAME] [`-I' BFDNAME |`--input-target='BFDNAME] [`-O' BFDNAME |`--output-target='BFDNAME] [`-s'|`--strip-all'] [`-S'|`-g'|`-d'|`--strip-debug'] [`-K' SYMBOLNAME |`--keep-symbol='SYMBOLNAME] [`-N' SYMBOLNAME |`--strip-symbol='SYMBOLNAME] [`-w'|`--wildcard'] [`-x'|`--discard-all'] [`-X' |`--discard-locals'] [`-R' SECTIONNAME |`--remove-section='SECTIONNAME] [`-o' FILE] [`-p'|`--preserve-dates'] [`--keep-file-symbols'] [`--only-keep-debug'] [`-v' |`--verbose'] [`-V'|`--version'] [`--help'] [`--info'] OBJFILE... GNU `strip' discards all symbols from object files OBJFILE. The list of object files may include archives. At least one object file must be given. `strip' modifies the files named in its argument, rather than writing modified copies under different names. `-F BFDNAME' `--target=BFDNAME' Treat the original OBJFILE as a file with the object code format BFDNAME, and rewrite it in the same format. *Note Target Selection::, for more information. `--help' Show a summary of the options to `strip' and exit. `--info' Display a list showing all architectures and object formats available. `-I BFDNAME' `--input-target=BFDNAME' Treat the original OBJFILE as a file with the object code format BFDNAME. *Note Target Selection::, for more information. `-O BFDNAME' `--output-target=BFDNAME' Replace OBJFILE with a file in the output format BFDNAME. *Note Target Selection::, for more information. `-R SECTIONNAME' `--remove-section=SECTIONNAME' Remove any section named SECTIONNAME from the output file. This option may be given more than once. Note that using this option inappropriately may make the output file unusable. `-s' `--strip-all' Remove all symbols. `-g' `-S' `-d' `--strip-debug' Remove debugging symbols only. `--strip-unneeded' Remove all symbols that are not needed for relocation processing. `-K SYMBOLNAME' `--keep-symbol=SYMBOLNAME' When stripping symbols, keep symbol SYMBOLNAME even if it would normally be stripped. This option may be given more than once. `-N SYMBOLNAME' `--strip-symbol=SYMBOLNAME' Remove symbol SYMBOLNAME from the source file. This option may be given more than once, and may be combined with strip options other than `-K'. `-o FILE' Put the stripped output in FILE, rather than replacing the existing file. When this argument is used, only one OBJFILE argument may be specified. `-p' `--preserve-dates' Preserve the access and modification dates of the file. `-w' `--wildcard' Permit regular expressions in SYMBOLNAMEs used in other command line options. The question mark (?), asterisk (*), backslash (\) and square brackets ([]) operators can be used anywhere in the symbol name. If the first character of the symbol name is the exclamation point (!) then the sense of the switch is reversed for that symbol. For example: -w -K !foo -K fo* would cause strip to only keep symbols that start with the letters "fo", but to discard the symbol "foo". `-x' `--discard-all' Remove non-global symbols. `-X' `--discard-locals' Remove compiler-generated local symbols. (These usually start with `L' or `.'.) `--keep-file-symbols' When stripping a file, perhaps with `--strip-debug' or `--strip-unneeded', retain any symbols specifying source file names, which would otherwise get stripped. `--only-keep-debug' Strip a file, removing contents of any sections that would not be stripped by `--strip-debug' and leaving the debugging sections intact. In ELF files, this preserves all note sections in the output. The intention is that this option will be used in conjunction with `--add-gnu-debuglink' to create a two part executable. One a stripped binary which will occupy less space in RAM and in a distribution and the second a debugging information file which is only needed if debugging abilities are required. The suggested procedure to create these files is as follows: 1. Link the executable as normal. Assuming that is is called `foo' then... 2. Run `objcopy --only-keep-debug foo foo.dbg' to create a file containing the debugging info. 3. Run `objcopy --strip-debug foo' to create a stripped executable. 4. Run `objcopy --add-gnu-debuglink=foo.dbg foo' to add a link to the debugging info into the stripped executable. Note--the choice of `.dbg' as an extension for the debug info file is arbitrary. Also the `--only-keep-debug' step is optional. You could instead do this: 1. Link the executable as normal. 2. Copy `foo' to `foo.full' 3. Run `strip --strip-debug foo' 4. Run `objcopy --add-gnu-debuglink=foo.full foo' i.e., the file pointed to by the `--add-gnu-debuglink' can be the full executable. It does not have to be a file created by the `--only-keep-debug' switch. Note--this switch is only intended for use on fully linked files. It does not make sense to use it on object files where the debugging information may be incomplete. Besides the gnu_debuglink feature currently only supports the presence of one filename containing debugging information, not multiple filenames on a one-per-object-file basis. `-V' `--version' Show the version number for `strip'. `-v' `--verbose' Verbose output: list all object files modified. In the case of archives, `strip -v' lists all members of the archive.  File: binutils.info, Node: c++filt, Next: addr2line, Prev: elfedit, Up: Top 9 c++filt ********* c++filt [`-_'|`--strip-underscores'] [`-n'|`--no-strip-underscores'] [`-p'|`--no-params'] [`-t'|`--types'] [`-i'|`--no-verbose'] [`-s' FORMAT|`--format='FORMAT] [`--help'] [`--version'] [SYMBOL...] The C++ and Java languages provide function overloading, which means that you can write many functions with the same name, providing that each function takes parameters of different types. In order to be able to distinguish these similarly named functions C++ and Java encode them into a low-level assembler name which uniquely identifies each different version. This process is known as "mangling". The `c++filt' (1) program does the inverse mapping: it decodes ("demangles") low-level names into user-level names so that they can be read. Every alphanumeric word (consisting of letters, digits, underscores, dollars, or periods) seen in the input is a potential mangled name. If the name decodes into a C++ name, the C++ name replaces the low-level name in the output, otherwise the original word is output. In this way you can pass an entire assembler source file, containing mangled names, through `c++filt' and see the same source file containing demangled names. You can also use `c++filt' to decipher individual symbols by passing them on the command line: c++filt SYMBOL If no SYMBOL arguments are given, `c++filt' reads symbol names from the standard input instead. All the results are printed on the standard output. The difference between reading names from the command line versus reading names from the standard input is that command line arguments are expected to be just mangled names and no checking is performed to separate them from surrounding text. Thus for example: c++filt -n _Z1fv will work and demangle the name to "f()" whereas: c++filt -n _Z1fv, will not work. (Note the extra comma at the end of the mangled name which makes it invalid). This command however will work: echo _Z1fv, | c++filt -n and will display "f(),", i.e., the demangled name followed by a trailing comma. This behaviour is because when the names are read from the standard input it is expected that they might be part of an assembler source file where there might be extra, extraneous characters trailing after a mangled name. For example: .type _Z1fv, @function `-_' `--strip-underscores' On some systems, both the C and C++ compilers put an underscore in front of every name. For example, the C name `foo' gets the low-level name `_foo'. This option removes the initial underscore. Whether `c++filt' removes the underscore by default is target dependent. `-n' `--no-strip-underscores' Do not remove the initial underscore. `-p' `--no-params' When demangling the name of a function, do not display the types of the function's parameters. `-t' `--types' Attempt to demangle types as well as function names. This is disabled by default since mangled types are normally only used internally in the compiler, and they can be confused with non-mangled names. For example, a function called "a" treated as a mangled type name would be demangled to "signed char". `-i' `--no-verbose' Do not include implementation details (if any) in the demangled output. `-s FORMAT' `--format=FORMAT' `c++filt' can decode various methods of mangling, used by different compilers. The argument to this option selects which method it uses: `auto' Automatic selection based on executable (the default method) `gnu' the one used by the GNU C++ compiler (g++) `lucid' the one used by the Lucid compiler (lcc) `arm' the one specified by the C++ Annotated Reference Manual `hp' the one used by the HP compiler (aCC) `edg' the one used by the EDG compiler `gnu-v3' the one used by the GNU C++ compiler (g++) with the V3 ABI. `java' the one used by the GNU Java compiler (gcj) `gnat' the one used by the GNU Ada compiler (GNAT). `--help' Print a summary of the options to `c++filt' and exit. `--version' Print the version number of `c++filt' and exit. _Warning:_ `c++filt' is a new utility, and the details of its user interface are subject to change in future releases. In particular, a command-line option may be required in the future to decode a name passed as an argument on the command line; in other words, c++filt SYMBOL may in a future release become c++filt OPTION SYMBOL ---------- Footnotes ---------- (1) MS-DOS does not allow `+' characters in file names, so on MS-DOS this program is named `CXXFILT'.  File: binutils.info, Node: addr2line, Next: nlmconv, Prev: c++filt, Up: Top 10 addr2line ************ addr2line [`-a'|`--addresses'] [`-b' BFDNAME|`--target='BFDNAME] [`-C'|`--demangle'[=STYLE]] [`-e' FILENAME|`--exe='FILENAME] [`-f'|`--functions'] [`-s'|`--basename'] [`-i'|`--inlines'] [`-p'|`--pretty-print'] [`-j'|`--section='NAME] [`-H'|`--help'] [`-V'|`--version'] [addr addr ...] `addr2line' translates addresses into file names and line numbers. Given an address in an executable or an offset in a section of a relocatable object, it uses the debugging information to figure out which file name and line number are associated with it. The executable or relocatable object to use is specified with the `-e' option. The default is the file `a.out'. The section in the relocatable object to use is specified with the `-j' option. `addr2line' has two modes of operation. In the first, hexadecimal addresses are specified on the command line, and `addr2line' displays the file name and line number for each address. In the second, `addr2line' reads hexadecimal addresses from standard input, and prints the file name and line number for each address on standard output. In this mode, `addr2line' may be used in a pipe to convert dynamically chosen addresses. The format of the output is `FILENAME:LINENO'. The file name and line number for each address is printed on a separate line. If the `-f' option is used, then each `FILENAME:LINENO' line is preceded by a `FUNCTIONNAME' line which is the name of the function containing the address. If the `-a' option is used, then the address read is first printed. If the file name or function name can not be determined, `addr2line' will print two question marks in their place. If the line number can not be determined, `addr2line' will print 0. The long and short forms of options, shown here as alternatives, are equivalent. `-a' `--addresses' Display address before function names or file and line number information. The address is printed with a `0x' prefix to easily identify it. `-b BFDNAME' `--target=BFDNAME' Specify that the object-code format for the object files is BFDNAME. `-C' `--demangle[=STYLE]' Decode ("demangle") low-level symbol names into user-level names. Besides removing any initial underscore prepended by the system, this makes C++ function names readable. Different compilers have different mangling styles. The optional demangling style argument can be used to choose an appropriate demangling style for your compiler. *Note c++filt::, for more information on demangling. `-e FILENAME' `--exe=FILENAME' Specify the name of the executable for which addresses should be translated. The default file is `a.out'. `-f' `--functions' Display function names as well as file and line number information. `-s' `--basenames' Display only the base of each file name. `-i' `--inlines' If the address belongs to a function that was inlined, the source information for all enclosing scopes back to the first non-inlined function will also be printed. For example, if `main' inlines `callee1' which inlines `callee2', and address is from `callee2', the source information for `callee1' and `main' will also be printed. `-j' `--section' Read offsets relative to the specified section instead of absolute addresses. `-p' `--pretty-print' Make the output more human friendly: each location are printed on one line. If option `-i' is specified, lines for all enclosing scopes are prefixed with `(inlined by)'.  File: binutils.info, Node: nlmconv, Next: windres, Prev: addr2line, Up: Top 11 nlmconv ********** `nlmconv' converts a relocatable object file into a NetWare Loadable Module. _Warning:_ `nlmconv' is not always built as part of the binary utilities, since it is only useful for NLM targets. nlmconv [`-I' BFDNAME|`--input-target='BFDNAME] [`-O' BFDNAME|`--output-target='BFDNAME] [`-T' HEADERFILE|`--header-file='HEADERFILE] [`-d'|`--debug'] [`-l' LINKER|`--linker='LINKER] [`-h'|`--help'] [`-V'|`--version'] INFILE OUTFILE `nlmconv' converts the relocatable `i386' object file INFILE into the NetWare Loadable Module OUTFILE, optionally reading HEADERFILE for NLM header information. For instructions on writing the NLM command file language used in header files, see the `linkers' section, `NLMLINK' in particular, of the `NLM Development and Tools Overview', which is part of the NLM Software Developer's Kit ("NLM SDK"), available from Novell, Inc. `nlmconv' uses the GNU Binary File Descriptor library to read INFILE; see *Note BFD: (ld.info)BFD, for more information. `nlmconv' can perform a link step. In other words, you can list more than one object file for input if you list them in the definitions file (rather than simply specifying one input file on the command line). In this case, `nlmconv' calls the linker for you. `-I BFDNAME' `--input-target=BFDNAME' Object format of the input file. `nlmconv' can usually determine the format of a given file (so no default is necessary). *Note Target Selection::, for more information. `-O BFDNAME' `--output-target=BFDNAME' Object format of the output file. `nlmconv' infers the output format based on the input format, e.g. for a `i386' input file the output format is `nlm32-i386'. *Note Target Selection::, for more information. `-T HEADERFILE' `--header-file=HEADERFILE' Reads HEADERFILE for NLM header information. For instructions on writing the NLM command file language used in header files, see see the `linkers' section, of the `NLM Development and Tools Overview', which is part of the NLM Software Developer's Kit, available from Novell, Inc. `-d' `--debug' Displays (on standard error) the linker command line used by `nlmconv'. `-l LINKER' `--linker=LINKER' Use LINKER for any linking. LINKER can be an absolute or a relative pathname. `-h' `--help' Prints a usage summary. `-V' `--version' Prints the version number for `nlmconv'.  File: binutils.info, Node: windmc, Next: dlltool, Prev: windres, Up: Top 12 windmc ********* `windmc' may be used to generator Windows message resources. _Warning:_ `windmc' is not always built as part of the binary utilities, since it is only useful for Windows targets. windmc [options] input-file `windmc' reads message definitions from an input file (.mc) and translate them into a set of output files. The output files may be of four kinds: `h' A C header file containing the message definitions. `rc' A resource file compilable by the `windres' tool. `bin' One or more binary files containing the resource data for a specific message language. `dbg' A C include file that maps message id's to their symbolic name. The exact description of these different formats is available in documentation from Microsoft. When `windmc' converts from the `mc' format to the `bin' format, `rc', `h', and optional `dbg' it is acting like the Windows Message Compiler. `-a' `--ascii_in' Specifies that the input file specified is ASCII. This is the default behaviour. `-A' `--ascii_out' Specifies that messages in the output `bin' files should be in ASCII format. `-b' `--binprefix' Specifies that `bin' filenames should have to be prefixed by the basename of the source file. `-c' `--customflag' Sets the customer bit in all message id's. `-C CODEPAGE' `--codepage_in CODEPAGE' Sets the default codepage to be used to convert input file to UTF16. The default is ocdepage 1252. `-d' `--decimal_values' Outputs the constants in the header file in decimal. Default is using hexadecimal output. `-e EXT' `--extension EXT' The extension for the header file. The default is .h extension. `-F TARGET' `--target TARGET' Specify the BFD format to use for a bin file as output. This is a BFD target name; you can use the `--help' option to see a list of supported targets. Normally `windmc' will use the default format, which is the first one listed by the `--help' option. *Note Target Selection::. `-h PATH' `--headerdir PATH' The target directory of the generated header file. The default is the current directory. `-H' `--help' Displays a list of command line options and then exits. `-m CHARACTERS' `--maxlength CHARACTERS' Instructs `windmc' to generate a warning if the length of any message exceeds the number specified. `-n' `--nullterminate' Terminate message text in `bin' files by zero. By default they are terminated by CR/LF. `-o' `--hresult_use' Not yet implemented. Instructs `windmc' to generate an OLE2 header file, using HRESULT definitions. Status codes are used if the flag is not specified. `-O CODEPAGE' `--codepage_out CODEPAGE' Sets the default codepage to be used to output text files. The default is ocdepage 1252. `-r PATH' `--rcdir PATH' The target directory for the generated `rc' script and the generated `bin' files that the resource compiler script includes. The default is the current directory. `-u' `--unicode_in' Specifies that the input file is UTF16. `-U' `--unicode_out' Specifies that messages in the output `bin' file should be in UTF16 format. This is the default behaviour. `-v' `--verbose' Enable verbose mode. `-V' `--version' Prints the version number for `windmc'. `-x PATH' `--xdgb PATH' The path of the `dbg' C include file that maps message id's to the symbolic name. No such file is generated without specifying the switch.  File: binutils.info, Node: windres, Next: windmc, Prev: nlmconv, Up: Top 13 windres ********** `windres' may be used to manipulate Windows resources. _Warning:_ `windres' is not always built as part of the binary utilities, since it is only useful for Windows targets. windres [options] [input-file] [output-file] `windres' reads resources from an input file and copies them into an output file. Either file may be in one of three formats: `rc' A text format read by the Resource Compiler. `res' A binary format generated by the Resource Compiler. `coff' A COFF object or executable. The exact description of these different formats is available in documentation from Microsoft. When `windres' converts from the `rc' format to the `res' format, it is acting like the Windows Resource Compiler. When `windres' converts from the `res' format to the `coff' format, it is acting like the Windows `CVTRES' program. When `windres' generates an `rc' file, the output is similar but not identical to the format expected for the input. When an input `rc' file refers to an external filename, an output `rc' file will instead include the file contents. If the input or output format is not specified, `windres' will guess based on the file name, or, for the input file, the file contents. A file with an extension of `.rc' will be treated as an `rc' file, a file with an extension of `.res' will be treated as a `res' file, and a file with an extension of `.o' or `.exe' will be treated as a `coff' file. If no output file is specified, `windres' will print the resources in `rc' format to standard output. The normal use is for you to write an `rc' file, use `windres' to convert it to a COFF object file, and then link the COFF file into your application. This will make the resources described in the `rc' file available to Windows. `-i FILENAME' `--input FILENAME' The name of the input file. If this option is not used, then `windres' will use the first non-option argument as the input file name. If there are no non-option arguments, then `windres' will read from standard input. `windres' can not read a COFF file from standard input. `-o FILENAME' `--output FILENAME' The name of the output file. If this option is not used, then `windres' will use the first non-option argument, after any used for the input file name, as the output file name. If there is no non-option argument, then `windres' will write to standard output. `windres' can not write a COFF file to standard output. Note, for compatibility with `rc' the option `-fo' is also accepted, but its use is not recommended. `-J FORMAT' `--input-format FORMAT' The input format to read. FORMAT may be `res', `rc', or `coff'. If no input format is specified, `windres' will guess, as described above. `-O FORMAT' `--output-format FORMAT' The output format to generate. FORMAT may be `res', `rc', or `coff'. If no output format is specified, `windres' will guess, as described above. `-F TARGET' `--target TARGET' Specify the BFD format to use for a COFF file as input or output. This is a BFD target name; you can use the `--help' option to see a list of supported targets. Normally `windres' will use the default format, which is the first one listed by the `--help' option. *Note Target Selection::. `--preprocessor PROGRAM' When `windres' reads an `rc' file, it runs it through the C preprocessor first. This option may be used to specify the preprocessor to use, including any leading arguments. The default preprocessor argument is `gcc -E -xc-header -DRC_INVOKED'. `-I DIRECTORY' `--include-dir DIRECTORY' Specify an include directory to use when reading an `rc' file. `windres' will pass this to the preprocessor as an `-I' option. `windres' will also search this directory when looking for files named in the `rc' file. If the argument passed to this command matches any of the supported FORMATS (as described in the `-J' option), it will issue a deprecation warning, and behave just like the `-J' option. New programs should not use this behaviour. If a directory happens to match a FORMAT, simple prefix it with `./' to disable the backward compatibility. `-D TARGET' `--define SYM[=VAL]' Specify a `-D' option to pass to the preprocessor when reading an `rc' file. `-U TARGET' `--undefine SYM' Specify a `-U' option to pass to the preprocessor when reading an `rc' file. `-r' Ignored for compatibility with rc. `-v' Enable verbose mode. This tells you what the preprocessor is if you didn't specify one. `-c VAL' `--codepage VAL' Specify the default codepage to use when reading an `rc' file. VAL should be a hexadecimal prefixed by `0x' or decimal codepage code. The valid range is from zero up to 0xffff, but the validity of the codepage is host and configuration dependent. `-l VAL' `--language VAL' Specify the default language to use when reading an `rc' file. VAL should be a hexadecimal language code. The low eight bits are the language, and the high eight bits are the sublanguage. `--use-temp-file' Use a temporary file to instead of using popen to read the output of the preprocessor. Use this option if the popen implementation is buggy on the host (eg., certain non-English language versions of Windows 95 and Windows 98 are known to have buggy popen where the output will instead go the console). `--no-use-temp-file' Use popen, not a temporary file, to read the output of the preprocessor. This is the default behaviour. `-h' `--help' Prints a usage summary. `-V' `--version' Prints the version number for `windres'. `--yydebug' If `windres' is compiled with `YYDEBUG' defined as `1', this will turn on parser debugging.  File: binutils.info, Node: dlltool, Next: Common Options, Prev: windmc, Up: Top 14 dlltool ********** `dlltool' is used to create the files needed to create dynamic link libraries (DLLs) on systems which understand PE format image files such as Windows. A DLL contains an export table which contains information that the runtime loader needs to resolve references from a referencing program. The export table is generated by this program by reading in a `.def' file or scanning the `.a' and `.o' files which will be in the DLL. A `.o' file can contain information in special `.drectve' sections with export information. _Note:_ `dlltool' is not always built as part of the binary utilities, since it is only useful for those targets which support DLLs. dlltool [`-d'|`--input-def' DEF-FILE-NAME] [`-b'|`--base-file' BASE-FILE-NAME] [`-e'|`--output-exp' EXPORTS-FILE-NAME] [`-z'|`--output-def' DEF-FILE-NAME] [`-l'|`--output-lib' LIBRARY-FILE-NAME] [`-y'|`--output-delaylib' LIBRARY-FILE-NAME] [`--export-all-symbols'] [`--no-export-all-symbols'] [`--exclude-symbols' LIST] [`--no-default-excludes'] [`-S'|`--as' PATH-TO-ASSEMBLER] [`-f'|`--as-flags' OPTIONS] [`-D'|`--dllname' NAME] [`-m'|`--machine' MACHINE] [`-a'|`--add-indirect'] [`-U'|`--add-underscore'] [`--add-stdcall-underscore'] [`-k'|`--kill-at'] [`-A'|`--add-stdcall-alias'] [`-p'|`--ext-prefix-alias' PREFIX] [`-x'|`--no-idata4'] [`-c'|`--no-idata5'] [`--use-nul-prefixed-import-tables'] [`-I'|`--identify' LIBRARY-FILE-NAME] [`--identify-strict'] [`-i'|`--interwork'] [`-n'|`--nodelete'] [`-t'|`--temp-prefix' PREFIX] [`-v'|`--verbose'] [`-h'|`--help'] [`-V'|`--version'] [`--no-leading-underscore'] [`--leading-underscore'] [object-file ...] `dlltool' reads its inputs, which can come from the `-d' and `-b' options as well as object files specified on the command line. It then processes these inputs and if the `-e' option has been specified it creates a exports file. If the `-l' option has been specified it creates a library file and if the `-z' option has been specified it creates a def file. Any or all of the `-e', `-l' and `-z' options can be present in one invocation of dlltool. When creating a DLL, along with the source for the DLL, it is necessary to have three other files. `dlltool' can help with the creation of these files. The first file is a `.def' file which specifies which functions are exported from the DLL, which functions the DLL imports, and so on. This is a text file and can be created by hand, or `dlltool' can be used to create it using the `-z' option. In this case `dlltool' will scan the object files specified on its command line looking for those functions which have been specially marked as being exported and put entries for them in the `.def' file it creates. In order to mark a function as being exported from a DLL, it needs to have an `-export:' entry in the `.drectve' section of the object file. This can be done in C by using the asm() operator: asm (".section .drectve"); asm (".ascii \"-export:my_func\""); int my_func (void) { ... } The second file needed for DLL creation is an exports file. This file is linked with the object files that make up the body of the DLL and it handles the interface between the DLL and the outside world. This is a binary file and it can be created by giving the `-e' option to `dlltool' when it is creating or reading in a `.def' file. The third file needed for DLL creation is the library file that programs will link with in order to access the functions in the DLL (an `import library'). This file can be created by giving the `-l' option to dlltool when it is creating or reading in a `.def' file. If the `-y' option is specified, dlltool generates a delay-import library that can be used instead of the normal import library to allow a program to link to the dll only as soon as an imported function is called for the first time. The resulting executable will need to be linked to the static delayimp library containing __delayLoadHelper2(), which in turn will import LoadLibraryA and GetProcAddress from kernel32. `dlltool' builds the library file by hand, but it builds the exports file by creating temporary files containing assembler statements and then assembling these. The `-S' command line option can be used to specify the path to the assembler that dlltool will use, and the `-f' option can be used to pass specific flags to that assembler. The `-n' can be used to prevent dlltool from deleting these temporary assembler files when it is done, and if `-n' is specified twice then this will prevent dlltool from deleting the temporary object files it used to build the library. Here is an example of creating a DLL from a source file `dll.c' and also creating a program (from an object file called `program.o') that uses that DLL: gcc -c dll.c dlltool -e exports.o -l dll.lib dll.o gcc dll.o exports.o -o dll.dll gcc program.o dll.lib -o program `dlltool' may also be used to query an existing import library to determine the name of the DLL to which it is associated. See the description of the `-I' or `--identify' option. The command line options have the following meanings: `-d FILENAME' `--input-def FILENAME' Specifies the name of a `.def' file to be read in and processed. `-b FILENAME' `--base-file FILENAME' Specifies the name of a base file to be read in and processed. The contents of this file will be added to the relocation section in the exports file generated by dlltool. `-e FILENAME' `--output-exp FILENAME' Specifies the name of the export file to be created by dlltool. `-z FILENAME' `--output-def FILENAME' Specifies the name of the `.def' file to be created by dlltool. `-l FILENAME' `--output-lib FILENAME' Specifies the name of the library file to be created by dlltool. `-y FILENAME' `--output-delaylib FILENAME' Specifies the name of the delay-import library file to be created by dlltool. `--export-all-symbols' Treat all global and weak defined symbols found in the input object files as symbols to be exported. There is a small list of symbols which are not exported by default; see the `--no-default-excludes' option. You may add to the list of symbols to not export by using the `--exclude-symbols' option. `--no-export-all-symbols' Only export symbols explicitly listed in an input `.def' file or in `.drectve' sections in the input object files. This is the default behaviour. The `.drectve' sections are created by `dllexport' attributes in the source code. `--exclude-symbols LIST' Do not export the symbols in LIST. This is a list of symbol names separated by comma or colon characters. The symbol names should not contain a leading underscore. This is only meaningful when `--export-all-symbols' is used. `--no-default-excludes' When `--export-all-symbols' is used, it will by default avoid exporting certain special symbols. The current list of symbols to avoid exporting is `DllMain@12', `DllEntryPoint@0', `impure_ptr'. You may use the `--no-default-excludes' option to go ahead and export these special symbols. This is only meaningful when `--export-all-symbols' is used. `-S PATH' `--as PATH' Specifies the path, including the filename, of the assembler to be used to create the exports file. `-f OPTIONS' `--as-flags OPTIONS' Specifies any specific command line options to be passed to the assembler when building the exports file. This option will work even if the `-S' option is not used. This option only takes one argument, and if it occurs more than once on the command line, then later occurrences will override earlier occurrences. So if it is necessary to pass multiple options to the assembler they should be enclosed in double quotes. `-D NAME' `--dll-name NAME' Specifies the name to be stored in the `.def' file as the name of the DLL when the `-e' option is used. If this option is not present, then the filename given to the `-e' option will be used as the name of the DLL. `-m MACHINE' `-machine MACHINE' Specifies the type of machine for which the library file should be built. `dlltool' has a built in default type, depending upon how it was created, but this option can be used to override that. This is normally only useful when creating DLLs for an ARM processor, when the contents of the DLL are actually encode using Thumb instructions. `-a' `--add-indirect' Specifies that when `dlltool' is creating the exports file it should add a section which allows the exported functions to be referenced without using the import library. Whatever the hell that means! `-U' `--add-underscore' Specifies that when `dlltool' is creating the exports file it should prepend an underscore to the names of _all_ exported symbols. `--no-leading-underscore' `--leading-underscore' Specifies whether standard symbol should be forced to be prefixed, or not. `--add-stdcall-underscore' Specifies that when `dlltool' is creating the exports file it should prepend an underscore to the names of exported _stdcall_ functions. Variable names and non-stdcall function names are not modified. This option is useful when creating GNU-compatible import libs for third party DLLs that were built with MS-Windows tools. `-k' `--kill-at' Specifies that when `dlltool' is creating the exports file it should not append the string `@ '. These numbers are called ordinal numbers and they represent another way of accessing the function in a DLL, other than by name. `-A' `--add-stdcall-alias' Specifies that when `dlltool' is creating the exports file it should add aliases for stdcall symbols without `@ ' in addition to the symbols with `@ '. `-p' `--ext-prefix-alias PREFIX' Causes `dlltool' to create external aliases for all DLL imports with the specified prefix. The aliases are created for both external and import symbols with no leading underscore. `-x' `--no-idata4' Specifies that when `dlltool' is creating the exports and library files it should omit the `.idata4' section. This is for compatibility with certain operating systems. `--use-nul-prefixed-import-tables' Specifies that when `dlltool' is creating the exports and library files it should prefix the `.idata4' and `.idata5' by zero an element. This emulates old gnu import library generation of `dlltool'. By default this option is turned off. `-c' `--no-idata5' Specifies that when `dlltool' is creating the exports and library files it should omit the `.idata5' section. This is for compatibility with certain operating systems. `-I FILENAME' `--identify FILENAME' Specifies that `dlltool' should inspect the import library indicated by FILENAME and report, on `stdout', the name(s) of the associated DLL(s). This can be performed in addition to any other operations indicated by the other options and arguments. `dlltool' fails if the import library does not exist or is not actually an import library. See also `--identify-strict'. `--identify-strict' Modifies the behavior of the `--identify' option, such that an error is reported if FILENAME is associated with more than one DLL. `-i' `--interwork' Specifies that `dlltool' should mark the objects in the library file and exports file that it produces as supporting interworking between ARM and Thumb code. `-n' `--nodelete' Makes `dlltool' preserve the temporary assembler files it used to create the exports file. If this option is repeated then dlltool will also preserve the temporary object files it uses to create the library file. `-t PREFIX' `--temp-prefix PREFIX' Makes `dlltool' use PREFIX when constructing the names of temporary assembler and object files. By default, the temp file prefix is generated from the pid. `-v' `--verbose' Make dlltool describe what it is doing. `-h' `--help' Displays a list of command line options and then exits. `-V' `--version' Displays dlltool's version number and then exits. * Menu: * def file format:: The format of the dlltool `.def' file  File: binutils.info, Node: def file format, Up: dlltool 14.1 The format of the `dlltool' `.def' file ============================================ A `.def' file contains any number of the following commands: `NAME' NAME `[ ,' BASE `]' The result is going to be named NAME`.exe'. `LIBRARY' NAME `[ ,' BASE `]' The result is going to be named NAME`.dll'. `EXPORTS ( ( (' NAME1 `[ = ' NAME2 `] ) | ( ' NAME1 `=' MODULE-NAME `.' EXTERNAL-NAME `) ) [ == ' ITS_NAME `]' `[' INTEGER `] [ NONAME ] [ CONSTANT ] [ DATA ] [ PRIVATE ] ) *' Declares NAME1 as an exported symbol from the DLL, with optional ordinal number INTEGER, or declares NAME1 as an alias (forward) of the function EXTERNAL-NAME in the DLL. If ITS_NAME is specified, this name is used as string in export table. MODULE-NAME. `IMPORTS ( (' INTERNAL-NAME `=' MODULE-NAME `.' INTEGER `) | [' INTERNAL-NAME `= ]' MODULE-NAME `.' EXTERNAL-NAME `) [ == ) ITS_NAME `]' *' Declares that EXTERNAL-NAME or the exported function whose ordinal number is INTEGER is to be imported from the file MODULE-NAME. If INTERNAL-NAME is specified then this is the name that the imported function will be referred to in the body of the DLL. If ITS_NAME is specified, this name is used as string in import table. `DESCRIPTION' STRING Puts STRING into the output `.exp' file in the `.rdata' section. `STACKSIZE' NUMBER-RESERVE `[, ' NUMBER-COMMIT `]' `HEAPSIZE' NUMBER-RESERVE `[, ' NUMBER-COMMIT `]' Generates `--stack' or `--heap' NUMBER-RESERVE,NUMBER-COMMIT in the output `.drectve' section. The linker will see this and act upon it. `CODE' ATTR `+' `DATA' ATTR `+' `SECTIONS (' SECTION-NAME ATTR` + ) *' Generates `--attr' SECTION-NAME ATTR in the output `.drectve' section, where ATTR is one of `READ', `WRITE', `EXECUTE' or `SHARED'. The linker will see this and act upon it.  File: binutils.info, Node: readelf, Next: size, Prev: ranlib, Up: Top 15 readelf ********** readelf [`-a'|`--all'] [`-h'|`--file-header'] [`-l'|`--program-headers'|`--segments'] [`-S'|`--section-headers'|`--sections'] [`-g'|`--section-groups'] [`-t'|`--section-details'] [`-e'|`--headers'] [`-s'|`--syms'|`--symbols'] [`--dyn-syms'] [`-n'|`--notes'] [`-r'|`--relocs'] [`-u'|`--unwind'] [`-d'|`--dynamic'] [`-V'|`--version-info'] [`-A'|`--arch-specific'] [`-D'|`--use-dynamic'] [`-x' |`--hex-dump='] [`-p' |`--string-dump='] [`-R' |`--relocated-dump='] [`-c'|`--archive-index'] [`-w[lLiaprmfFsoRt]'| `--debug-dump'[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges]] [`-I'|`--histogram'] [`-v'|`--version'] [`-W'|`--wide'] [`-H'|`--help'] ELFFILE... `readelf' displays information about one or more ELF format object files. The options control what particular information to display. ELFFILE... are the object files to be examined. 32-bit and 64-bit ELF files are supported, as are archives containing ELF files. This program performs a similar function to `objdump' but it goes into more detail and it exists independently of the BFD library, so if there is a bug in BFD then readelf will not be affected. The long and short forms of options, shown here as alternatives, are equivalent. At least one option besides `-v' or `-H' must be given. `-a' `--all' Equivalent to specifying `--file-header', `--program-headers', `--sections', `--symbols', `--relocs', `--dynamic', `--notes' and `--version-info'. `-h' `--file-header' Displays the information contained in the ELF header at the start of the file. `-l' `--program-headers' `--segments' Displays the information contained in the file's segment headers, if it has any. `-S' `--sections' `--section-headers' Displays the information contained in the file's section headers, if it has any. `-g' `--section-groups' Displays the information contained in the file's section groups, if it has any. `-t' `--section-details' Displays the detailed section information. Implies `-S'. `-s' `--symbols' `--syms' Displays the entries in symbol table section of the file, if it has one. `--dyn-syms' Displays the entries in dynamic symbol table section of the file, if it has one. `-e' `--headers' Display all the headers in the file. Equivalent to `-h -l -S'. `-n' `--notes' Displays the contents of the NOTE segments and/or sections, if any. `-r' `--relocs' Displays the contents of the file's relocation section, if it has one. `-u' `--unwind' Displays the contents of the file's unwind section, if it has one. Only the unwind sections for IA64 ELF files, as well as ARM unwind tables (`.ARM.exidx' / `.ARM.extab') are currently supported. `-d' `--dynamic' Displays the contents of the file's dynamic section, if it has one. `-V' `--version-info' Displays the contents of the version sections in the file, it they exist. `-A' `--arch-specific' Displays architecture-specific information in the file, if there is any. `-D' `--use-dynamic' When displaying symbols, this option makes `readelf' use the symbol hash tables in the file's dynamic section, rather than the symbol table sections. `-x ' `--hex-dump=' Displays the contents of the indicated section as a hexadecimal bytes. A number identifies a particular section by index in the section table; any other string identifies all sections with that name in the object file. `-R ' `--relocated-dump=' Displays the contents of the indicated section as a hexadecimal bytes. A number identifies a particular section by index in the section table; any other string identifies all sections with that name in the object file. The contents of the section will be relocated before they are displayed. `-p ' `--string-dump=' Displays the contents of the indicated section as printable strings. A number identifies a particular section by index in the section table; any other string identifies all sections with that name in the object file. `-c' `--archive-index' Displays the file symbol index infomation contained in the header part of binary archives. Performs the same function as the `t' command to `ar', but without using the BFD library. *Note ar::. `-w[lLiaprmfFsoRt]' `--debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges]' Displays the contents of the debug sections in the file, if any are present. If one of the optional letters or words follows the switch then only data found in those specific sections will be dumped. Note that there is no single letter option to display the content of trace sections. Note: the `=decodedline' option will display the interpreted contents of a .debug_line section whereas the `=rawline' option dumps the contents in a raw format. Note: the `=frames-interp' option will display the interpreted contents of a .debug_frame section whereas the `=frames' option dumps the contents in a raw format. `-I' `--histogram' Display a histogram of bucket list lengths when displaying the contents of the symbol tables. `-v' `--version' Display the version number of readelf. `-W' `--wide' Don't break output lines to fit into 80 columns. By default `readelf' breaks section header and segment listing lines for 64-bit ELF files, so that they fit into 80 columns. This option causes `readelf' to print each section header resp. each segment one a single line, which is far more readable on terminals wider than 80 columns. `-H' `--help' Display the command line options understood by `readelf'.  File: binutils.info, Node: elfedit, Next: c++filt, Prev: strip, Up: Top 16 elfedit ********** elfedit [`--input-mach='MACHINE] [`--input-type='TYPE] [`--input-osabi='OSBI] `--output-mach='MACHINE `--output-type='TYPE `--output-osabi='OSBI [`-v'|`--version'] [`-h'|`--help'] ELFFILE... `elfedit' updates the ELF header of ELF files which have the matching ELF machine and file types. The options control how and which fields in the ELF header should be updated. ELFFILE... are the ELF files to be updated. 32-bit and 64-bit ELF files are supported, as are archives containing ELF files. The long and short forms of options, shown here as alternatives, are equivalent. At least one of the `--output-mach', `--output-type' and `--output-osabi' options must be given. `--input-mach=MACHINE' Set the matching input ELF machine type to MACHINE. If `--input-mach' isn't specified, it will match any ELF machine types. The supported ELF machine types are, L1OM and X86-64. `--output-mach=MACHINE' Change the ELF machine type in the ELF header to MACHINE. The supported ELF machine types are the same as `--input-mach'. `--input-type=TYPE' Set the matching input ELF file type to TYPE. If `--input-type' isn't specified, it will match any ELF file types. The supported ELF file types are, REL, EXEC and DYN. `--output-type=TYPE' Change the ELF file type in the ELF header to TYPE. The supported ELF types are the same as `--input-type'. `--input-osabi=OSABI' Set the matching input ELF file OSABI to OSBI. If `--input-osabi' isn't specified, it will match any ELF OSABIs. The supported ELF OSABIs are, NONE, HPUX, NETBSD, LINUX, HURD, SOLARIS, AIX, IRIX, FREEBSD, TRU64, MODESTO, OPENBSD, OPENVMS, NSK, AROS and FENIXOS. `--output-osabi=OSABI' Change the ELF OSABI in the ELF header to TYPE. The supported ELF OSABI are the same as `--input-osabi'. `-v' `--version' Display the version number of `elfedit'. `-h' `--help' Display the command line options understood by `elfedit'.  File: binutils.info, Node: Common Options, Next: Selecting