motify compile link error

motify compile link error
This commit is contained in:
ant 2016-09-18 09:03:25 +08:00
parent 923914edae
commit 03e74a8e50
5418 changed files with 1367914 additions and 206149 deletions

View file

@ -0,0 +1,302 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "ADDR2LINE 1"
.TH ADDR2LINE 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
addr2line \- convert addresses into file names and line numbers.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
addr2line [\fB\-a\fR|\fB\-\-addresses\fR]
[\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
[\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]]
[\fB\-e\fR \fIfilename\fR|\fB\-\-exe=\fR\fIfilename\fR]
[\fB\-f\fR|\fB\-\-functions\fR] [\fB\-s\fR|\fB\-\-basename\fR]
[\fB\-i\fR|\fB\-\-inlines\fR]
[\fB\-p\fR|\fB\-\-pretty\-print\fR]
[\fB\-j\fR|\fB\-\-section=\fR\fIname\fR]
[\fB\-H\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
[addr addr ...]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBaddr2line\fR 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.
.PP
The executable or relocatable object to use is specified with the \fB\-e\fR
option. The default is the file \fIa.out\fR. The section in the relocatable
object to use is specified with the \fB\-j\fR option.
.PP
\&\fBaddr2line\fR has two modes of operation.
.PP
In the first, hexadecimal addresses are specified on the command line,
and \fBaddr2line\fR displays the file name and line number for each
address.
.PP
In the second, \fBaddr2line\fR reads hexadecimal addresses from
standard input, and prints the file name and line number for each
address on standard output. In this mode, \fBaddr2line\fR may be used
in a pipe to convert dynamically chosen addresses.
.PP
The format of the output is \fB\s-1FILENAME:LINENO\s0\fR. The file name and
line number for each input address is printed on separate lines.
.PP
If the \fB\-f\fR option is used, then each \fB\s-1FILENAME:LINENO\s0\fR
line is preceded by \fB\s-1FUNCTIONNAME\s0\fR which is the name of the
function containing the address.
.PP
If the \fB\-i\fR option is used and the code at the given address is
present there because of inlining by the compiler then the
\&\fB{\s-1FUNCTIONNAME\s0} \s-1FILENAME:LINENO\s0\fR information for the inlining
function will be displayed afterwards. This continues recursively
until there is no more inlining to report.
.PP
If the \fB\-a\fR option is used then the output is prefixed by the
input address.
.PP
If the \fB\-p\fR option is used then the output for each input
address is displayed on one, possibly quite long, line. If
\&\fB\-p\fR is not used then the output is broken up into multiple
lines, based on the paragraphs above.
.PP
If the file name or function name can not be determined,
\&\fBaddr2line\fR will print two question marks in their place. If the
line number can not be determined, \fBaddr2line\fR will print 0.
.SH "OPTIONS"
.IX Header "OPTIONS"
The long and short forms of options, shown here as alternatives, are
equivalent.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-addresses\fR" 4
.IX Item "--addresses"
.PD
Display the address before the function name, file and line number
information. The address is printed with a \fB0x\fR prefix to easily
identify it.
.IP "\fB\-b\fR \fIbfdname\fR" 4
.IX Item "-b bfdname"
.PD 0
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
.PD
Specify that the object-code format for the object files is
\&\fIbfdname\fR.
.IP "\fB\-C\fR" 4
.IX Item "-C"
.PD 0
.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
.IX Item "--demangle[=style]"
.PD
Decode (\fIdemangle\fR) 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.
.IP "\fB\-e\fR \fIfilename\fR" 4
.IX Item "-e filename"
.PD 0
.IP "\fB\-\-exe=\fR\fIfilename\fR" 4
.IX Item "--exe=filename"
.PD
Specify the name of the executable for which addresses should be
translated. The default file is \fIa.out\fR.
.IP "\fB\-f\fR" 4
.IX Item "-f"
.PD 0
.IP "\fB\-\-functions\fR" 4
.IX Item "--functions"
.PD
Display function names as well as file and line number information.
.IP "\fB\-s\fR" 4
.IX Item "-s"
.PD 0
.IP "\fB\-\-basenames\fR" 4
.IX Item "--basenames"
.PD
Display only the base of each file name.
.IP "\fB\-i\fR" 4
.IX Item "-i"
.PD 0
.IP "\fB\-\-inlines\fR" 4
.IX Item "--inlines"
.PD
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 \f(CW\*(C`main\*(C'\fR inlines
\&\f(CW\*(C`callee1\*(C'\fR which inlines \f(CW\*(C`callee2\*(C'\fR, and address is from
\&\f(CW\*(C`callee2\*(C'\fR, the source information for \f(CW\*(C`callee1\*(C'\fR and \f(CW\*(C`main\*(C'\fR
will also be printed.
.IP "\fB\-j\fR" 4
.IX Item "-j"
.PD 0
.IP "\fB\-\-section\fR" 4
.IX Item "--section"
.PD
Read offsets relative to the specified section instead of absolute addresses.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-pretty\-print\fR" 4
.IX Item "--pretty-print"
.PD
Make the output more human friendly: each location are printed on one line.
If option \fB\-i\fR is specified, lines for all enclosing scopes are
prefixed with \fB(inlined by)\fR.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,452 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "AR 1"
.TH AR 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
ar \- create, modify, and extract from archives
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
ar [\fB\-\-plugin\fR \fIname\fR] [\fB\-X32_64\fR] [\fB\-\fR]\fIp\fR[\fImod\fR [\fIrelpos\fR] [\fIcount\fR]] [\fB\-\-target\fR \fIbfdname\fR] \fIarchive\fR [\fImember\fR...]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
The \s-1GNU\s0 \fBar\fR program creates, modifies, and extracts from
archives. An \fIarchive\fR is a single file holding a collection of
other files in a structure that makes it possible to retrieve
the original individual files (called \fImembers\fR of the archive).
.PP
The original files' contents, mode (permissions), timestamp, owner, and
group are preserved in the archive, and can be restored on
extraction.
.PP
\&\s-1GNU\s0 \fBar\fR can maintain archives whose members have names of any
length; however, depending on how \fBar\fR is configured on your
system, a limit on member-name length may be imposed for compatibility
with archive formats maintained with other tools. If it exists, the
limit is often 15 characters (typical of formats related to a.out) or 16
characters (typical of formats related to coff).
.PP
\&\fBar\fR is considered a binary utility because archives of this sort
are most often used as \fIlibraries\fR holding commonly needed
subroutines.
.PP
\&\fBar\fR creates an index to the symbols defined in relocatable
object modules in the archive when you specify the modifier \fBs\fR.
Once created, this index is updated in the archive whenever \fBar\fR
makes a change to its contents (save for the \fBq\fR update operation).
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.
.PP
You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index
table. If an archive lacks the table, another form of \fBar\fR called
\&\fBranlib\fR can be used to add just the table.
.PP
\&\s-1GNU\s0 \fBar\fR can optionally create a \fIthin\fR archive,
which contains a symbol index and references to the original copies
of the member files of the archives. Such an archive is useful
for building libraries for use within a local build, where the
relocatable objects are expected to remain available, and copying the
contents of each object would only waste time and space. Thin archives
are also \fIflattened\fR, so that adding one or more archives to a
thin archive will add the elements of the nested archive individually.
The paths to the elements of the archive are stored relative to the
archive itself.
.PP
\&\s-1GNU\s0 \fBar\fR is designed to be compatible with two different
facilities. You can control its activity using command-line options,
like the different varieties of \fBar\fR on Unix systems; or, if you
specify the single command-line option \fB\-M\fR, you can control it
with a script supplied via standard input, like the \s-1MRI\s0 \*(L"librarian\*(R"
program.
.SH "OPTIONS"
.IX Header "OPTIONS"
\&\s-1GNU\s0 \fBar\fR allows you to mix the operation code \fIp\fR and modifier
flags \fImod\fR in any order, within the first command-line argument.
.PP
If you wish, you may begin the first command-line argument with a
dash.
.PP
The \fIp\fR keyletter specifies what operation to execute; it may be
any of the following, but you must specify only one of them:
.IP "\fBd\fR" 4
.IX Item "d"
\&\fIDelete\fR modules from the archive. Specify the names of modules to
be deleted as \fImember\fR...; the archive is untouched if you
specify no files to delete.
.Sp
If you specify the \fBv\fR modifier, \fBar\fR lists each module
as it is deleted.
.IP "\fBm\fR" 4
.IX Item "m"
Use this operation to \fImove\fR members in an archive.
.Sp
The ordering of members in an archive can make a difference in how
programs are linked using the library, if a symbol is defined in more
than one member.
.Sp
If no modifiers are used with \f(CW\*(C`m\*(C'\fR, any members you name in the
\&\fImember\fR arguments are moved to the \fIend\fR of the archive;
you can use the \fBa\fR, \fBb\fR, or \fBi\fR modifiers to move them to a
specified place instead.
.IP "\fBp\fR" 4
.IX Item "p"
\&\fIPrint\fR the specified members of the archive, to the standard
output file. If the \fBv\fR modifier is specified, show the member
name before copying its contents to standard output.
.Sp
If you specify no \fImember\fR arguments, all the files in the archive are
printed.
.IP "\fBq\fR" 4
.IX Item "q"
\&\fIQuick append\fR; Historically, add the files \fImember\fR... to the end of
\&\fIarchive\fR, without checking for replacement.
.Sp
The modifiers \fBa\fR, \fBb\fR, and \fBi\fR do \fInot\fR affect this
operation; new members are always placed at the end of the archive.
.Sp
The modifier \fBv\fR makes \fBar\fR list each file as it is appended.
.Sp
Since the point of this operation is speed, the archive's symbol table
index is not updated, even if it already existed; you can use \fBar s\fR or
\&\fBranlib\fR explicitly to update the symbol table index.
.Sp
However, too many different systems assume quick append rebuilds the
index, so \s-1GNU\s0 \fBar\fR implements \fBq\fR as a synonym for \fBr\fR.
.IP "\fBr\fR" 4
.IX Item "r"
Insert the files \fImember\fR... into \fIarchive\fR (with
\&\fIreplacement\fR). This operation differs from \fBq\fR in that any
previously existing members are deleted if their names match those being
added.
.Sp
If one of the files named in \fImember\fR... does not exist, \fBar\fR
displays an error message, and leaves undisturbed any existing members
of the archive matching that name.
.Sp
By default, new members are added at the end of the file; but you may
use one of the modifiers \fBa\fR, \fBb\fR, or \fBi\fR to request
placement relative to some existing member.
.Sp
The modifier \fBv\fR used with this operation elicits a line of
output for each file inserted, along with one of the letters \fBa\fR or
\&\fBr\fR to indicate whether the file was appended (no old member
deleted) or replaced.
.IP "\fBs\fR" 4
.IX Item "s"
Add an index to the archive, or update it if it already exists. Note
this command is an exception to the rule that there can only be one
command letter, as it is possible to use it as either a command or a
modifier. In either case it does the same thing.
.IP "\fBt\fR" 4
.IX Item "t"
Display a \fItable\fR listing the contents of \fIarchive\fR, or those
of the files listed in \fImember\fR... that are present in the
archive. Normally only the member name is shown; if you also want to
see the modes (permissions), timestamp, owner, group, and size, you can
request that by also specifying the \fBv\fR modifier.
.Sp
If you do not specify a \fImember\fR, all files in the archive
are listed.
.Sp
If there is more than one file with the same name (say, \fBfie\fR) in
an archive (say \fBb.a\fR), \fBar t b.a fie\fR lists only the
first instance; to see them all, you must ask for a complete
listing\-\-\-in our example, \fBar t b.a\fR.
.IP "\fBx\fR" 4
.IX Item "x"
\&\fIExtract\fR members (named \fImember\fR) from the archive. You can
use the \fBv\fR modifier with this operation, to request that
\&\fBar\fR list each name as it extracts it.
.Sp
If you do not specify a \fImember\fR, all files in the archive
are extracted.
.Sp
Files cannot be extracted from a thin archive.
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Displays the list of command line options supported by \fBar\fR
and then exits.
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
Displays the version information of \fBar\fR and then exits.
.PP
A number of modifiers (\fImod\fR) may immediately follow the \fIp\fR
keyletter, to specify variations on an operation's behavior:
.IP "\fBa\fR" 4
.IX Item "a"
Add new files \fIafter\fR an existing member of the
archive. If you use the modifier \fBa\fR, the name of an existing archive
member must be present as the \fIrelpos\fR argument, before the
\&\fIarchive\fR specification.
.IP "\fBb\fR" 4
.IX Item "b"
Add new files \fIbefore\fR an existing member of the
archive. If you use the modifier \fBb\fR, the name of an existing archive
member must be present as the \fIrelpos\fR argument, before the
\&\fIarchive\fR specification. (same as \fBi\fR).
.IP "\fBc\fR" 4
.IX Item "c"
\&\fICreate\fR the archive. The specified \fIarchive\fR is always
created if it did not exist, when you request an update. But a warning is
issued unless you specify in advance that you expect to create it, by
using this modifier.
.IP "\fBD\fR" 4
.IX Item "D"
Operate in \fIdeterministic\fR mode. When adding files and the archive
index use zero for UIDs, GIDs, timestamps, and use consistent file modes
for all files. When this option is used, if \fBar\fR is used with
identical options and identical input files, multiple runs will create
identical output files regardless of the input files' owners, groups,
file modes, or modification times.
.Sp
If \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR, then this mode is on by default.
It can be disabled with the \fBU\fR modifier, below.
.IP "\fBf\fR" 4
.IX Item "f"
Truncate names in the archive. \s-1GNU\s0 \fBar\fR will normally permit file
names of any length. This will cause it to create archives which are
not compatible with the native \fBar\fR program on some systems. If
this is a concern, the \fBf\fR modifier may be used to truncate file
names when putting them in the archive.
.IP "\fBi\fR" 4
.IX Item "i"
Insert new files \fIbefore\fR an existing member of the
archive. If you use the modifier \fBi\fR, the name of an existing archive
member must be present as the \fIrelpos\fR argument, before the
\&\fIarchive\fR specification. (same as \fBb\fR).
.IP "\fBl\fR" 4
.IX Item "l"
This modifier is accepted but not used.
.IP "\fBN\fR" 4
.IX Item "N"
Uses the \fIcount\fR parameter. This is used if there are multiple
entries in the archive with the same name. Extract or delete instance
\&\fIcount\fR of the given name from the archive.
.IP "\fBo\fR" 4
.IX Item "o"
Preserve the \fIoriginal\fR dates of members when extracting them. If
you do not specify this modifier, files extracted from the archive
are stamped with the time of extraction.
.IP "\fBP\fR" 4
.IX Item "P"
Use the full path name when matching names in the archive. \s-1GNU\s0
\&\fBar\fR can not create an archive with a full path name (such archives
are not \s-1POSIX\s0 complaint), but other archive creators can. This option
will cause \s-1GNU\s0 \fBar\fR to match file names using a complete path
name, which can be convenient when extracting a single file from an
archive created by another tool.
.IP "\fBs\fR" 4
.IX Item "s"
Write an object-file index into the archive, or update an existing one,
even if no other change is made to the archive. You may use this modifier
flag either with any operation, or alone. Running \fBar s\fR on an
archive is equivalent to running \fBranlib\fR on it.
.IP "\fBS\fR" 4
.IX Item "S"
Do not generate an archive symbol table. This can speed up building a
large library in several steps. The resulting archive can not be used
with the linker. In order to build a symbol table, you must omit the
\&\fBS\fR modifier on the last execution of \fBar\fR, or you must run
\&\fBranlib\fR on the archive.
.IP "\fBT\fR" 4
.IX Item "T"
Make the specified \fIarchive\fR a \fIthin\fR archive. If it already
exists and is a regular archive, the existing members must be present
in the same directory as \fIarchive\fR.
.IP "\fBu\fR" 4
.IX Item "u"
Normally, \fBar r\fR... inserts all files
listed into the archive. If you would like to insert \fIonly\fR those
of the files you list that are newer than existing members of the same
names, use this modifier. The \fBu\fR modifier is allowed only for the
operation \fBr\fR (replace). In particular, the combination \fBqu\fR is
not allowed, since checking the timestamps would lose any speed
advantage from the operation \fBq\fR.
.IP "\fBU\fR" 4
.IX Item "U"
Do \fInot\fR operate in \fIdeterministic\fR mode. This is the inverse
of the \fBD\fR modifier, above: added files and the archive index will
get their actual \s-1UID\s0, \s-1GID\s0, timestamp, and file mode values.
.Sp
This is the default unless \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR.
.IP "\fBv\fR" 4
.IX Item "v"
This modifier requests the \fIverbose\fR version of an operation. Many
operations display additional information, such as filenames processed,
when the modifier \fBv\fR is appended.
.IP "\fBV\fR" 4
.IX Item "V"
This modifier shows the version number of \fBar\fR.
.PP
\&\fBar\fR ignores an initial option spelt \fB\-X32_64\fR, for
compatibility with \s-1AIX\s0. The behaviour produced by this option is the
default for \s-1GNU\s0 \fBar\fR. \fBar\fR does not support any of the other
\&\fB\-X\fR options; in particular, it does not support \fB\-X32\fR
which is the default for \s-1AIX\s0 \fBar\fR.
.PP
The optional command line switch \fB\-\-plugin\fR \fIname\fR causes
\&\fBar\fR to load the plugin called \fIname\fR which adds support
for more file formats. This option is only available if the toolchain
has been built with plugin support enabled.
.PP
The optional command line switch \fB\-\-target\fR \fIbfdname\fR
specifies that the archive members are in an object code format
different from your system's default format. See
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fInm\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,339 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "C++FILT 1"
.TH C++FILT 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
c++filt \- Demangle C++ and Java symbols.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
c++filt [\fB\-_\fR|\fB\-\-strip\-underscore\fR]
[\fB\-n\fR|\fB\-\-no\-strip\-underscore\fR]
[\fB\-p\fR|\fB\-\-no\-params\fR]
[\fB\-t\fR|\fB\-\-types\fR]
[\fB\-i\fR|\fB\-\-no\-verbose\fR]
[\fB\-s\fR \fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
[\fB\-\-help\fR] [\fB\-\-version\fR] [\fIsymbol\fR...]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
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 \fImangling\fR. The
\&\fBc++filt\fR
[1]
program does the inverse mapping: it decodes (\fIdemangles\fR) low-level
names into user-level names so that they can be read.
.PP
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 \fBc++filt\fR and see the same source file
containing demangled names.
.PP
You can also use \fBc++filt\fR to decipher individual symbols by
passing them on the command line:
.PP
.Vb 1
\& c++filt <symbol>
.Ve
.PP
If no \fIsymbol\fR arguments are given, \fBc++filt\fR 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:
.PP
.Vb 1
\& c++filt \-n _Z1fv
.Ve
.PP
will work and demangle the name to \*(L"f()\*(R" whereas:
.PP
.Vb 1
\& c++filt \-n _Z1fv,
.Ve
.PP
will not work. (Note the extra comma at the end of the mangled
name which makes it invalid). This command however will work:
.PP
.Vb 1
\& echo _Z1fv, | c++filt \-n
.Ve
.PP
and will display \*(L"f(),\*(R", 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:
.PP
.Vb 1
\& .type _Z1fv, @function
.Ve
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-_\fR" 4
.IX Item "-_"
.PD 0
.IP "\fB\-\-strip\-underscore\fR" 4
.IX Item "--strip-underscore"
.PD
On some systems, both the C and \*(C+ compilers put an underscore in front
of every name. For example, the C name \f(CW\*(C`foo\*(C'\fR gets the low-level
name \f(CW\*(C`_foo\*(C'\fR. This option removes the initial underscore. Whether
\&\fBc++filt\fR removes the underscore by default is target dependent.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-\-no\-strip\-underscore\fR" 4
.IX Item "--no-strip-underscore"
.PD
Do not remove the initial underscore.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-no\-params\fR" 4
.IX Item "--no-params"
.PD
When demangling the name of a function, do not display the types of
the function's parameters.
.IP "\fB\-t\fR" 4
.IX Item "-t"
.PD 0
.IP "\fB\-\-types\fR" 4
.IX Item "--types"
.PD
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 \*(L"a\*(R" treated as a mangled type name would be
demangled to \*(L"signed char\*(R".
.IP "\fB\-i\fR" 4
.IX Item "-i"
.PD 0
.IP "\fB\-\-no\-verbose\fR" 4
.IX Item "--no-verbose"
.PD
Do not include implementation details (if any) in the demangled
output.
.IP "\fB\-s\fR \fIformat\fR" 4
.IX Item "-s format"
.PD 0
.IP "\fB\-\-format=\fR\fIformat\fR" 4
.IX Item "--format=format"
.PD
\&\fBc++filt\fR can decode various methods of mangling, used by
different compilers. The argument to this option selects which
method it uses:
.RS 4
.ie n .IP """auto""" 4
.el .IP "\f(CWauto\fR" 4
.IX Item "auto"
Automatic selection based on executable (the default method)
.ie n .IP """gnu""" 4
.el .IP "\f(CWgnu\fR" 4
.IX Item "gnu"
the one used by the \s-1GNU\s0 \*(C+ compiler (g++)
.ie n .IP """lucid""" 4
.el .IP "\f(CWlucid\fR" 4
.IX Item "lucid"
the one used by the Lucid compiler (lcc)
.ie n .IP """arm""" 4
.el .IP "\f(CWarm\fR" 4
.IX Item "arm"
the one specified by the \*(C+ Annotated Reference Manual
.ie n .IP """hp""" 4
.el .IP "\f(CWhp\fR" 4
.IX Item "hp"
the one used by the \s-1HP\s0 compiler (aCC)
.ie n .IP """edg""" 4
.el .IP "\f(CWedg\fR" 4
.IX Item "edg"
the one used by the \s-1EDG\s0 compiler
.ie n .IP """gnu\-v3""" 4
.el .IP "\f(CWgnu\-v3\fR" 4
.IX Item "gnu-v3"
the one used by the \s-1GNU\s0 \*(C+ compiler (g++) with the V3 \s-1ABI\s0.
.ie n .IP """java""" 4
.el .IP "\f(CWjava\fR" 4
.IX Item "java"
the one used by the \s-1GNU\s0 Java compiler (gcj)
.ie n .IP """gnat""" 4
.el .IP "\f(CWgnat\fR" 4
.IX Item "gnat"
the one used by the \s-1GNU\s0 Ada compiler (\s-1GNAT\s0).
.RE
.RS 4
.RE
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Print a summary of the options to \fBc++filt\fR and exit.
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
Print the version number of \fBc++filt\fR and exit.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "FOOTNOTES"
.IX Header "FOOTNOTES"
.IP "1." 4
MS-DOS does not allow \f(CW\*(C`+\*(C'\fR characters in file names, so on
MS-DOS this program is named \fB\s-1CXXFILT\s0\fR.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,532 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "DLLTOOL 1"
.TH DLLTOOL 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
dlltool \- Create files needed to build and use DLLs.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
dlltool [\fB\-d\fR|\fB\-\-input\-def\fR \fIdef-file-name\fR]
[\fB\-b\fR|\fB\-\-base\-file\fR \fIbase-file-name\fR]
[\fB\-e\fR|\fB\-\-output\-exp\fR \fIexports-file-name\fR]
[\fB\-z\fR|\fB\-\-output\-def\fR \fIdef-file-name\fR]
[\fB\-l\fR|\fB\-\-output\-lib\fR \fIlibrary-file-name\fR]
[\fB\-y\fR|\fB\-\-output\-delaylib\fR \fIlibrary-file-name\fR]
[\fB\-\-export\-all\-symbols\fR] [\fB\-\-no\-export\-all\-symbols\fR]
[\fB\-\-exclude\-symbols\fR \fIlist\fR]
[\fB\-\-no\-default\-excludes\fR]
[\fB\-S\fR|\fB\-\-as\fR \fIpath-to-assembler\fR] [\fB\-f\fR|\fB\-\-as\-flags\fR \fIoptions\fR]
[\fB\-D\fR|\fB\-\-dllname\fR \fIname\fR] [\fB\-m\fR|\fB\-\-machine\fR \fImachine\fR]
[\fB\-a\fR|\fB\-\-add\-indirect\fR]
[\fB\-U\fR|\fB\-\-add\-underscore\fR] [\fB\-\-add\-stdcall\-underscore\fR]
[\fB\-k\fR|\fB\-\-kill\-at\fR] [\fB\-A\fR|\fB\-\-add\-stdcall\-alias\fR]
[\fB\-p\fR|\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR]
[\fB\-x\fR|\fB\-\-no\-idata4\fR] [\fB\-c\fR|\fB\-\-no\-idata5\fR]
[\fB\-\-use\-nul\-prefixed\-import\-tables\fR]
[\fB\-I\fR|\fB\-\-identify\fR \fIlibrary-file-name\fR] [\fB\-\-identify\-strict\fR]
[\fB\-i\fR|\fB\-\-interwork\fR]
[\fB\-n\fR|\fB\-\-nodelete\fR] [\fB\-t\fR|\fB\-\-temp\-prefix\fR \fIprefix\fR]
[\fB\-v\fR|\fB\-\-verbose\fR]
[\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
[\fB\-\-no\-leading\-underscore\fR] [\fB\-\-leading\-underscore\fR]
[object\-file ...]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBdlltool\fR reads its inputs, which can come from the \fB\-d\fR and
\&\fB\-b\fR options as well as object files specified on the command
line. It then processes these inputs and if the \fB\-e\fR option has
been specified it creates a exports file. If the \fB\-l\fR option
has been specified it creates a library file and if the \fB\-z\fR option
has been specified it creates a def file. Any or all of the \fB\-e\fR,
\&\fB\-l\fR and \fB\-z\fR options can be present in one invocation of
dlltool.
.PP
When creating a \s-1DLL\s0, along with the source for the \s-1DLL\s0, it is necessary
to have three other files. \fBdlltool\fR can help with the creation of
these files.
.PP
The first file is a \fI.def\fR file which specifies which functions are
exported from the \s-1DLL\s0, which functions the \s-1DLL\s0 imports, and so on. This
is a text file and can be created by hand, or \fBdlltool\fR can be used
to create it using the \fB\-z\fR option. In this case \fBdlltool\fR
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 \fI.def\fR file it creates.
.PP
In order to mark a function as being exported from a \s-1DLL\s0, it needs to
have an \fB\-export:<name_of_function>\fR entry in the \fB.drectve\fR
section of the object file. This can be done in C by using the
\&\fIasm()\fR operator:
.PP
.Vb 2
\& asm (".section .drectve");
\& asm (".ascii \e"\-export:my_func\e"");
\&
\& int my_func (void) { ... }
.Ve
.PP
The second file needed for \s-1DLL\s0 creation is an exports file. This file
is linked with the object files that make up the body of the \s-1DLL\s0 and it
handles the interface between the \s-1DLL\s0 and the outside world. This is a
binary file and it can be created by giving the \fB\-e\fR option to
\&\fBdlltool\fR when it is creating or reading in a \fI.def\fR file.
.PP
The third file needed for \s-1DLL\s0 creation is the library file that programs
will link with in order to access the functions in the \s-1DLL\s0 (an `import
library'). This file can be created by giving the \fB\-l\fR option to
dlltool when it is creating or reading in a \fI.def\fR file.
.PP
If the \fB\-y\fR 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 _\|\fI_delayLoadHelper2()\fR,
which in turn will import LoadLibraryA and GetProcAddress from kernel32.
.PP
\&\fBdlltool\fR builds the library file by hand, but it builds the
exports file by creating temporary files containing assembler statements
and then assembling these. The \fB\-S\fR command line option can be
used to specify the path to the assembler that dlltool will use,
and the \fB\-f\fR option can be used to pass specific flags to that
assembler. The \fB\-n\fR can be used to prevent dlltool from deleting
these temporary assembler files when it is done, and if \fB\-n\fR is
specified twice then this will prevent dlltool from deleting the
temporary object files it used to build the library.
.PP
Here is an example of creating a \s-1DLL\s0 from a source file \fBdll.c\fR and
also creating a program (from an object file called \fBprogram.o\fR)
that uses that \s-1DLL:\s0
.PP
.Vb 4
\& 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
.Ve
.PP
\&\fBdlltool\fR may also be used to query an existing import library
to determine the name of the \s-1DLL\s0 to which it is associated. See the
description of the \fB\-I\fR or \fB\-\-identify\fR option.
.SH "OPTIONS"
.IX Header "OPTIONS"
The command line options have the following meanings:
.IP "\fB\-d\fR \fIfilename\fR" 4
.IX Item "-d filename"
.PD 0
.IP "\fB\-\-input\-def\fR \fIfilename\fR" 4
.IX Item "--input-def filename"
.PD
Specifies the name of a \fI.def\fR file to be read in and processed.
.IP "\fB\-b\fR \fIfilename\fR" 4
.IX Item "-b filename"
.PD 0
.IP "\fB\-\-base\-file\fR \fIfilename\fR" 4
.IX Item "--base-file filename"
.PD
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.
.IP "\fB\-e\fR \fIfilename\fR" 4
.IX Item "-e filename"
.PD 0
.IP "\fB\-\-output\-exp\fR \fIfilename\fR" 4
.IX Item "--output-exp filename"
.PD
Specifies the name of the export file to be created by dlltool.
.IP "\fB\-z\fR \fIfilename\fR" 4
.IX Item "-z filename"
.PD 0
.IP "\fB\-\-output\-def\fR \fIfilename\fR" 4
.IX Item "--output-def filename"
.PD
Specifies the name of the \fI.def\fR file to be created by dlltool.
.IP "\fB\-l\fR \fIfilename\fR" 4
.IX Item "-l filename"
.PD 0
.IP "\fB\-\-output\-lib\fR \fIfilename\fR" 4
.IX Item "--output-lib filename"
.PD
Specifies the name of the library file to be created by dlltool.
.IP "\fB\-y\fR \fIfilename\fR" 4
.IX Item "-y filename"
.PD 0
.IP "\fB\-\-output\-delaylib\fR \fIfilename\fR" 4
.IX Item "--output-delaylib filename"
.PD
Specifies the name of the delay-import library file to be created by dlltool.
.IP "\fB\-\-export\-all\-symbols\fR" 4
.IX Item "--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 \fB\-\-no\-default\-excludes\fR
option. You may add to the list of symbols to not export by using the
\&\fB\-\-exclude\-symbols\fR option.
.IP "\fB\-\-no\-export\-all\-symbols\fR" 4
.IX Item "--no-export-all-symbols"
Only export symbols explicitly listed in an input \fI.def\fR file or in
\&\fB.drectve\fR sections in the input object files. This is the default
behaviour. The \fB.drectve\fR sections are created by \fBdllexport\fR
attributes in the source code.
.IP "\fB\-\-exclude\-symbols\fR \fIlist\fR" 4
.IX Item "--exclude-symbols list"
Do not export the symbols in \fIlist\fR. 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
\&\fB\-\-export\-all\-symbols\fR is used.
.IP "\fB\-\-no\-default\-excludes\fR" 4
.IX Item "--no-default-excludes"
When \fB\-\-export\-all\-symbols\fR is used, it will by default avoid
exporting certain special symbols. The current list of symbols to avoid
exporting is \fBDllMain@12\fR, \fBDllEntryPoint@0\fR,
\&\fBimpure_ptr\fR. You may use the \fB\-\-no\-default\-excludes\fR option
to go ahead and export these special symbols. This is only meaningful
when \fB\-\-export\-all\-symbols\fR is used.
.IP "\fB\-S\fR \fIpath\fR" 4
.IX Item "-S path"
.PD 0
.IP "\fB\-\-as\fR \fIpath\fR" 4
.IX Item "--as path"
.PD
Specifies the path, including the filename, of the assembler to be used
to create the exports file.
.IP "\fB\-f\fR \fIoptions\fR" 4
.IX Item "-f options"
.PD 0
.IP "\fB\-\-as\-flags\fR \fIoptions\fR" 4
.IX Item "--as-flags options"
.PD
Specifies any specific command line options to be passed to the
assembler when building the exports file. This option will work even if
the \fB\-S\fR 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.
.IP "\fB\-D\fR \fIname\fR" 4
.IX Item "-D name"
.PD 0
.IP "\fB\-\-dll\-name\fR \fIname\fR" 4
.IX Item "--dll-name name"
.PD
Specifies the name to be stored in the \fI.def\fR file as the name of
the \s-1DLL\s0 when the \fB\-e\fR option is used. If this option is not
present, then the filename given to the \fB\-e\fR option will be
used as the name of the \s-1DLL\s0.
.IP "\fB\-m\fR \fImachine\fR" 4
.IX Item "-m machine"
.PD 0
.IP "\fB\-machine\fR \fImachine\fR" 4
.IX Item "-machine machine"
.PD
Specifies the type of machine for which the library file should be
built. \fBdlltool\fR 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 \s-1ARM\s0 processor, when the
contents of the \s-1DLL\s0 are actually encode using Thumb instructions.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-add\-indirect\fR" 4
.IX Item "--add-indirect"
.PD
Specifies that when \fBdlltool\fR 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!
.IP "\fB\-U\fR" 4
.IX Item "-U"
.PD 0
.IP "\fB\-\-add\-underscore\fR" 4
.IX Item "--add-underscore"
.PD
Specifies that when \fBdlltool\fR is creating the exports file it
should prepend an underscore to the names of \fIall\fR exported symbols.
.IP "\fB\-\-no\-leading\-underscore\fR" 4
.IX Item "--no-leading-underscore"
.PD 0
.IP "\fB\-\-leading\-underscore\fR" 4
.IX Item "--leading-underscore"
.PD
Specifies whether standard symbol should be forced to be prefixed, or
not.
.IP "\fB\-\-add\-stdcall\-underscore\fR" 4
.IX Item "--add-stdcall-underscore"
Specifies that when \fBdlltool\fR is creating the exports file it
should prepend an underscore to the names of exported \fIstdcall\fR
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.
.IP "\fB\-k\fR" 4
.IX Item "-k"
.PD 0
.IP "\fB\-\-kill\-at\fR" 4
.IX Item "--kill-at"
.PD
Specifies that when \fBdlltool\fR is creating the exports file it
should not append the string \fB@ <number>\fR. These numbers are
called ordinal numbers and they represent another way of accessing the
function in a \s-1DLL\s0, other than by name.
.IP "\fB\-A\fR" 4
.IX Item "-A"
.PD 0
.IP "\fB\-\-add\-stdcall\-alias\fR" 4
.IX Item "--add-stdcall-alias"
.PD
Specifies that when \fBdlltool\fR is creating the exports file it
should add aliases for stdcall symbols without \fB@ <number>\fR
in addition to the symbols with \fB@ <number>\fR.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR" 4
.IX Item "--ext-prefix-alias prefix"
.PD
Causes \fBdlltool\fR to create external aliases for all \s-1DLL\s0
imports with the specified prefix. The aliases are created for both
external and import symbols with no leading underscore.
.IP "\fB\-x\fR" 4
.IX Item "-x"
.PD 0
.IP "\fB\-\-no\-idata4\fR" 4
.IX Item "--no-idata4"
.PD
Specifies that when \fBdlltool\fR is creating the exports and library
files it should omit the \f(CW\*(C`.idata4\*(C'\fR section. This is for compatibility
with certain operating systems.
.IP "\fB\-\-use\-nul\-prefixed\-import\-tables\fR" 4
.IX Item "--use-nul-prefixed-import-tables"
Specifies that when \fBdlltool\fR is creating the exports and library
files it should prefix the \f(CW\*(C`.idata4\*(C'\fR and \f(CW\*(C`.idata5\*(C'\fR by zero an
element. This emulates old gnu import library generation of
\&\f(CW\*(C`dlltool\*(C'\fR. By default this option is turned off.
.IP "\fB\-c\fR" 4
.IX Item "-c"
.PD 0
.IP "\fB\-\-no\-idata5\fR" 4
.IX Item "--no-idata5"
.PD
Specifies that when \fBdlltool\fR is creating the exports and library
files it should omit the \f(CW\*(C`.idata5\*(C'\fR section. This is for compatibility
with certain operating systems.
.IP "\fB\-I\fR \fIfilename\fR" 4
.IX Item "-I filename"
.PD 0
.IP "\fB\-\-identify\fR \fIfilename\fR" 4
.IX Item "--identify filename"
.PD
Specifies that \fBdlltool\fR should inspect the import library
indicated by \fIfilename\fR and report, on \f(CW\*(C`stdout\*(C'\fR, the name(s)
of the associated \s-1DLL\s0(s). This can be performed in addition to any
other operations indicated by the other options and arguments.
\&\fBdlltool\fR fails if the import library does not exist or is not
actually an import library. See also \fB\-\-identify\-strict\fR.
.IP "\fB\-\-identify\-strict\fR" 4
.IX Item "--identify-strict"
Modifies the behavior of the \fB\-\-identify\fR option, such
that an error is reported if \fIfilename\fR is associated with
more than one \s-1DLL\s0.
.IP "\fB\-i\fR" 4
.IX Item "-i"
.PD 0
.IP "\fB\-\-interwork\fR" 4
.IX Item "--interwork"
.PD
Specifies that \fBdlltool\fR should mark the objects in the library
file and exports file that it produces as supporting interworking
between \s-1ARM\s0 and Thumb code.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-\-nodelete\fR" 4
.IX Item "--nodelete"
.PD
Makes \fBdlltool\fR 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.
.IP "\fB\-t\fR \fIprefix\fR" 4
.IX Item "-t prefix"
.PD 0
.IP "\fB\-\-temp\-prefix\fR \fIprefix\fR" 4
.IX Item "--temp-prefix prefix"
.PD
Makes \fBdlltool\fR use \fIprefix\fR when constructing the names of
temporary assembler and object files. By default, the temp file prefix
is generated from the pid.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-verbose\fR" 4
.IX Item "--verbose"
.PD
Make dlltool describe what it is doing.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Displays a list of command line options and then exits.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Displays dlltool's version number and then exits.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
The Info pages for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,236 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "ELFEDIT 1"
.TH ELFEDIT 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
elfedit \- Update the ELF header of ELF files.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
elfedit [\fB\-\-input\-mach=\fR\fImachine\fR]
[\fB\-\-input\-type=\fR\fItype\fR]
[\fB\-\-input\-osabi=\fR\fIosabi\fR]
\fB\-\-output\-mach=\fR\fImachine\fR
\fB\-\-output\-type=\fR\fItype\fR
\fB\-\-output\-osabi=\fR\fIosabi\fR
[\fB\-v\fR|\fB\-\-version\fR]
[\fB\-h\fR|\fB\-\-help\fR]
\fIelffile\fR...
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBelfedit\fR updates the \s-1ELF\s0 header of \s-1ELF\s0 files which have
the matching \s-1ELF\s0 machine and file types. The options control how and
which fields in the \s-1ELF\s0 header should be updated.
.PP
\&\fIelffile\fR... are the \s-1ELF\s0 files to be updated. 32\-bit and
64\-bit \s-1ELF\s0 files are supported, as are archives containing \s-1ELF\s0 files.
.SH "OPTIONS"
.IX Header "OPTIONS"
The long and short forms of options, shown here as alternatives, are
equivalent. At least one of the \fB\-\-output\-mach\fR,
\&\fB\-\-output\-type\fR and \fB\-\-output\-osabi\fR options must be given.
.IP "\fB\-\-input\-mach=\fR\fImachine\fR" 4
.IX Item "--input-mach=machine"
Set the matching input \s-1ELF\s0 machine type to \fImachine\fR. If
\&\fB\-\-input\-mach\fR isn't specified, it will match any \s-1ELF\s0
machine types.
.Sp
The supported \s-1ELF\s0 machine types are, \fIL1OM\fR, \fIK1OM\fR and
\&\fIx86\-64\fR.
.IP "\fB\-\-output\-mach=\fR\fImachine\fR" 4
.IX Item "--output-mach=machine"
Change the \s-1ELF\s0 machine type in the \s-1ELF\s0 header to \fImachine\fR. The
supported \s-1ELF\s0 machine types are the same as \fB\-\-input\-mach\fR.
.IP "\fB\-\-input\-type=\fR\fItype\fR" 4
.IX Item "--input-type=type"
Set the matching input \s-1ELF\s0 file type to \fItype\fR. If
\&\fB\-\-input\-type\fR isn't specified, it will match any \s-1ELF\s0 file types.
.Sp
The supported \s-1ELF\s0 file types are, \fIrel\fR, \fIexec\fR and \fIdyn\fR.
.IP "\fB\-\-output\-type=\fR\fItype\fR" 4
.IX Item "--output-type=type"
Change the \s-1ELF\s0 file type in the \s-1ELF\s0 header to \fItype\fR. The
supported \s-1ELF\s0 types are the same as \fB\-\-input\-type\fR.
.IP "\fB\-\-input\-osabi=\fR\fIosabi\fR" 4
.IX Item "--input-osabi=osabi"
Set the matching input \s-1ELF\s0 file \s-1OSABI\s0 to \fIosabi\fR. If
\&\fB\-\-input\-osabi\fR isn't specified, it will match any \s-1ELF\s0 OSABIs.
.Sp
The supported \s-1ELF\s0 OSABIs are, \fInone\fR, \fI\s-1HPUX\s0\fR, \fINetBSD\fR,
\&\fI\s-1GNU\s0\fR, \fILinux\fR (alias for \fI\s-1GNU\s0\fR),
\&\fISolaris\fR, \fI\s-1AIX\s0\fR, \fIIrix\fR,
\&\fIFreeBSD\fR, \fI\s-1TRU64\s0\fR, \fIModesto\fR, \fIOpenBSD\fR, \fIOpenVMS\fR,
\&\fI\s-1NSK\s0\fR, \fI\s-1AROS\s0\fR and \fIFenixOS\fR.
.IP "\fB\-\-output\-osabi=\fR\fIosabi\fR" 4
.IX Item "--output-osabi=osabi"
Change the \s-1ELF\s0 \s-1OSABI\s0 in the \s-1ELF\s0 header to \fIosabi\fR. The
supported \s-1ELF\s0 \s-1OSABI\s0 are the same as \fB\-\-input\-osabi\fR.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Display the version number of \fBelfedit\fR.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Display the command line options understood by \fBelfedit\fR.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,680 @@
.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "GCOV 1"
.TH GCOV 1 "2014-02-28" "gcc-4.8.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
gcov \- coverage testing tool
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
gcov [\fB\-v\fR|\fB\-\-version\fR] [\fB\-h\fR|\fB\-\-help\fR]
[\fB\-a\fR|\fB\-\-all\-blocks\fR]
[\fB\-b\fR|\fB\-\-branch\-probabilities\fR]
[\fB\-c\fR|\fB\-\-branch\-counts\fR]
[\fB\-u\fR|\fB\-\-unconditional\-branches\fR]
[\fB\-n\fR|\fB\-\-no\-output\fR]
[\fB\-l\fR|\fB\-\-long\-file\-names\fR]
[\fB\-p\fR|\fB\-\-preserve\-paths\fR]
[\fB\-r\fR|\fB\-\-relative\-only\fR]
[\fB\-f\fR|\fB\-\-function\-summaries\fR]
[\fB\-o\fR|\fB\-\-object\-directory\fR \fIdirectory|file\fR]
[\fB\-s\fR|\fB\-\-source\-prefix\fR \fIdirectory\fR]
[\fB\-d\fR|\fB\-\-display\-progress\fR]
\fIfiles\fR
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBgcov\fR is a test coverage program. Use it in concert with \s-1GCC\s0
to analyze your programs to help create more efficient, faster running
code and to discover untested parts of your program. You can use
\&\fBgcov\fR as a profiling tool to help discover where your
optimization efforts will best affect your code. You can also use
\&\fBgcov\fR along with the other profiling tool, \fBgprof\fR, to
assess which parts of your code use the greatest amount of computing
time.
.PP
Profiling tools help you analyze your code's performance. Using a
profiler such as \fBgcov\fR or \fBgprof\fR, you can find out some
basic performance statistics, such as:
.IP "\(bu" 4
how often each line of code executes
.IP "\(bu" 4
what lines of code are actually executed
.IP "\(bu" 4
how much computing time each section of code uses
.PP
Once you know these things about how your code works when compiled, you
can look at each module to see which modules should be optimized.
\&\fBgcov\fR helps you determine where to work on optimization.
.PP
Software developers also use coverage testing in concert with
testsuites, to make sure software is actually good enough for a release.
Testsuites can verify that a program works as expected; a coverage
program tests to see how much of the program is exercised by the
testsuite. Developers can then determine what kinds of test cases need
to be added to the testsuites to create both better testing and a better
final product.
.PP
You should compile your code without optimization if you plan to use
\&\fBgcov\fR because the optimization, by combining some lines of code
into one function, may not give you as much information as you need to
look for `hot spots' where the code is using a great deal of computer
time. Likewise, because \fBgcov\fR accumulates statistics by line (at
the lowest resolution), it works best with a programming style that
places only one statement on each line. If you use complicated macros
that expand to loops or to other control structures, the statistics are
less helpful\-\-\-they only report on the line where the macro call
appears. If your complex macros behave like functions, you can replace
them with inline functions to solve this problem.
.PP
\&\fBgcov\fR creates a logfile called \fI\fIsourcefile\fI.gcov\fR which
indicates how many times each line of a source file \fI\fIsourcefile\fI.c\fR
has executed. You can use these logfiles along with \fBgprof\fR to aid
in fine-tuning the performance of your programs. \fBgprof\fR gives
timing information you can use along with the information you get from
\&\fBgcov\fR.
.PP
\&\fBgcov\fR works only on code compiled with \s-1GCC\s0. It is not
compatible with any other profiling or test coverage mechanism.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Display help about using \fBgcov\fR (on the standard output), and
exit without doing any further processing.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Display the \fBgcov\fR version number (on the standard output),
and exit without doing any further processing.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-all\-blocks\fR" 4
.IX Item "--all-blocks"
.PD
Write individual execution counts for every basic block. Normally gcov
outputs execution counts only for the main blocks of a line. With this
option you can determine if blocks within a single line are not being
executed.
.IP "\fB\-b\fR" 4
.IX Item "-b"
.PD 0
.IP "\fB\-\-branch\-probabilities\fR" 4
.IX Item "--branch-probabilities"
.PD
Write branch frequencies to the output file, and write branch summary
info to the standard output. This option allows you to see how often
each branch in your program was taken. Unconditional branches will not
be shown, unless the \fB\-u\fR option is given.
.IP "\fB\-c\fR" 4
.IX Item "-c"
.PD 0
.IP "\fB\-\-branch\-counts\fR" 4
.IX Item "--branch-counts"
.PD
Write branch frequencies as the number of branches taken, rather than
the percentage of branches taken.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-\-no\-output\fR" 4
.IX Item "--no-output"
.PD
Do not create the \fBgcov\fR output file.
.IP "\fB\-l\fR" 4
.IX Item "-l"
.PD 0
.IP "\fB\-\-long\-file\-names\fR" 4
.IX Item "--long-file-names"
.PD
Create long file names for included source files. For example, if the
header file \fIx.h\fR contains code, and was included in the file
\&\fIa.c\fR, then running \fBgcov\fR on the file \fIa.c\fR will
produce an output file called \fIa.c##x.h.gcov\fR instead of
\&\fIx.h.gcov\fR. This can be useful if \fIx.h\fR is included in
multiple source files and you want to see the individual
contributions. If you use the \fB\-p\fR option, both the including
and included file names will be complete path names.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-preserve\-paths\fR" 4
.IX Item "--preserve-paths"
.PD
Preserve complete path information in the names of generated
\&\fI.gcov\fR files. Without this option, just the filename component is
used. With this option, all directories are used, with \fB/\fR characters
translated to \fB#\fR characters, \fI.\fR directory components
removed and unremoveable \fI..\fR
components renamed to \fB^\fR. This is useful if sourcefiles are in several
different directories.
.IP "\fB\-r\fR" 4
.IX Item "-r"
.PD 0
.IP "\fB\-\-relative\-only\fR" 4
.IX Item "--relative-only"
.PD
Only output information about source files with a relative pathname
(after source prefix elision). Absolute paths are usually system
header files and coverage of any inline functions therein is normally
uninteresting.
.IP "\fB\-f\fR" 4
.IX Item "-f"
.PD 0
.IP "\fB\-\-function\-summaries\fR" 4
.IX Item "--function-summaries"
.PD
Output summaries for each function in addition to the file level summary.
.IP "\fB\-o\fR \fIdirectory|file\fR" 4
.IX Item "-o directory|file"
.PD 0
.IP "\fB\-\-object\-directory\fR \fIdirectory\fR" 4
.IX Item "--object-directory directory"
.IP "\fB\-\-object\-file\fR \fIfile\fR" 4
.IX Item "--object-file file"
.PD
Specify either the directory containing the gcov data files, or the
object path name. The \fI.gcno\fR, and
\&\fI.gcda\fR data files are searched for using this option. If a directory
is specified, the data files are in that directory and named after the
input file name, without its extension. If a file is specified here,
the data files are named after that file, without its extension.
.IP "\fB\-s\fR \fIdirectory\fR" 4
.IX Item "-s directory"
.PD 0
.IP "\fB\-\-source\-prefix\fR \fIdirectory\fR" 4
.IX Item "--source-prefix directory"
.PD
A prefix for source file names to remove when generating the output
coverage files. This option is useful when building in a separate
directory, and the pathname to the source directory is not wanted when
determining the output file names. Note that this prefix detection is
applied before determining whether the source file is absolute.
.IP "\fB\-u\fR" 4
.IX Item "-u"
.PD 0
.IP "\fB\-\-unconditional\-branches\fR" 4
.IX Item "--unconditional-branches"
.PD
When branch probabilities are given, include those of unconditional branches.
Unconditional branches are normally not interesting.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-\-display\-progress\fR" 4
.IX Item "--display-progress"
.PD
Display the progress on the standard output.
.PP
\&\fBgcov\fR should be run with the current directory the same as that
when you invoked the compiler. Otherwise it will not be able to locate
the source files. \fBgcov\fR produces files called
\&\fI\fImangledname\fI.gcov\fR in the current directory. These contain
the coverage information of the source file they correspond to.
One \fI.gcov\fR file is produced for each source (or header) file
containing code,
which was compiled to produce the data files. The \fImangledname\fR part
of the output file name is usually simply the source file name, but can
be something more complicated if the \fB\-l\fR or \fB\-p\fR options are
given. Refer to those options for details.
.PP
If you invoke \fBgcov\fR with multiple input files, the
contributions from each input file are summed. Typically you would
invoke it with the same list of files as the final link of your executable.
.PP
The \fI.gcov\fR files contain the \fB:\fR separated fields along with
program source code. The format is
.PP
.Vb 1
\& <execution_count>:<line_number>:<source line text>
.Ve
.PP
Additional block information may succeed each line, when requested by
command line option. The \fIexecution_count\fR is \fB\-\fR for lines
containing no code. Unexecuted lines are marked \fB#####\fR or
\&\fB====\fR, depending on whether they are reachable by
non-exceptional paths or only exceptional paths such as \*(C+ exception
handlers, respectively.
.PP
Some lines of information at the start have \fIline_number\fR of zero.
These preamble lines are of the form
.PP
.Vb 1
\& \-:0:<tag>:<value>
.Ve
.PP
The ordering and number of these preamble lines will be augmented as
\&\fBgcov\fR development progresses \-\-\- do not rely on them remaining
unchanged. Use \fItag\fR to locate a particular preamble line.
.PP
The additional block information is of the form
.PP
.Vb 1
\& <tag> <information>
.Ve
.PP
The \fIinformation\fR is human readable, but designed to be simple
enough for machine parsing too.
.PP
When printing percentages, 0% and 100% are only printed when the values
are \fIexactly\fR 0% and 100% respectively. Other values which would
conventionally be rounded to 0% or 100% are instead printed as the
nearest non-boundary value.
.PP
When using \fBgcov\fR, you must first compile your program with two
special \s-1GCC\s0 options: \fB\-fprofile\-arcs \-ftest\-coverage\fR.
This tells the compiler to generate additional information needed by
gcov (basically a flow graph of the program) and also includes
additional code in the object files for generating the extra profiling
information needed by gcov. These additional files are placed in the
directory where the object file is located.
.PP
Running the program will cause profile output to be generated. For each
source file compiled with \fB\-fprofile\-arcs\fR, an accompanying
\&\fI.gcda\fR file will be placed in the object file directory.
.PP
Running \fBgcov\fR with your program's source file names as arguments
will now produce a listing of the code along with frequency of execution
for each line. For example, if your program is called \fItmp.c\fR, this
is what you see when you use the basic \fBgcov\fR facility:
.PP
.Vb 5
\& $ gcc \-fprofile\-arcs \-ftest\-coverage tmp.c
\& $ a.out
\& $ gcov tmp.c
\& 90.00% of 10 source lines executed in file tmp.c
\& Creating tmp.c.gcov.
.Ve
.PP
The file \fItmp.c.gcov\fR contains output from \fBgcov\fR.
Here is a sample:
.PP
.Vb 10
\& \-: 0:Source:tmp.c
\& \-: 0:Graph:tmp.gcno
\& \-: 0:Data:tmp.gcda
\& \-: 0:Runs:1
\& \-: 0:Programs:1
\& \-: 1:#include <stdio.h>
\& \-: 2:
\& \-: 3:int main (void)
\& 1: 4:{
\& 1: 5: int i, total;
\& \-: 6:
\& 1: 7: total = 0;
\& \-: 8:
\& 11: 9: for (i = 0; i < 10; i++)
\& 10: 10: total += i;
\& \-: 11:
\& 1: 12: if (total != 45)
\& #####: 13: printf ("Failure\en");
\& \-: 14: else
\& 1: 15: printf ("Success\en");
\& 1: 16: return 0;
\& \-: 17:}
.Ve
.PP
When you use the \fB\-a\fR option, you will get individual block
counts, and the output looks like this:
.PP
.Vb 10
\& \-: 0:Source:tmp.c
\& \-: 0:Graph:tmp.gcno
\& \-: 0:Data:tmp.gcda
\& \-: 0:Runs:1
\& \-: 0:Programs:1
\& \-: 1:#include <stdio.h>
\& \-: 2:
\& \-: 3:int main (void)
\& 1: 4:{
\& 1: 4\-block 0
\& 1: 5: int i, total;
\& \-: 6:
\& 1: 7: total = 0;
\& \-: 8:
\& 11: 9: for (i = 0; i < 10; i++)
\& 11: 9\-block 0
\& 10: 10: total += i;
\& 10: 10\-block 0
\& \-: 11:
\& 1: 12: if (total != 45)
\& 1: 12\-block 0
\& #####: 13: printf ("Failure\en");
\& $$$$$: 13\-block 0
\& \-: 14: else
\& 1: 15: printf ("Success\en");
\& 1: 15\-block 0
\& 1: 16: return 0;
\& 1: 16\-block 0
\& \-: 17:}
.Ve
.PP
In this mode, each basic block is only shown on one line \*(-- the last
line of the block. A multi-line block will only contribute to the
execution count of that last line, and other lines will not be shown
to contain code, unless previous blocks end on those lines.
The total execution count of a line is shown and subsequent lines show
the execution counts for individual blocks that end on that line. After each
block, the branch and call counts of the block will be shown, if the
\&\fB\-b\fR option is given.
.PP
Because of the way \s-1GCC\s0 instruments calls, a call count can be shown
after a line with no individual blocks.
As you can see, line 13 contains a basic block that was not executed.
.PP
When you use the \fB\-b\fR option, your output looks like this:
.PP
.Vb 6
\& $ gcov \-b tmp.c
\& 90.00% of 10 source lines executed in file tmp.c
\& 80.00% of 5 branches executed in file tmp.c
\& 80.00% of 5 branches taken at least once in file tmp.c
\& 50.00% of 2 calls executed in file tmp.c
\& Creating tmp.c.gcov.
.Ve
.PP
Here is a sample of a resulting \fItmp.c.gcov\fR file:
.PP
.Vb 10
\& \-: 0:Source:tmp.c
\& \-: 0:Graph:tmp.gcno
\& \-: 0:Data:tmp.gcda
\& \-: 0:Runs:1
\& \-: 0:Programs:1
\& \-: 1:#include <stdio.h>
\& \-: 2:
\& \-: 3:int main (void)
\& function main called 1 returned 1 blocks executed 75%
\& 1: 4:{
\& 1: 5: int i, total;
\& \-: 6:
\& 1: 7: total = 0;
\& \-: 8:
\& 11: 9: for (i = 0; i < 10; i++)
\& branch 0 taken 91% (fallthrough)
\& branch 1 taken 9%
\& 10: 10: total += i;
\& \-: 11:
\& 1: 12: if (total != 45)
\& branch 0 taken 0% (fallthrough)
\& branch 1 taken 100%
\& #####: 13: printf ("Failure\en");
\& call 0 never executed
\& \-: 14: else
\& 1: 15: printf ("Success\en");
\& call 0 called 1 returned 100%
\& 1: 16: return 0;
\& \-: 17:}
.Ve
.PP
For each function, a line is printed showing how many times the function
is called, how many times it returns and what percentage of the
function's blocks were executed.
.PP
For each basic block, a line is printed after the last line of the basic
block describing the branch or call that ends the basic block. There can
be multiple branches and calls listed for a single source line if there
are multiple basic blocks that end on that line. In this case, the
branches and calls are each given a number. There is no simple way to map
these branches and calls back to source constructs. In general, though,
the lowest numbered branch or call will correspond to the leftmost construct
on the source line.
.PP
For a branch, if it was executed at least once, then a percentage
indicating the number of times the branch was taken divided by the
number of times the branch was executed will be printed. Otherwise, the
message \*(L"never executed\*(R" is printed.
.PP
For a call, if it was executed at least once, then a percentage
indicating the number of times the call returned divided by the number
of times the call was executed will be printed. This will usually be
100%, but may be less for functions that call \f(CW\*(C`exit\*(C'\fR or \f(CW\*(C`longjmp\*(C'\fR,
and thus may not return every time they are called.
.PP
The execution counts are cumulative. If the example program were
executed again without removing the \fI.gcda\fR file, the count for the
number of times each line in the source was executed would be added to
the results of the previous run(s). This is potentially useful in
several ways. For example, it could be used to accumulate data over a
number of program runs as part of a test verification suite, or to
provide more accurate long-term information over a large number of
program runs.
.PP
The data in the \fI.gcda\fR files is saved immediately before the program
exits. For each source file compiled with \fB\-fprofile\-arcs\fR, the
profiling code first attempts to read in an existing \fI.gcda\fR file; if
the file doesn't match the executable (differing number of basic block
counts) it will ignore the contents of the file. It then adds in the
new execution counts and finally writes the data to the file.
.Sh "Using \fBgcov\fP with \s-1GCC\s0 Optimization"
.IX Subsection "Using gcov with GCC Optimization"
If you plan to use \fBgcov\fR to help optimize your code, you must
first compile your program with two special \s-1GCC\s0 options:
\&\fB\-fprofile\-arcs \-ftest\-coverage\fR. Aside from that, you can use any
other \s-1GCC\s0 options; but if you want to prove that every single line
in your program was executed, you should not compile with optimization
at the same time. On some machines the optimizer can eliminate some
simple code lines by combining them with other lines. For example, code
like this:
.PP
.Vb 4
\& if (a != b)
\& c = 1;
\& else
\& c = 0;
.Ve
.PP
can be compiled into one instruction on some machines. In this case,
there is no way for \fBgcov\fR to calculate separate execution counts
for each line because there isn't separate code for each line. Hence
the \fBgcov\fR output looks like this if you compiled the program with
optimization:
.PP
.Vb 4
\& 100: 12:if (a != b)
\& 100: 13: c = 1;
\& 100: 14:else
\& 100: 15: c = 0;
.Ve
.PP
The output shows that this block of code, combined by optimization,
executed 100 times. In one sense this result is correct, because there
was only one instruction representing all four of these lines. However,
the output does not indicate how many times the result was 0 and how
many times the result was 1.
.PP
Inlineable functions can create unexpected line counts. Line counts are
shown for the source code of the inlineable function, but what is shown
depends on where the function is inlined, or if it is not inlined at all.
.PP
If the function is not inlined, the compiler must emit an out of line
copy of the function, in any object file that needs it. If
\&\fIfileA.o\fR and \fIfileB.o\fR both contain out of line bodies of a
particular inlineable function, they will also both contain coverage
counts for that function. When \fIfileA.o\fR and \fIfileB.o\fR are
linked together, the linker will, on many systems, select one of those
out of line bodies for all calls to that function, and remove or ignore
the other. Unfortunately, it will not remove the coverage counters for
the unused function body. Hence when instrumented, all but one use of
that function will show zero counts.
.PP
If the function is inlined in several places, the block structure in
each location might not be the same. For instance, a condition might
now be calculable at compile time in some instances. Because the
coverage of all the uses of the inline function will be shown for the
same source lines, the line counts themselves might seem inconsistent.
.PP
Long-running applications can use the \f(CW\*(C`_gcov_reset\*(C'\fR and \f(CW\*(C`_gcov_dump\*(C'\fR
facilities to restrict profile collection to the program region of
interest. Calling \f(CW\*(C`_gcov_reset(void)\*(C'\fR will clear all profile counters
to zero, and calling \f(CW\*(C`_gcov_dump(void)\*(C'\fR will cause the profile information
collected at that point to be dumped to \fI.gcda\fR output files.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), \fIgcc\fR\|(1) and the Info entry for \fIgcc\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1996\-2013 Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding
Free Software\*(R", the Front-Cover texts being (a) (see below), and with
the Back-Cover Texts being (b) (see below). A copy of the license is
included in the \fIgfdl\fR\|(7) man page.
.PP
(a) The \s-1FSF\s0's Front-Cover Text is:
.PP
.Vb 1
\& A GNU Manual
.Ve
.PP
(b) The \s-1FSF\s0's Back-Cover Text is:
.PP
.Vb 3
\& You have freedom to copy and modify this GNU Manual, like GNU
\& software. Copies published by the Free Software Foundation raise
\& funds for GNU development.
.Ve

View file

@ -0,0 +1,403 @@
.\" Copyright (C) 1991-2013 Free Software Foundation, Inc.
.\" See section COPYING for conditions for redistribution
.\" $Id$
.TH gdb 1 "22may2002" "GNU Tools" "GNU Tools"
.SH NAME
gdb \- The GNU Debugger
.SH SYNOPSIS
.na
.TP
.B gdb
.RB "[\|" \-help "\|]"
.RB "[\|" \-nh "\|]"
.RB "[\|" \-nx "\|]"
.RB "[\|" \-q "\|]"
.RB "[\|" \-batch "\|]"
.RB "[\|" \-cd=\c
.I dir\c
\|]
.RB "[\|" \-f "\|]"
.RB "[\|" "\-b\ "\c
.IR bps "\|]"
.RB "[\|" "\-tty="\c
.IR dev "\|]"
.RB "[\|" "\-s "\c
.I symfile\c
\&\|]
.RB "[\|" "\-e "\c
.I prog\c
\&\|]
.RB "[\|" "\-se "\c
.I prog\c
\&\|]
.RB "[\|" "\-c "\c
.I core\c
\&\|]
.RB "[\|" "\-x "\c
.I file\c
\&\|]
.RB "[\|" "\-ex "\c
.I cmd\c
\&\|]
.RB "[\|" "\-d "\c
.I dir\c
\&\|]
.RB "[\|" \c
.I prog\c
.RB "[\|" \c
.IR core \||\| procID\c
\&\|]\&\|]
.ad b
.SH DESCRIPTION
The purpose of a debugger such as GDB is to allow you to see what is
going on ``inside'' another program while it executes\(em\&or what another
program was doing at the moment it crashed.
GDB can do four main kinds of things (plus other things in support of
these) to help you catch bugs in the act:
.TP
\ \ \ \(bu
Start your program, specifying anything that might affect its behavior.
.TP
\ \ \ \(bu
Make your program stop on specified conditions.
.TP
\ \ \ \(bu
Examine what has happened, when your program has stopped.
.TP
\ \ \ \(bu
Change things in your program, so you can experiment with correcting the
effects of one bug and go on to learn about another.
.PP
You can use GDB to debug programs written in C, C++, and Modula-2.
Fortran support will be added when a GNU Fortran compiler is ready.
GDB is invoked with the shell command \c
.B gdb\c
\&. Once started, it reads
commands from the terminal until you tell it to exit with the GDB
command \c
.B quit\c
\&. You can get online help from \c
.B gdb\c
\& itself
by using the command \c
.B help\c
\&.
You can run \c
.B gdb\c
\& with no arguments or options; but the most
usual way to start GDB is with one argument or two, specifying an
executable program as the argument:
.sp
.br
gdb\ program
.br
.sp
You can also start with both an executable program and a core file specified:
.sp
.br
gdb\ program\ core
.br
.sp
You can, instead, specify a process ID as a second argument, if you want
to debug a running process:
.sp
.br
gdb\ program\ 1234
.br
.sp
would attach GDB to process \c
.B 1234\c
\& (unless you also have a file
named `\|\c
.B 1234\c
\&\|'; GDB does check for a core file first).
Here are some of the most frequently needed GDB commands:
.TP
.B break \fR[\|\fIfile\fB:\fR\|]\fIfunction
\&
Set a breakpoint at \c
.I function\c
\& (in \c
.I file\c
\&).
.TP
.B run \fR[\|\fIarglist\fR\|]
Start your program (with \c
.I arglist\c
\&, if specified).
.TP
.B bt
Backtrace: display the program stack.
.TP
.BI print " expr"\c
\&
Display the value of an expression.
.TP
.B c
Continue running your program (after stopping, e.g. at a breakpoint).
.TP
.B next
Execute next program line (after stopping); step \c
.I over\c
\& any
function calls in the line.
.TP
.B edit \fR[\|\fIfile\fB:\fR\|]\fIfunction
look at the program line where it is presently stopped.
.TP
.B list \fR[\|\fIfile\fB:\fR\|]\fIfunction
type the text of the program in the vicinity of where it is presently stopped.
.TP
.B step
Execute next program line (after stopping); step \c
.I into\c
\& any
function calls in the line.
.TP
.B help \fR[\|\fIname\fR\|]
Show information about GDB command \c
.I name\c
\&, or general information
about using GDB.
.TP
.B quit
Exit from GDB.
.PP
For full details on GDB, see \c
.I
Using GDB: A Guide to the GNU Source-Level Debugger\c
\&, by Richard M. Stallman and Roland H. Pesch. The same text is available online
as the \c
.B gdb\c
\& entry in the \c
.B info\c
\& program.
.SH OPTIONS
Any arguments other than options specify an executable
file and core file (or process ID); that is, the first argument
encountered with no
associated option flag is equivalent to a `\|\c
.B \-se\c
\&\|' option, and the
second, if any, is equivalent to a `\|\c
.B \-c\c
\&\|' option if it's the name of a file. Many options have
both long and short forms; both are shown here. The long forms are also
recognized if you truncate them, so long as enough of the option is
present to be unambiguous. (If you prefer, you can flag option
arguments with `\|\c
.B +\c
\&\|' rather than `\|\c
.B \-\c
\&\|', though we illustrate the
more usual convention.)
All the options and command line arguments you give are processed
in sequential order. The order makes a difference when the
`\|\c
.B \-x\c
\&\|' option is used.
.TP
.B \-help
.TP
.B \-h
List all options, with brief explanations.
.TP
.BI "\-symbols=" "file"\c
.TP
.BI "\-s " "file"\c
\&
Read symbol table from file \c
.I file\c
\&.
.TP
.B \-write
Enable writing into executable and core files.
.TP
.BI "\-exec=" "file"\c
.TP
.BI "\-e " "file"\c
\&
Use file \c
.I file\c
\& as the executable file to execute when
appropriate, and for examining pure data in conjunction with a core
dump.
.TP
.BI "\-se=" "file"\c
\&
Read symbol table from file \c
.I file\c
\& and use it as the executable
file.
.TP
.BI "\-core=" "file"\c
.TP
.BI "\-c " "file"\c
\&
Use file \c
.I file\c
\& as a core dump to examine.
.TP
.BI "\-command=" "file"\c
.TP
.BI "\-x " "file"\c
\&
Execute GDB commands from file \c
.I file\c
\&.
.TP
.BI "\-ex " "command"\c
\&
Execute given GDB \c
.I command\c
\&.
.TP
.BI "\-directory=" "directory"\c
.TP
.BI "\-d " "directory"\c
\&
Add \c
.I directory\c
\& to the path to search for source files.
.PP
.TP
.B \-nh
Do not execute commands from ~/.gdbinit.
.TP
.B \-nx
.TP
.B \-n
Do not execute commands from any `\|\c
.B .gdbinit\c
\&\|' initialization files.
.TP
.B \-quiet
.TP
.B \-q
``Quiet''. Do not print the introductory and copyright messages. These
messages are also suppressed in batch mode.
.TP
.B \-batch
Run in batch mode. Exit with status \c
.B 0\c
\& after processing all the command
files specified with `\|\c
.B \-x\c
\&\|' (and `\|\c
.B .gdbinit\c
\&\|', if not inhibited).
Exit with nonzero status if an error occurs in executing the GDB
commands in the command files.
Batch mode may be useful for running GDB as a filter, for example to
download and run a program on another computer; in order to make this
more useful, the message
.sp
.br
Program\ exited\ normally.
.br
.sp
(which is ordinarily issued whenever a program running under GDB control
terminates) is not issued when running in batch mode.
.TP
.BI "\-cd=" "directory"\c
\&
Run GDB using \c
.I directory\c
\& as its working directory,
instead of the current directory.
.TP
.B \-fullname
.TP
.B \-f
Emacs sets this option when it runs GDB as a subprocess. It tells GDB
to output the full file name and line number in a standard,
recognizable fashion each time a stack frame is displayed (which
includes each time the program stops). This recognizable format looks
like two `\|\c
.B \032\c
\&\|' characters, followed by the file name, line number
and character position separated by colons, and a newline. The
Emacs-to-GDB interface program uses the two `\|\c
.B \032\c
\&\|' characters as
a signal to display the source code for the frame.
.TP
.BI "\-b " "bps"\c
\&
Set the line speed (baud rate or bits per second) of any serial
interface used by GDB for remote debugging.
.TP
.BI "\-tty=" "device"\c
\&
Run using \c
.I device\c
\& for your program's standard input and output.
.PP
.SH "SEE ALSO"
The full documentation for
.B gdb
is maintained as a Texinfo manual. If the
.B info
and
.B gdb
programs and GDB's Texinfo documentation are properly installed at
your site, the command
.IP
.B info gdb
.PP
should give you access to the complete manual.
.I
Using GDB: A Guide to the GNU Source-Level Debugger\c
, Richard M. Stallman and Roland H. Pesch, July 1991.
.SH COPYING
Copyright (c) 1991, 2010 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

View file

@ -0,0 +1,757 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "GPROF 1"
.TH GPROF 1 "2012-11-13" "binutils-2.23.1" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
gprof \- display call graph profile data
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
gprof [ \-[abcDhilLrsTvwxyz] ] [ \-[ACeEfFJnNOpPqQZ][\fIname\fR] ]
[ \-I \fIdirs\fR ] [ \-d[\fInum\fR] ] [ \-k \fIfrom/to\fR ]
[ \-m \fImin-count\fR ] [ \-R \fImap_file\fR ] [ \-t \fItable-length\fR ]
[ \-\-[no\-]annotated\-source[=\fIname\fR] ]
[ \-\-[no\-]exec\-counts[=\fIname\fR] ]
[ \-\-[no\-]flat\-profile[=\fIname\fR] ] [ \-\-[no\-]graph[=\fIname\fR] ]
[ \-\-[no\-]time=\fIname\fR] [ \-\-all\-lines ] [ \-\-brief ]
[ \-\-debug[=\fIlevel\fR] ] [ \-\-function\-ordering ]
[ \-\-file\-ordering \fImap_file\fR ] [ \-\-directory\-path=\fIdirs\fR ]
[ \-\-display\-unused\-functions ] [ \-\-file\-format=\fIname\fR ]
[ \-\-file\-info ] [ \-\-help ] [ \-\-line ] [ \-\-min\-count=\fIn\fR ]
[ \-\-no\-static ] [ \-\-print\-path ] [ \-\-separate\-files ]
[ \-\-static\-call\-graph ] [ \-\-sum ] [ \-\-table\-length=\fIlen\fR ]
[ \-\-traditional ] [ \-\-version ] [ \-\-width=\fIn\fR ]
[ \-\-ignore\-non\-functions ] [ \-\-demangle[=\fI\s-1STYLE\s0\fR] ]
[ \-\-no\-demangle ] [\-\-external\-symbol\-table=name]
[ \fIimage-file\fR ] [ \fIprofile-file\fR ... ]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\f(CW\*(C`gprof\*(C'\fR produces an execution profile of C, Pascal, or Fortran77
programs. The effect of called routines is incorporated in the profile
of each caller. The profile data is taken from the call graph profile file
(\fIgmon.out\fR default) which is created by programs
that are compiled with the \fB\-pg\fR option of
\&\f(CW\*(C`cc\*(C'\fR, \f(CW\*(C`pc\*(C'\fR, and \f(CW\*(C`f77\*(C'\fR.
The \fB\-pg\fR option also links in versions of the library routines
that are compiled for profiling. \f(CW\*(C`Gprof\*(C'\fR reads the given object
file (the default is \f(CW\*(C`a.out\*(C'\fR) and establishes the relation between
its symbol table and the call graph profile from \fIgmon.out\fR.
If more than one profile file is specified, the \f(CW\*(C`gprof\*(C'\fR
output shows the sum of the profile information in the given profile files.
.PP
\&\f(CW\*(C`Gprof\*(C'\fR calculates the amount of time spent in each routine.
Next, these times are propagated along the edges of the call graph.
Cycles are discovered, and calls into a cycle are made to share the time
of the cycle.
.PP
Several forms of output are available from the analysis.
.PP
The \fIflat profile\fR shows how much time your program spent in each function,
and how many times that function was called. If you simply want to know
which functions burn most of the cycles, it is stated concisely here.
.PP
The \fIcall graph\fR shows, for each function, which functions called it, which
other functions it called, and how many times. There is also an estimate
of how much time was spent in the subroutines of each function. This can
suggest places where you might try to eliminate function calls that use a
lot of time.
.PP
The \fIannotated source\fR listing is a copy of the program's
source code, labeled with the number of times each line of the
program was executed.
.SH "OPTIONS"
.IX Header "OPTIONS"
These options specify which of several output formats
\&\f(CW\*(C`gprof\*(C'\fR should produce.
.PP
Many of these options take an optional \fIsymspec\fR to specify
functions to be included or excluded. These options can be
specified multiple times, with different symspecs, to include
or exclude sets of symbols.
.PP
Specifying any of these options overrides the default (\fB\-p \-q\fR),
which prints a flat profile and call graph analysis
for all functions.
.ie n .IP """\-A[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-A[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-A[symspec]"
.PD 0
.ie n .IP """\-\-annotated\-source[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-annotated\-source[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--annotated-source[=symspec]"
.PD
The \fB\-A\fR option causes \f(CW\*(C`gprof\*(C'\fR to print annotated source code.
If \fIsymspec\fR is specified, print output only for matching symbols.
.ie n .IP """\-b""" 4
.el .IP "\f(CW\-b\fR" 4
.IX Item "-b"
.PD 0
.ie n .IP """\-\-brief""" 4
.el .IP "\f(CW\-\-brief\fR" 4
.IX Item "--brief"
.PD
If the \fB\-b\fR option is given, \f(CW\*(C`gprof\*(C'\fR doesn't print the
verbose blurbs that try to explain the meaning of all of the fields in
the tables. This is useful if you intend to print out the output, or
are tired of seeing the blurbs.
.ie n .IP """\-C[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-C[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-C[symspec]"
.PD 0
.ie n .IP """\-\-exec\-counts[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-exec\-counts[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--exec-counts[=symspec]"
.PD
The \fB\-C\fR option causes \f(CW\*(C`gprof\*(C'\fR to
print a tally of functions and the number of times each was called.
If \fIsymspec\fR is specified, print tally only for matching symbols.
.Sp
If the profile data file contains basic-block count records, specifying
the \fB\-l\fR option, along with \fB\-C\fR, will cause basic-block
execution counts to be tallied and displayed.
.ie n .IP """\-i""" 4
.el .IP "\f(CW\-i\fR" 4
.IX Item "-i"
.PD 0
.ie n .IP """\-\-file\-info""" 4
.el .IP "\f(CW\-\-file\-info\fR" 4
.IX Item "--file-info"
.PD
The \fB\-i\fR option causes \f(CW\*(C`gprof\*(C'\fR to display summary information
about the profile data file(s) and then exit. The number of histogram,
call graph, and basic-block count records is displayed.
.ie n .IP """\-I \f(CIdirs\f(CW""" 4
.el .IP "\f(CW\-I \f(CIdirs\f(CW\fR" 4
.IX Item "-I dirs"
.PD 0
.ie n .IP """\-\-directory\-path=\f(CIdirs\f(CW""" 4
.el .IP "\f(CW\-\-directory\-path=\f(CIdirs\f(CW\fR" 4
.IX Item "--directory-path=dirs"
.PD
The \fB\-I\fR option specifies a list of search directories in
which to find source files. Environment variable \fI\s-1GPROF_PATH\s0\fR
can also be used to convey this information.
Used mostly for annotated source output.
.ie n .IP """\-J[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-J[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-J[symspec]"
.PD 0
.ie n .IP """\-\-no\-annotated\-source[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-no\-annotated\-source[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--no-annotated-source[=symspec]"
.PD
The \fB\-J\fR option causes \f(CW\*(C`gprof\*(C'\fR not to
print annotated source code.
If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints annotated source,
but excludes matching symbols.
.ie n .IP """\-L""" 4
.el .IP "\f(CW\-L\fR" 4
.IX Item "-L"
.PD 0
.ie n .IP """\-\-print\-path""" 4
.el .IP "\f(CW\-\-print\-path\fR" 4
.IX Item "--print-path"
.PD
Normally, source filenames are printed with the path
component suppressed. The \fB\-L\fR option causes \f(CW\*(C`gprof\*(C'\fR
to print the full pathname of
source filenames, which is determined
from symbolic debugging information in the image file
and is relative to the directory in which the compiler
was invoked.
.ie n .IP """\-p[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-p[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-p[symspec]"
.PD 0
.ie n .IP """\-\-flat\-profile[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-flat\-profile[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--flat-profile[=symspec]"
.PD
The \fB\-p\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a flat profile.
If \fIsymspec\fR is specified, print flat profile only for matching symbols.
.ie n .IP """\-P[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-P[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-P[symspec]"
.PD 0
.ie n .IP """\-\-no\-flat\-profile[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-no\-flat\-profile[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--no-flat-profile[=symspec]"
.PD
The \fB\-P\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress printing a flat profile.
If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints a flat profile,
but excludes matching symbols.
.ie n .IP """\-q[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-q[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-q[symspec]"
.PD 0
.ie n .IP """\-\-graph[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-graph[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--graph[=symspec]"
.PD
The \fB\-q\fR option causes \f(CW\*(C`gprof\*(C'\fR to print the call graph analysis.
If \fIsymspec\fR is specified, print call graph only for matching symbols
and their children.
.ie n .IP """\-Q[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-Q[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-Q[symspec]"
.PD 0
.ie n .IP """\-\-no\-graph[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-no\-graph[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--no-graph[=symspec]"
.PD
The \fB\-Q\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress printing the
call graph.
If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints a call graph,
but excludes matching symbols.
.ie n .IP """\-t""" 4
.el .IP "\f(CW\-t\fR" 4
.IX Item "-t"
.PD 0
.ie n .IP """\-\-table\-length=\f(CInum\f(CW""" 4
.el .IP "\f(CW\-\-table\-length=\f(CInum\f(CW\fR" 4
.IX Item "--table-length=num"
.PD
The \fB\-t\fR option causes the \fInum\fR most active source lines in
each source file to be listed when source annotation is enabled. The
default is 10.
.ie n .IP """\-y""" 4
.el .IP "\f(CW\-y\fR" 4
.IX Item "-y"
.PD 0
.ie n .IP """\-\-separate\-files""" 4
.el .IP "\f(CW\-\-separate\-files\fR" 4
.IX Item "--separate-files"
.PD
This option affects annotated source output only.
Normally, \f(CW\*(C`gprof\*(C'\fR prints annotated source files
to standard-output. If this option is specified,
annotated source for a file named \fIpath/\fIfilename\fI\fR
is generated in the file \fI\fIfilename\fI\-ann\fR. If the underlying
file system would truncate \fI\fIfilename\fI\-ann\fR so that it
overwrites the original \fI\fIfilename\fI\fR, \f(CW\*(C`gprof\*(C'\fR generates
annotated source in the file \fI\fIfilename\fI.ann\fR instead (if the
original file name has an extension, that extension is \fIreplaced\fR
with \fI.ann\fR).
.ie n .IP """\-Z[\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-Z[\f(CIsymspec\f(CW]\fR" 4
.IX Item "-Z[symspec]"
.PD 0
.ie n .IP """\-\-no\-exec\-counts[=\f(CIsymspec\f(CW]""" 4
.el .IP "\f(CW\-\-no\-exec\-counts[=\f(CIsymspec\f(CW]\fR" 4
.IX Item "--no-exec-counts[=symspec]"
.PD
The \fB\-Z\fR option causes \f(CW\*(C`gprof\*(C'\fR not to
print a tally of functions and the number of times each was called.
If \fIsymspec\fR is specified, print tally, but exclude matching symbols.
.ie n .IP """\-r""" 4
.el .IP "\f(CW\-r\fR" 4
.IX Item "-r"
.PD 0
.ie n .IP """\-\-function\-ordering""" 4
.el .IP "\f(CW\-\-function\-ordering\fR" 4
.IX Item "--function-ordering"
.PD
The \fB\-\-function\-ordering\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a
suggested function ordering for the program based on profiling data.
This option suggests an ordering which may improve paging, tlb and
cache behavior for the program on systems which support arbitrary
ordering of functions in an executable.
.Sp
The exact details of how to force the linker to place functions
in a particular order is system dependent and out of the scope of this
manual.
.ie n .IP """\-R \f(CImap_file\f(CW""" 4
.el .IP "\f(CW\-R \f(CImap_file\f(CW\fR" 4
.IX Item "-R map_file"
.PD 0
.ie n .IP """\-\-file\-ordering \f(CImap_file\f(CW""" 4
.el .IP "\f(CW\-\-file\-ordering \f(CImap_file\f(CW\fR" 4
.IX Item "--file-ordering map_file"
.PD
The \fB\-\-file\-ordering\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a
suggested .o link line ordering for the program based on profiling data.
This option suggests an ordering which may improve paging, tlb and
cache behavior for the program on systems which do not support arbitrary
ordering of functions in an executable.
.Sp
Use of the \fB\-a\fR argument is highly recommended with this option.
.Sp
The \fImap_file\fR argument is a pathname to a file which provides
function name to object file mappings. The format of the file is similar to
the output of the program \f(CW\*(C`nm\*(C'\fR.
.Sp
.Vb 8
\& c\-parse.o:00000000 T yyparse
\& c\-parse.o:00000004 C yyerrflag
\& c\-lang.o:00000000 T maybe_objc_method_name
\& c\-lang.o:00000000 T print_lang_statistics
\& c\-lang.o:00000000 T recognize_objc_keyword
\& c\-decl.o:00000000 T print_lang_identifier
\& c\-decl.o:00000000 T print_lang_type
\& ...
.Ve
.Sp
To create a \fImap_file\fR with \s-1GNU\s0 \f(CW\*(C`nm\*(C'\fR, type a command like
\&\f(CW\*(C`nm \-\-extern\-only \-\-defined\-only \-v \-\-print\-file\-name program\-name\*(C'\fR.
.ie n .IP """\-T""" 4
.el .IP "\f(CW\-T\fR" 4
.IX Item "-T"
.PD 0
.ie n .IP """\-\-traditional""" 4
.el .IP "\f(CW\-\-traditional\fR" 4
.IX Item "--traditional"
.PD
The \fB\-T\fR option causes \f(CW\*(C`gprof\*(C'\fR to print its output in
\&\*(L"traditional\*(R" \s-1BSD\s0 style.
.ie n .IP """\-w \f(CIwidth\f(CW""" 4
.el .IP "\f(CW\-w \f(CIwidth\f(CW\fR" 4
.IX Item "-w width"
.PD 0
.ie n .IP """\-\-width=\f(CIwidth\f(CW""" 4
.el .IP "\f(CW\-\-width=\f(CIwidth\f(CW\fR" 4
.IX Item "--width=width"
.PD
Sets width of output lines to \fIwidth\fR.
Currently only used when printing the function index at the bottom
of the call graph.
.ie n .IP """\-x""" 4
.el .IP "\f(CW\-x\fR" 4
.IX Item "-x"
.PD 0
.ie n .IP """\-\-all\-lines""" 4
.el .IP "\f(CW\-\-all\-lines\fR" 4
.IX Item "--all-lines"
.PD
This option affects annotated source output only.
By default, only the lines at the beginning of a basic-block
are annotated. If this option is specified, every line in
a basic-block is annotated by repeating the annotation for the
first line. This behavior is similar to \f(CW\*(C`tcov\*(C'\fR's \fB\-a\fR.
.ie n .IP """\-\-demangle[=\f(CIstyle\f(CW]""" 4
.el .IP "\f(CW\-\-demangle[=\f(CIstyle\f(CW]\fR" 4
.IX Item "--demangle[=style]"
.PD 0
.ie n .IP """\-\-no\-demangle""" 4
.el .IP "\f(CW\-\-no\-demangle\fR" 4
.IX Item "--no-demangle"
.PD
These options control whether \*(C+ symbol names should be demangled when
printing output. The default is to demangle symbols. The
\&\f(CW\*(C`\-\-no\-demangle\*(C'\fR option may be used to turn off demangling. Different
compilers have different mangling styles. The optional demangling style
argument can be used to choose an appropriate demangling style for your
compiler.
.SS "Analysis Options"
.IX Subsection "Analysis Options"
.ie n .IP """\-a""" 4
.el .IP "\f(CW\-a\fR" 4
.IX Item "-a"
.PD 0
.ie n .IP """\-\-no\-static""" 4
.el .IP "\f(CW\-\-no\-static\fR" 4
.IX Item "--no-static"
.PD
The \fB\-a\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress the printing of
statically declared (private) functions. (These are functions whose
names are not listed as global, and which are not visible outside the
file/function/block where they were defined.) Time spent in these
functions, calls to/from them, etc., will all be attributed to the
function that was loaded directly before it in the executable file.
This option affects both the flat profile and the call graph.
.ie n .IP """\-c""" 4
.el .IP "\f(CW\-c\fR" 4
.IX Item "-c"
.PD 0
.ie n .IP """\-\-static\-call\-graph""" 4
.el .IP "\f(CW\-\-static\-call\-graph\fR" 4
.IX Item "--static-call-graph"
.PD
The \fB\-c\fR option causes the call graph of the program to be
augmented by a heuristic which examines the text space of the object
file and identifies function calls in the binary machine code.
Since normal call graph records are only generated when functions are
entered, this option identifies children that could have been called,
but never were. Calls to functions that were not compiled with
profiling enabled are also identified, but only if symbol table
entries are present for them.
Calls to dynamic library routines are typically \fInot\fR found
by this option.
Parents or children identified via this heuristic
are indicated in the call graph with call counts of \fB0\fR.
.ie n .IP """\-D""" 4
.el .IP "\f(CW\-D\fR" 4
.IX Item "-D"
.PD 0
.ie n .IP """\-\-ignore\-non\-functions""" 4
.el .IP "\f(CW\-\-ignore\-non\-functions\fR" 4
.IX Item "--ignore-non-functions"
.PD
The \fB\-D\fR option causes \f(CW\*(C`gprof\*(C'\fR to ignore symbols which
are not known to be functions. This option will give more accurate
profile data on systems where it is supported (Solaris and \s-1HPUX\s0 for
example).
.ie n .IP """\-k \f(CIfrom\f(CW/\f(CIto\f(CW""" 4
.el .IP "\f(CW\-k \f(CIfrom\f(CW/\f(CIto\f(CW\fR" 4
.IX Item "-k from/to"
The \fB\-k\fR option allows you to delete from the call graph any arcs from
symbols matching symspec \fIfrom\fR to those matching symspec \fIto\fR.
.ie n .IP """\-l""" 4
.el .IP "\f(CW\-l\fR" 4
.IX Item "-l"
.PD 0
.ie n .IP """\-\-line""" 4
.el .IP "\f(CW\-\-line\fR" 4
.IX Item "--line"
.PD
The \fB\-l\fR option enables line-by-line profiling, which causes
histogram hits to be charged to individual source code lines,
instead of functions. This feature only works with programs compiled
by older versions of the \f(CW\*(C`gcc\*(C'\fR compiler. Newer versions of
\&\f(CW\*(C`gcc\*(C'\fR are designed to work with the \f(CW\*(C`gcov\*(C'\fR tool instead.
.Sp
If the program was compiled with basic-block counting enabled,
this option will also identify how many times each line of
code was executed.
While line-by-line profiling can help isolate where in a large function
a program is spending its time, it also significantly increases
the running time of \f(CW\*(C`gprof\*(C'\fR, and magnifies statistical
inaccuracies.
.ie n .IP """\-m \f(CInum\f(CW""" 4
.el .IP "\f(CW\-m \f(CInum\f(CW\fR" 4
.IX Item "-m num"
.PD 0
.ie n .IP """\-\-min\-count=\f(CInum\f(CW""" 4
.el .IP "\f(CW\-\-min\-count=\f(CInum\f(CW\fR" 4
.IX Item "--min-count=num"
.PD
This option affects execution count output only.
Symbols that are executed less than \fInum\fR times are suppressed.
.ie n .IP """\-n\f(CIsymspec\f(CW""" 4
.el .IP "\f(CW\-n\f(CIsymspec\f(CW\fR" 4
.IX Item "-nsymspec"
.PD 0
.ie n .IP """\-\-time=\f(CIsymspec\f(CW""" 4
.el .IP "\f(CW\-\-time=\f(CIsymspec\f(CW\fR" 4
.IX Item "--time=symspec"
.PD
The \fB\-n\fR option causes \f(CW\*(C`gprof\*(C'\fR, in its call graph analysis,
to only propagate times for symbols matching \fIsymspec\fR.
.ie n .IP """\-N\f(CIsymspec\f(CW""" 4
.el .IP "\f(CW\-N\f(CIsymspec\f(CW\fR" 4
.IX Item "-Nsymspec"
.PD 0
.ie n .IP """\-\-no\-time=\f(CIsymspec\f(CW""" 4
.el .IP "\f(CW\-\-no\-time=\f(CIsymspec\f(CW\fR" 4
.IX Item "--no-time=symspec"
.PD
The \fB\-n\fR option causes \f(CW\*(C`gprof\*(C'\fR, in its call graph analysis,
not to propagate times for symbols matching \fIsymspec\fR.
.ie n .IP """\-S\f(CIfilename\f(CW""" 4
.el .IP "\f(CW\-S\f(CIfilename\f(CW\fR" 4
.IX Item "-Sfilename"
.PD 0
.ie n .IP """\-\-external\-symbol\-table=\f(CIfilename\f(CW""" 4
.el .IP "\f(CW\-\-external\-symbol\-table=\f(CIfilename\f(CW\fR" 4
.IX Item "--external-symbol-table=filename"
.PD
The \fB\-S\fR option causes \f(CW\*(C`gprof\*(C'\fR to read an external symbol table
file, such as \fI/proc/kallsyms\fR, rather than read the symbol table
from the given object file (the default is \f(CW\*(C`a.out\*(C'\fR). This is useful
for profiling kernel modules.
.ie n .IP """\-z""" 4
.el .IP "\f(CW\-z\fR" 4
.IX Item "-z"
.PD 0
.ie n .IP """\-\-display\-unused\-functions""" 4
.el .IP "\f(CW\-\-display\-unused\-functions\fR" 4
.IX Item "--display-unused-functions"
.PD
If you give the \fB\-z\fR option, \f(CW\*(C`gprof\*(C'\fR will mention all
functions in the flat profile, even those that were never called, and
that had no time spent in them. This is useful in conjunction with the
\&\fB\-c\fR option for discovering which routines were never called.
.SS "Miscellaneous Options"
.IX Subsection "Miscellaneous Options"
.ie n .IP """\-d[\f(CInum\f(CW]""" 4
.el .IP "\f(CW\-d[\f(CInum\f(CW]\fR" 4
.IX Item "-d[num]"
.PD 0
.ie n .IP """\-\-debug[=\f(CInum\f(CW]""" 4
.el .IP "\f(CW\-\-debug[=\f(CInum\f(CW]\fR" 4
.IX Item "--debug[=num]"
.PD
The \fB\-d\fR \fInum\fR option specifies debugging options.
If \fInum\fR is not specified, enable all debugging.
.ie n .IP """\-h""" 4
.el .IP "\f(CW\-h\fR" 4
.IX Item "-h"
.PD 0
.ie n .IP """\-\-help""" 4
.el .IP "\f(CW\-\-help\fR" 4
.IX Item "--help"
.PD
The \fB\-h\fR option prints command line usage.
.ie n .IP """\-O\f(CIname\f(CW""" 4
.el .IP "\f(CW\-O\f(CIname\f(CW\fR" 4
.IX Item "-Oname"
.PD 0
.ie n .IP """\-\-file\-format=\f(CIname\f(CW""" 4
.el .IP "\f(CW\-\-file\-format=\f(CIname\f(CW\fR" 4
.IX Item "--file-format=name"
.PD
Selects the format of the profile data files. Recognized formats are
\&\fBauto\fR (the default), \fBbsd\fR, \fB4.4bsd\fR, \fBmagic\fR, and
\&\fBprof\fR (not yet supported).
.ie n .IP """\-s""" 4
.el .IP "\f(CW\-s\fR" 4
.IX Item "-s"
.PD 0
.ie n .IP """\-\-sum""" 4
.el .IP "\f(CW\-\-sum\fR" 4
.IX Item "--sum"
.PD
The \fB\-s\fR option causes \f(CW\*(C`gprof\*(C'\fR to summarize the information
in the profile data files it read in, and write out a profile data
file called \fIgmon.sum\fR, which contains all the information from
the profile data files that \f(CW\*(C`gprof\*(C'\fR read in. The file \fIgmon.sum\fR
may be one of the specified input files; the effect of this is to
merge the data in the other input files into \fIgmon.sum\fR.
.Sp
Eventually you can run \f(CW\*(C`gprof\*(C'\fR again without \fB\-s\fR to analyze the
cumulative data in the file \fIgmon.sum\fR.
.ie n .IP """\-v""" 4
.el .IP "\f(CW\-v\fR" 4
.IX Item "-v"
.PD 0
.ie n .IP """\-\-version""" 4
.el .IP "\f(CW\-\-version\fR" 4
.IX Item "--version"
.PD
The \fB\-v\fR flag causes \f(CW\*(C`gprof\*(C'\fR to print the current version
number, and then exit.
.SS "Deprecated Options"
.IX Subsection "Deprecated Options"
These options have been replaced with newer versions that use symspecs.
.ie n .IP """\-e \f(CIfunction_name\f(CW""" 4
.el .IP "\f(CW\-e \f(CIfunction_name\f(CW\fR" 4
.IX Item "-e function_name"
The \fB\-e\fR \fIfunction\fR option tells \f(CW\*(C`gprof\*(C'\fR to not print
information about the function \fIfunction_name\fR (and its
children...) in the call graph. The function will still be listed
as a child of any functions that call it, but its index number will be
shown as \fB[not printed]\fR. More than one \fB\-e\fR option may be
given; only one \fIfunction_name\fR may be indicated with each \fB\-e\fR
option.
.ie n .IP """\-E \f(CIfunction_name\f(CW""" 4
.el .IP "\f(CW\-E \f(CIfunction_name\f(CW\fR" 4
.IX Item "-E function_name"
The \f(CW\*(C`\-E \f(CIfunction\f(CW\*(C'\fR option works like the \f(CW\*(C`\-e\*(C'\fR option, but
time spent in the function (and children who were not called from
anywhere else), will not be used to compute the percentages-of-time for
the call graph. More than one \fB\-E\fR option may be given; only one
\&\fIfunction_name\fR may be indicated with each \fB\-E\fR option.
.ie n .IP """\-f \f(CIfunction_name\f(CW""" 4
.el .IP "\f(CW\-f \f(CIfunction_name\f(CW\fR" 4
.IX Item "-f function_name"
The \fB\-f\fR \fIfunction\fR option causes \f(CW\*(C`gprof\*(C'\fR to limit the
call graph to the function \fIfunction_name\fR and its children (and
their children...). More than one \fB\-f\fR option may be given;
only one \fIfunction_name\fR may be indicated with each \fB\-f\fR
option.
.ie n .IP """\-F \f(CIfunction_name\f(CW""" 4
.el .IP "\f(CW\-F \f(CIfunction_name\f(CW\fR" 4
.IX Item "-F function_name"
The \fB\-F\fR \fIfunction\fR option works like the \f(CW\*(C`\-f\*(C'\fR option, but
only time spent in the function and its children (and their
children...) will be used to determine total-time and
percentages-of-time for the call graph. More than one \fB\-F\fR option
may be given; only one \fIfunction_name\fR may be indicated with each
\&\fB\-F\fR option. The \fB\-F\fR option overrides the \fB\-E\fR option.
.SH "FILES"
.IX Header "FILES"
.ie n .IP """\f(CIa.out\f(CW""" 4
.el .IP "\f(CW\f(CIa.out\f(CW\fR" 4
.IX Item "a.out"
the namelist and text space.
.ie n .IP """\f(CIgmon.out\f(CW""" 4
.el .IP "\f(CW\f(CIgmon.out\f(CW\fR" 4
.IX Item "gmon.out"
dynamic call graph and profile.
.ie n .IP """\f(CIgmon.sum\f(CW""" 4
.el .IP "\f(CW\f(CIgmon.sum\f(CW\fR" 4
.IX Item "gmon.sum"
summarized dynamic call graph and profile.
.SH "BUGS"
.IX Header "BUGS"
The granularity of the sampling is shown, but remains
statistical at best.
We assume that the time for each execution of a function
can be expressed by the total time for the function divided
by the number of times the function is called.
Thus the time propagated along the call graph arcs to the function's
parents is directly proportional to the number of times that
arc is traversed.
.PP
Parents that are not themselves profiled will have the time of
their profiled children propagated to them, but they will appear
to be spontaneously invoked in the call graph listing, and will
not have their time propagated further.
Similarly, signal catchers, even though profiled, will appear
to be spontaneous (although for more obscure reasons).
Any profiled children of signal catchers should have their times
propagated properly, unless the signal catcher was invoked during
the execution of the profiling routine, in which case all is lost.
.PP
The profiled program must call \f(CW\*(C`exit\*(C'\fR(2)
or return normally for the profiling information to be saved
in the \fIgmon.out\fR file.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fImonitor\fR\|(3), \fIprofil\fR\|(2), \fIcc\fR\|(1), \fIprof\fR\|(1), and the Info entry for \fIgprof\fR.
.PP
\&\*(L"An Execution Profiler for Modular Programs\*(R",
by S. Graham, P. Kessler, M. McKusick;
Software \- Practice and Experience,
Vol. 13, pp. 671\-685, 1983.
.PP
\&\*(L"gprof: A Call Graph Execution Profiler\*(R",
by S. Graham, P. Kessler, M. McKusick;
Proceedings of the \s-1SIGPLAN\s0 '82 Symposium on Compiler Construction,
\&\s-1SIGPLAN\s0 Notices, Vol. 17, No 6, pp. 120\-126, June 1982.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1988, 1992, 1997, 1998, 1999, 2000, 2001, 2003,
2007, 2008, 2009 Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,245 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "NLMCONV 1"
.TH NLMCONV 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
nlmconv \- converts object code into an NLM.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
nlmconv [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR]
[\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR]
[\fB\-T\fR \fIheaderfile\fR|\fB\-\-header\-file=\fR\fIheaderfile\fR]
[\fB\-d\fR|\fB\-\-debug\fR] [\fB\-l\fR \fIlinker\fR|\fB\-\-linker=\fR\fIlinker\fR]
[\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
\fIinfile\fR \fIoutfile\fR
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBnlmconv\fR converts the relocatable \fBi386\fR object file
\&\fIinfile\fR into the NetWare Loadable Module \fIoutfile\fR, optionally
reading \fIheaderfile\fR for \s-1NLM\s0 header information. For instructions
on writing the \s-1NLM\s0 command file language used in header files, see the
\&\fBlinkers\fR section, \fB\s-1NLMLINK\s0\fR in particular, of the \fI\s-1NLM\s0
Development and Tools Overview\fR, which is part of the \s-1NLM\s0 Software
Developer's Kit (\*(L"\s-1NLM\s0 \s-1SDK\s0\*(R"), available from Novell, Inc.
\&\fBnlmconv\fR uses the \s-1GNU\s0 Binary File Descriptor library to read
\&\fIinfile\fR;
.PP
\&\fBnlmconv\fR 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, \fBnlmconv\fR calls the linker for you.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-I\fR \fIbfdname\fR" 4
.IX Item "-I bfdname"
.PD 0
.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
.IX Item "--input-target=bfdname"
.PD
Object format of the input file. \fBnlmconv\fR can usually determine
the format of a given file (so no default is necessary).
.IP "\fB\-O\fR \fIbfdname\fR" 4
.IX Item "-O bfdname"
.PD 0
.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
.IX Item "--output-target=bfdname"
.PD
Object format of the output file. \fBnlmconv\fR infers the output
format based on the input format, e.g. for a \fBi386\fR input file the
output format is \fBnlm32\-i386\fR.
.IP "\fB\-T\fR \fIheaderfile\fR" 4
.IX Item "-T headerfile"
.PD 0
.IP "\fB\-\-header\-file=\fR\fIheaderfile\fR" 4
.IX Item "--header-file=headerfile"
.PD
Reads \fIheaderfile\fR for \s-1NLM\s0 header information. For instructions on
writing the \s-1NLM\s0 command file language used in header files, see see the
\&\fBlinkers\fR section, of the \fI\s-1NLM\s0 Development and Tools
Overview\fR, which is part of the \s-1NLM\s0 Software Developer's Kit, available
from Novell, Inc.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-\-debug\fR" 4
.IX Item "--debug"
.PD
Displays (on standard error) the linker command line used by \fBnlmconv\fR.
.IP "\fB\-l\fR \fIlinker\fR" 4
.IX Item "-l linker"
.PD 0
.IP "\fB\-\-linker=\fR\fIlinker\fR" 4
.IX Item "--linker=linker"
.PD
Use \fIlinker\fR for any linking. \fIlinker\fR can be an absolute or a
relative pathname.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Prints a usage summary.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Prints the version number for \fBnlmconv\fR.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,519 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "NM 1"
.TH NM 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
nm \- list symbols from object files
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
nm [\fB\-a\fR|\fB\-\-debug\-syms\fR]
[\fB\-g\fR|\fB\-\-extern\-only\fR][\fB\-\-plugin\fR \fIname\fR]
[\fB\-B\fR] [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]] [\fB\-D\fR|\fB\-\-dynamic\fR]
[\fB\-S\fR|\fB\-\-print\-size\fR] [\fB\-s\fR|\fB\-\-print\-armap\fR]
[\fB\-A\fR|\fB\-o\fR|\fB\-\-print\-file\-name\fR][\fB\-\-special\-syms\fR]
[\fB\-n\fR|\fB\-v\fR|\fB\-\-numeric\-sort\fR] [\fB\-p\fR|\fB\-\-no\-sort\fR]
[\fB\-r\fR|\fB\-\-reverse\-sort\fR] [\fB\-\-size\-sort\fR] [\fB\-u\fR|\fB\-\-undefined\-only\fR]
[\fB\-t\fR \fIradix\fR|\fB\-\-radix=\fR\fIradix\fR] [\fB\-P\fR|\fB\-\-portability\fR]
[\fB\-\-target=\fR\fIbfdname\fR] [\fB\-f\fR\fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
[\fB\-\-defined\-only\fR] [\fB\-l\fR|\fB\-\-line\-numbers\fR] [\fB\-\-no\-demangle\fR]
[\fB\-V\fR|\fB\-\-version\fR] [\fB\-X 32_64\fR] [\fB\-\-help\fR] [\fIobjfile\fR...]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\s-1GNU\s0 \fBnm\fR lists the symbols from object files \fIobjfile\fR....
If no object files are listed as arguments, \fBnm\fR assumes the file
\&\fIa.out\fR.
.PP
For each symbol, \fBnm\fR shows:
.IP "\(bu" 4
The symbol value, in the radix selected by options (see below), or
hexadecimal by default.
.IP "\(bu" 4
The symbol type. At least the following types are used; others are, as
well, depending on the object file format. If lowercase, the symbol is
usually local; if uppercase, the symbol is global (external). There
are however a few lowercase symbols that are shown for special global
symbols (\f(CW\*(C`u\*(C'\fR, \f(CW\*(C`v\*(C'\fR and \f(CW\*(C`w\*(C'\fR).
.RS 4
.ie n .IP """A""" 4
.el .IP "\f(CWA\fR" 4
.IX Item "A"
The symbol's value is absolute, and will not be changed by further
linking.
.ie n .IP """B""" 4
.el .IP "\f(CWB\fR" 4
.IX Item "B"
.PD 0
.ie n .IP """b""" 4
.el .IP "\f(CWb\fR" 4
.IX Item "b"
.PD
The symbol is in the uninitialized data section (known as \s-1BSS\s0).
.ie n .IP """C""" 4
.el .IP "\f(CWC\fR" 4
.IX Item "C"
The symbol is common. Common symbols are uninitialized data. When
linking, multiple common symbols may appear with the same name. If the
symbol is defined anywhere, the common symbols are treated as undefined
references.
.ie n .IP """D""" 4
.el .IP "\f(CWD\fR" 4
.IX Item "D"
.PD 0
.ie n .IP """d""" 4
.el .IP "\f(CWd\fR" 4
.IX Item "d"
.PD
The symbol is in the initialized data section.
.ie n .IP """G""" 4
.el .IP "\f(CWG\fR" 4
.IX Item "G"
.PD 0
.ie n .IP """g""" 4
.el .IP "\f(CWg\fR" 4
.IX Item "g"
.PD
The symbol is in an initialized data section for small objects. Some
object file formats permit more efficient access to small data objects,
such as a global int variable as opposed to a large global array.
.ie n .IP """i""" 4
.el .IP "\f(CWi\fR" 4
.IX Item "i"
For \s-1PE\s0 format files this indicates that the symbol is in a section
specific to the implementation of DLLs. For \s-1ELF\s0 format files this
indicates that the symbol is an indirect function. This is a \s-1GNU\s0
extension to the standard set of \s-1ELF\s0 symbol types. It indicates a
symbol which if referenced by a relocation does not evaluate to its
address, but instead must be invoked at runtime. The runtime
execution will then return the value to be used in the relocation.
.ie n .IP """N""" 4
.el .IP "\f(CWN\fR" 4
.IX Item "N"
The symbol is a debugging symbol.
.ie n .IP """p""" 4
.el .IP "\f(CWp\fR" 4
.IX Item "p"
The symbols is in a stack unwind section.
.ie n .IP """R""" 4
.el .IP "\f(CWR\fR" 4
.IX Item "R"
.PD 0
.ie n .IP """r""" 4
.el .IP "\f(CWr\fR" 4
.IX Item "r"
.PD
The symbol is in a read only data section.
.ie n .IP """S""" 4
.el .IP "\f(CWS\fR" 4
.IX Item "S"
.PD 0
.ie n .IP """s""" 4
.el .IP "\f(CWs\fR" 4
.IX Item "s"
.PD
The symbol is in an uninitialized data section for small objects.
.ie n .IP """T""" 4
.el .IP "\f(CWT\fR" 4
.IX Item "T"
.PD 0
.ie n .IP """t""" 4
.el .IP "\f(CWt\fR" 4
.IX Item "t"
.PD
The symbol is in the text (code) section.
.ie n .IP """U""" 4
.el .IP "\f(CWU\fR" 4
.IX Item "U"
The symbol is undefined.
.ie n .IP """u""" 4
.el .IP "\f(CWu\fR" 4
.IX Item "u"
The symbol is a unique global symbol. This is a \s-1GNU\s0 extension to the
standard set of \s-1ELF\s0 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.
.ie n .IP """V""" 4
.el .IP "\f(CWV\fR" 4
.IX Item "V"
.PD 0
.ie n .IP """v""" 4
.el .IP "\f(CWv\fR" 4
.IX Item "v"
.PD
The symbol is a weak object. When a weak defined symbol is linked with
a normal defined symbol, the normal defined symbol is used with no error.
When a weak undefined symbol is linked and the symbol is not defined,
the value of the weak symbol becomes zero with no error. On some
systems, uppercase indicates that a default value has been specified.
.ie n .IP """W""" 4
.el .IP "\f(CWW\fR" 4
.IX Item "W"
.PD 0
.ie n .IP """w""" 4
.el .IP "\f(CWw\fR" 4
.IX Item "w"
.PD
The symbol is a weak symbol that has not been specifically tagged as a
weak object symbol. When a weak defined symbol is linked with a normal
defined symbol, the normal defined symbol is used with no error.
When a weak undefined symbol is linked and the symbol is not defined,
the value of the symbol is determined in a system-specific manner without
error. On some systems, uppercase indicates that a default value has been
specified.
.ie n .IP """\-""" 4
.el .IP "\f(CW\-\fR" 4
.IX Item "-"
The symbol is a stabs symbol in an a.out object file. In this case, the
next values printed are the stabs other field, the stabs desc field, and
the stab type. Stabs symbols are used to hold debugging information.
.ie n .IP """?""" 4
.el .IP "\f(CW?\fR" 4
.IX Item "?"
The symbol type is unknown, or object file format specific.
.RE
.RS 4
.RE
.IP "\(bu" 4
The symbol name.
.SH "OPTIONS"
.IX Header "OPTIONS"
The long and short forms of options, shown here as alternatives, are
equivalent.
.IP "\fB\-A\fR" 4
.IX Item "-A"
.PD 0
.IP "\fB\-o\fR" 4
.IX Item "-o"
.IP "\fB\-\-print\-file\-name\fR" 4
.IX Item "--print-file-name"
.PD
Precede each symbol by the name of the input file (or archive member)
in which it was found, rather than identifying the input file once only,
before all of its symbols.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-debug\-syms\fR" 4
.IX Item "--debug-syms"
.PD
Display all symbols, even debugger-only symbols; normally these are not
listed.
.IP "\fB\-B\fR" 4
.IX Item "-B"
The same as \fB\-\-format=bsd\fR (for compatibility with the \s-1MIPS\s0 \fBnm\fR).
.IP "\fB\-C\fR" 4
.IX Item "-C"
.PD 0
.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
.IX Item "--demangle[=style]"
.PD
Decode (\fIdemangle\fR) 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.
.IP "\fB\-\-no\-demangle\fR" 4
.IX Item "--no-demangle"
Do not demangle low-level symbol names. This is the default.
.IP "\fB\-D\fR" 4
.IX Item "-D"
.PD 0
.IP "\fB\-\-dynamic\fR" 4
.IX Item "--dynamic"
.PD
Display the dynamic symbols rather than the normal symbols. This is
only meaningful for dynamic objects, such as certain types of shared
libraries.
.IP "\fB\-f\fR \fIformat\fR" 4
.IX Item "-f format"
.PD 0
.IP "\fB\-\-format=\fR\fIformat\fR" 4
.IX Item "--format=format"
.PD
Use the output format \fIformat\fR, which can be \f(CW\*(C`bsd\*(C'\fR,
\&\f(CW\*(C`sysv\*(C'\fR, or \f(CW\*(C`posix\*(C'\fR. The default is \f(CW\*(C`bsd\*(C'\fR.
Only the first character of \fIformat\fR is significant; it can be
either upper or lower case.
.IP "\fB\-g\fR" 4
.IX Item "-g"
.PD 0
.IP "\fB\-\-extern\-only\fR" 4
.IX Item "--extern-only"
.PD
Display only external symbols.
.IP "\fB\-\-plugin\fR \fIname\fR" 4
.IX Item "--plugin name"
Load the plugin called \fIname\fR to add support for extra target
types. This option is only available if the toolchain has been built
with plugin support enabled.
.IP "\fB\-l\fR" 4
.IX Item "-l"
.PD 0
.IP "\fB\-\-line\-numbers\fR" 4
.IX Item "--line-numbers"
.PD
For each symbol, use debugging information to try to find a filename and
line number. For a defined symbol, look for the line number of the
address of the symbol. For an undefined symbol, look for the line
number of a relocation entry which refers to the symbol. If line number
information can be found, print it after the other symbol information.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-v\fR" 4
.IX Item "-v"
.IP "\fB\-\-numeric\-sort\fR" 4
.IX Item "--numeric-sort"
.PD
Sort symbols numerically by their addresses, rather than alphabetically
by their names.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-no\-sort\fR" 4
.IX Item "--no-sort"
.PD
Do not bother to sort the symbols in any order; print them in the order
encountered.
.IP "\fB\-P\fR" 4
.IX Item "-P"
.PD 0
.IP "\fB\-\-portability\fR" 4
.IX Item "--portability"
.PD
Use the \s-1POSIX\s0.2 standard output format instead of the default format.
Equivalent to \fB\-f posix\fR.
.IP "\fB\-S\fR" 4
.IX Item "-S"
.PD 0
.IP "\fB\-\-print\-size\fR" 4
.IX Item "--print-size"
.PD
Print both value and size of defined symbols for the \f(CW\*(C`bsd\*(C'\fR output style.
This option has no effect for object formats that do not record symbol
sizes, unless \fB\-\-size\-sort\fR is also used in which case a
calculated size is displayed.
.IP "\fB\-s\fR" 4
.IX Item "-s"
.PD 0
.IP "\fB\-\-print\-armap\fR" 4
.IX Item "--print-armap"
.PD
When listing symbols from archive members, include the index: a mapping
(stored in the archive by \fBar\fR or \fBranlib\fR) of which modules
contain definitions for which names.
.IP "\fB\-r\fR" 4
.IX Item "-r"
.PD 0
.IP "\fB\-\-reverse\-sort\fR" 4
.IX Item "--reverse-sort"
.PD
Reverse the order of the sort (whether numeric or alphabetic); let the
last come first.
.IP "\fB\-\-size\-sort\fR" 4
.IX Item "--size-sort"
Sort symbols by size. The size is computed as the difference between
the value of the symbol and the value of the symbol with the next higher
value. If the \f(CW\*(C`bsd\*(C'\fR output format is used the size of the symbol
is printed, rather than the value, and \fB\-S\fR must be used in order
both size and value to be printed.
.IP "\fB\-\-special\-syms\fR" 4
.IX Item "--special-syms"
Display symbols which have a target-specific special meaning. These
symbols are usually used by the target for some special processing and
are not normally helpful when included included in the normal symbol
lists. For example for \s-1ARM\s0 targets this option would skip the mapping
symbols used to mark transitions between \s-1ARM\s0 code, \s-1THUMB\s0 code and
data.
.IP "\fB\-t\fR \fIradix\fR" 4
.IX Item "-t radix"
.PD 0
.IP "\fB\-\-radix=\fR\fIradix\fR" 4
.IX Item "--radix=radix"
.PD
Use \fIradix\fR as the radix for printing the symbol values. It must be
\&\fBd\fR for decimal, \fBo\fR for octal, or \fBx\fR for hexadecimal.
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
Specify an object code format other than your system's default format.
.IP "\fB\-u\fR" 4
.IX Item "-u"
.PD 0
.IP "\fB\-\-undefined\-only\fR" 4
.IX Item "--undefined-only"
.PD
Display only undefined symbols (those external to each object file).
.IP "\fB\-\-defined\-only\fR" 4
.IX Item "--defined-only"
Display only defined symbols for each object file.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Show the version number of \fBnm\fR and exit.
.IP "\fB\-X\fR" 4
.IX Item "-X"
This option is ignored for compatibility with the \s-1AIX\s0 version of
\&\fBnm\fR. It takes one parameter which must be the string
\&\fB32_64\fR. The default mode of \s-1AIX\s0 \fBnm\fR corresponds
to \fB\-X 32\fR, which is not supported by \s-1GNU\s0 \fBnm\fR.
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Show a summary of the options to \fBnm\fR and exit.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,841 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "OBJDUMP 1"
.TH OBJDUMP 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
objdump \- display information from object files.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
objdump [\fB\-a\fR|\fB\-\-archive\-headers\fR]
[\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
[\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR] ]
[\fB\-d\fR|\fB\-\-disassemble\fR]
[\fB\-D\fR|\fB\-\-disassemble\-all\fR]
[\fB\-z\fR|\fB\-\-disassemble\-zeroes\fR]
[\fB\-EB\fR|\fB\-EL\fR|\fB\-\-endian=\fR{big | little }]
[\fB\-f\fR|\fB\-\-file\-headers\fR]
[\fB\-F\fR|\fB\-\-file\-offsets\fR]
[\fB\-\-file\-start\-context\fR]
[\fB\-g\fR|\fB\-\-debugging\fR]
[\fB\-e\fR|\fB\-\-debugging\-tags\fR]
[\fB\-h\fR|\fB\-\-section\-headers\fR|\fB\-\-headers\fR]
[\fB\-i\fR|\fB\-\-info\fR]
[\fB\-j\fR \fIsection\fR|\fB\-\-section=\fR\fIsection\fR]
[\fB\-l\fR|\fB\-\-line\-numbers\fR]
[\fB\-S\fR|\fB\-\-source\fR]
[\fB\-m\fR \fImachine\fR|\fB\-\-architecture=\fR\fImachine\fR]
[\fB\-M\fR \fIoptions\fR|\fB\-\-disassembler\-options=\fR\fIoptions\fR]
[\fB\-p\fR|\fB\-\-private\-headers\fR]
[\fB\-P\fR \fIoptions\fR|\fB\-\-private=\fR\fIoptions\fR]
[\fB\-r\fR|\fB\-\-reloc\fR]
[\fB\-R\fR|\fB\-\-dynamic\-reloc\fR]
[\fB\-s\fR|\fB\-\-full\-contents\fR]
[\fB\-W[lLiaprmfFsoRt]\fR|
\fB\-\-dwarf\fR[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]]
[\fB\-G\fR|\fB\-\-stabs\fR]
[\fB\-t\fR|\fB\-\-syms\fR]
[\fB\-T\fR|\fB\-\-dynamic\-syms\fR]
[\fB\-x\fR|\fB\-\-all\-headers\fR]
[\fB\-w\fR|\fB\-\-wide\fR]
[\fB\-\-start\-address=\fR\fIaddress\fR]
[\fB\-\-stop\-address=\fR\fIaddress\fR]
[\fB\-\-prefix\-addresses\fR]
[\fB\-\-[no\-]show\-raw\-insn\fR]
[\fB\-\-adjust\-vma=\fR\fIoffset\fR]
[\fB\-\-special\-syms\fR]
[\fB\-\-prefix=\fR\fIprefix\fR]
[\fB\-\-prefix\-strip=\fR\fIlevel\fR]
[\fB\-\-insn\-width=\fR\fIwidth\fR]
[\fB\-V\fR|\fB\-\-version\fR]
[\fB\-H\fR|\fB\-\-help\fR]
\fIobjfile\fR...
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBobjdump\fR displays information about one or more object files.
The options control what particular information to display. This
information is mostly useful to programmers who are working on the
compilation tools, as opposed to programmers who just want their
program to compile and work.
.PP
\&\fIobjfile\fR... are the object files to be examined. When you
specify archives, \fBobjdump\fR shows information on each of the member
object files.
.SH "OPTIONS"
.IX Header "OPTIONS"
The long and short forms of options, shown here as alternatives, are
equivalent. At least one option from the list
\&\fB\-a,\-d,\-D,\-e,\-f,\-g,\-G,\-h,\-H,\-p,\-P,\-r,\-R,\-s,\-S,\-t,\-T,\-V,\-x\fR must be given.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-archive\-header\fR" 4
.IX Item "--archive-header"
.PD
If any of the \fIobjfile\fR files are archives, display the archive
header information (in a format similar to \fBls \-l\fR). Besides the
information you could list with \fBar tv\fR, \fBobjdump \-a\fR shows
the object file format of each archive member.
.IP "\fB\-\-adjust\-vma=\fR\fIoffset\fR" 4
.IX Item "--adjust-vma=offset"
When dumping information, first add \fIoffset\fR to all the section
addresses. This is useful if the section addresses do not correspond to
the symbol table, which can happen when putting sections at particular
addresses when using a format which can not represent section addresses,
such as a.out.
.IP "\fB\-b\fR \fIbfdname\fR" 4
.IX Item "-b bfdname"
.PD 0
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
.PD
Specify that the object-code format for the object files is
\&\fIbfdname\fR. This option may not be necessary; \fIobjdump\fR can
automatically recognize many formats.
.Sp
For example,
.Sp
.Vb 1
\& objdump \-b oasys \-m vax \-h fu.o
.Ve
.Sp
displays summary information from the section headers (\fB\-h\fR) of
\&\fIfu.o\fR, which is explicitly identified (\fB\-m\fR) as a \s-1VAX\s0 object
file in the format produced by Oasys compilers. You can list the
formats available with the \fB\-i\fR option.
.IP "\fB\-C\fR" 4
.IX Item "-C"
.PD 0
.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
.IX Item "--demangle[=style]"
.PD
Decode (\fIdemangle\fR) 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.
.IP "\fB\-g\fR" 4
.IX Item "-g"
.PD 0
.IP "\fB\-\-debugging\fR" 4
.IX Item "--debugging"
.PD
Display debugging information. This attempts to parse \s-1STABS\s0 and \s-1IEEE\s0
debugging format information stored in the file and print it out using
a C like syntax. If neither of these formats are found this option
falls back on the \fB\-W\fR option to print any \s-1DWARF\s0 information in
the file.
.IP "\fB\-e\fR" 4
.IX Item "-e"
.PD 0
.IP "\fB\-\-debugging\-tags\fR" 4
.IX Item "--debugging-tags"
.PD
Like \fB\-g\fR, but the information is generated in a format compatible
with ctags tool.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-\-disassemble\fR" 4
.IX Item "--disassemble"
.PD
Display the assembler mnemonics for the machine instructions from
\&\fIobjfile\fR. This option only disassembles those sections which are
expected to contain instructions.
.IP "\fB\-D\fR" 4
.IX Item "-D"
.PD 0
.IP "\fB\-\-disassemble\-all\fR" 4
.IX Item "--disassemble-all"
.PD
Like \fB\-d\fR, but disassemble the contents of all sections, not just
those expected to contain instructions.
.Sp
If the target is an \s-1ARM\s0 architecture this switch also has the effect
of forcing the disassembler to decode pieces of data found in code
sections as if they were instructions.
.IP "\fB\-\-prefix\-addresses\fR" 4
.IX Item "--prefix-addresses"
When disassembling, print the complete address on each line. This is
the older disassembly format.
.IP "\fB\-EB\fR" 4
.IX Item "-EB"
.PD 0
.IP "\fB\-EL\fR" 4
.IX Item "-EL"
.IP "\fB\-\-endian={big|little}\fR" 4
.IX Item "--endian={big|little}"
.PD
Specify the endianness of the object files. This only affects
disassembly. This can be useful when disassembling a file format which
does not describe endianness information, such as S\-records.
.IP "\fB\-f\fR" 4
.IX Item "-f"
.PD 0
.IP "\fB\-\-file\-headers\fR" 4
.IX Item "--file-headers"
.PD
Display summary information from the overall header of
each of the \fIobjfile\fR files.
.IP "\fB\-F\fR" 4
.IX Item "-F"
.PD 0
.IP "\fB\-\-file\-offsets\fR" 4
.IX Item "--file-offsets"
.PD
When disassembling sections, whenever a symbol is displayed, also
display the file offset of the region of data that is about to be
dumped. If zeroes are being skipped, then when disassembly resumes,
tell the user how many zeroes were skipped and the file offset of the
location from where the disassembly resumes. When dumping sections,
display the file offset of the location from where the dump starts.
.IP "\fB\-\-file\-start\-context\fR" 4
.IX Item "--file-start-context"
Specify that when displaying interlisted source code/disassembly
(assumes \fB\-S\fR) from a file that has not yet been displayed, extend the
context to the start of the file.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-section\-headers\fR" 4
.IX Item "--section-headers"
.IP "\fB\-\-headers\fR" 4
.IX Item "--headers"
.PD
Display summary information from the section headers of the
object file.
.Sp
File segments may be relocated to nonstandard addresses, for example by
using the \fB\-Ttext\fR, \fB\-Tdata\fR, or \fB\-Tbss\fR options to
\&\fBld\fR. However, some object file formats, such as a.out, do not
store the starting address of the file segments. In those situations,
although \fBld\fR relocates the sections correctly, using \fBobjdump
\&\-h\fR to list the file section headers cannot show the correct addresses.
Instead, it shows the usual addresses, which are implicit for the
target.
.IP "\fB\-H\fR" 4
.IX Item "-H"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Print a summary of the options to \fBobjdump\fR and exit.
.IP "\fB\-i\fR" 4
.IX Item "-i"
.PD 0
.IP "\fB\-\-info\fR" 4
.IX Item "--info"
.PD
Display a list showing all architectures and object formats available
for specification with \fB\-b\fR or \fB\-m\fR.
.IP "\fB\-j\fR \fIname\fR" 4
.IX Item "-j name"
.PD 0
.IP "\fB\-\-section=\fR\fIname\fR" 4
.IX Item "--section=name"
.PD
Display information only for section \fIname\fR.
.IP "\fB\-l\fR" 4
.IX Item "-l"
.PD 0
.IP "\fB\-\-line\-numbers\fR" 4
.IX Item "--line-numbers"
.PD
Label the display (using debugging information) with the filename and
source line numbers corresponding to the object code or relocs shown.
Only useful with \fB\-d\fR, \fB\-D\fR, or \fB\-r\fR.
.IP "\fB\-m\fR \fImachine\fR" 4
.IX Item "-m machine"
.PD 0
.IP "\fB\-\-architecture=\fR\fImachine\fR" 4
.IX Item "--architecture=machine"
.PD
Specify the architecture to use when disassembling object files. This
can be useful when disassembling object files which do not describe
architecture information, such as S\-records. You can list the available
architectures with the \fB\-i\fR option.
.Sp
If the target is an \s-1ARM\s0 architecture then this switch has an
additional effect. It restricts the disassembly to only those
instructions supported by the architecture specified by \fImachine\fR.
If it is necessary to use this switch because the input file does not
contain any architecture information, but it is also desired to
disassemble all the instructions use \fB\-marm\fR.
.IP "\fB\-M\fR \fIoptions\fR" 4
.IX Item "-M options"
.PD 0
.IP "\fB\-\-disassembler\-options=\fR\fIoptions\fR" 4
.IX Item "--disassembler-options=options"
.PD
Pass target specific information to the disassembler. Only supported on
some targets. If it is necessary to specify more than one
disassembler option then multiple \fB\-M\fR options can be used or
can be placed together into a comma separated list.
.Sp
If the target is an \s-1ARM\s0 architecture then this switch can be used to
select which register name set is used during disassembler. Specifying
\&\fB\-M reg-names-std\fR (the default) will select the register names as
used in \s-1ARM\s0's instruction set documentation, but with register 13 called
\&'sp', register 14 called 'lr' and register 15 called 'pc'. Specifying
\&\fB\-M reg-names-apcs\fR will select the name set used by the \s-1ARM\s0
Procedure Call Standard, whilst specifying \fB\-M reg-names-raw\fR will
just use \fBr\fR followed by the register number.
.Sp
There are also two variants on the \s-1APCS\s0 register naming scheme enabled
by \fB\-M reg-names-atpcs\fR and \fB\-M reg-names-special-atpcs\fR which
use the ARM/Thumb Procedure Call Standard naming conventions. (Either
with the normal register names or the special register names).
.Sp
This option can also be used for \s-1ARM\s0 architectures to force the
disassembler to interpret all instructions as Thumb instructions by
using the switch \fB\-\-disassembler\-options=force\-thumb\fR. This can be
useful when attempting to disassemble thumb code produced by other
compilers.
.Sp
For the x86, some of the options duplicate functions of the \fB\-m\fR
switch, but allow finer grained control. Multiple selections from the
following may be specified as a comma separated string.
\&\fBx86\-64\fR, \fBi386\fR and \fBi8086\fR select disassembly for
the given architecture. \fBintel\fR and \fBatt\fR select between
intel syntax mode and \s-1AT&T\s0 syntax mode.
\&\fBintel-mnemonic\fR and \fBatt-mnemonic\fR select between
intel mnemonic mode and \s-1AT&T\s0 mnemonic mode. \fBintel-mnemonic\fR
implies \fBintel\fR and \fBatt-mnemonic\fR implies \fBatt\fR.
\&\fBaddr64\fR, \fBaddr32\fR,
\&\fBaddr16\fR, \fBdata32\fR and \fBdata16\fR specify the default
address size and operand size. These four options will be overridden if
\&\fBx86\-64\fR, \fBi386\fR or \fBi8086\fR appear later in the
option string. Lastly, \fBsuffix\fR, when in \s-1AT&T\s0 mode,
instructs the disassembler to print a mnemonic suffix even when the
suffix could be inferred by the operands.
.Sp
For PowerPC, \fBbooke\fR controls the disassembly of BookE
instructions. \fB32\fR and \fB64\fR select PowerPC and
PowerPC64 disassembly, respectively. \fBe300\fR selects
disassembly for the e300 family. \fB440\fR selects disassembly for
the PowerPC 440. \fBppcps\fR selects disassembly for the paired
single instructions of the \s-1PPC750CL\s0.
.Sp
For \s-1MIPS\s0, this option controls the printing of instruction mnemonic
names and register names in disassembled instructions. Multiple
selections from the following may be specified as a comma separated
string, and invalid options are ignored:
.RS 4
.ie n .IP """no\-aliases""" 4
.el .IP "\f(CWno\-aliases\fR" 4
.IX Item "no-aliases"
Print the 'raw' instruction mnemonic instead of some pseudo
instruction mnemonic. I.e., print 'daddu' or 'or' instead of 'move',
\&'sll' instead of 'nop', etc.
.ie n .IP """gpr\-names=\f(CIABI\f(CW""" 4
.el .IP "\f(CWgpr\-names=\f(CIABI\f(CW\fR" 4
.IX Item "gpr-names=ABI"
Print \s-1GPR\s0 (general-purpose register) names as appropriate
for the specified \s-1ABI\s0. By default, \s-1GPR\s0 names are selected according to
the \s-1ABI\s0 of the binary being disassembled.
.ie n .IP """fpr\-names=\f(CIABI\f(CW""" 4
.el .IP "\f(CWfpr\-names=\f(CIABI\f(CW\fR" 4
.IX Item "fpr-names=ABI"
Print \s-1FPR\s0 (floating-point register) names as
appropriate for the specified \s-1ABI\s0. By default, \s-1FPR\s0 numbers are printed
rather than names.
.ie n .IP """cp0\-names=\f(CIARCH\f(CW""" 4
.el .IP "\f(CWcp0\-names=\f(CIARCH\f(CW\fR" 4
.IX Item "cp0-names=ARCH"
Print \s-1CP0\s0 (system control coprocessor; coprocessor 0) register names
as appropriate for the \s-1CPU\s0 or architecture specified by
\&\fI\s-1ARCH\s0\fR. By default, \s-1CP0\s0 register names are selected according to
the architecture and \s-1CPU\s0 of the binary being disassembled.
.ie n .IP """hwr\-names=\f(CIARCH\f(CW""" 4
.el .IP "\f(CWhwr\-names=\f(CIARCH\f(CW\fR" 4
.IX Item "hwr-names=ARCH"
Print \s-1HWR\s0 (hardware register, used by the \f(CW\*(C`rdhwr\*(C'\fR instruction) names
as appropriate for the \s-1CPU\s0 or architecture specified by
\&\fI\s-1ARCH\s0\fR. By default, \s-1HWR\s0 names are selected according to
the architecture and \s-1CPU\s0 of the binary being disassembled.
.ie n .IP """reg\-names=\f(CIABI\f(CW""" 4
.el .IP "\f(CWreg\-names=\f(CIABI\f(CW\fR" 4
.IX Item "reg-names=ABI"
Print \s-1GPR\s0 and \s-1FPR\s0 names as appropriate for the selected \s-1ABI\s0.
.ie n .IP """reg\-names=\f(CIARCH\f(CW""" 4
.el .IP "\f(CWreg\-names=\f(CIARCH\f(CW\fR" 4
.IX Item "reg-names=ARCH"
Print CPU-specific register names (\s-1CP0\s0 register and \s-1HWR\s0 names)
as appropriate for the selected \s-1CPU\s0 or architecture.
.RE
.RS 4
.Sp
For any of the options listed above, \fI\s-1ABI\s0\fR or
\&\fI\s-1ARCH\s0\fR may be specified as \fBnumeric\fR to have numbers printed
rather than names, for the selected types of registers.
You can list the available values of \fI\s-1ABI\s0\fR and \fI\s-1ARCH\s0\fR using
the \fB\-\-help\fR option.
.Sp
For \s-1VAX\s0, you can specify function entry addresses with \fB\-M
entry:0xf00ba\fR. You can use this multiple times to properly
disassemble \s-1VAX\s0 binary files that don't contain symbol tables (like
\&\s-1ROM\s0 dumps). In these cases, the function entry mask would otherwise
be decoded as \s-1VAX\s0 instructions, which would probably lead the rest
of the function being wrongly disassembled.
.RE
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-private\-headers\fR" 4
.IX Item "--private-headers"
.PD
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.
.IP "\fB\-P\fR \fIoptions\fR" 4
.IX Item "-P options"
.PD 0
.IP "\fB\-\-private=\fR\fIoptions\fR" 4
.IX Item "--private=options"
.PD
Print information that is specific to the object file format. The
argument \fIoptions\fR is a comma separated list that depends on the
format (the lists of options is displayed with the help).
.Sp
For \s-1XCOFF\s0, the available options are: \fBheader\fR, \fBaout\fR,
\&\fBsections\fR, \fBsyms\fR, \fBrelocs\fR, \fBlineno\fR,
\&\fBloader\fR, \fBexcept\fR, \fBtypchk\fR, \fBtraceback\fR
and \fBtoc\fR.
.IP "\fB\-r\fR" 4
.IX Item "-r"
.PD 0
.IP "\fB\-\-reloc\fR" 4
.IX Item "--reloc"
.PD
Print the relocation entries of the file. If used with \fB\-d\fR or
\&\fB\-D\fR, the relocations are printed interspersed with the
disassembly.
.IP "\fB\-R\fR" 4
.IX Item "-R"
.PD 0
.IP "\fB\-\-dynamic\-reloc\fR" 4
.IX Item "--dynamic-reloc"
.PD
Print the dynamic relocation entries of the file. This is only
meaningful for dynamic objects, such as certain types of shared
libraries. As for \fB\-r\fR, if used with \fB\-d\fR or
\&\fB\-D\fR, the relocations are printed interspersed with the
disassembly.
.IP "\fB\-s\fR" 4
.IX Item "-s"
.PD 0
.IP "\fB\-\-full\-contents\fR" 4
.IX Item "--full-contents"
.PD
Display the full contents of any sections requested. By default all
non-empty sections are displayed.
.IP "\fB\-S\fR" 4
.IX Item "-S"
.PD 0
.IP "\fB\-\-source\fR" 4
.IX Item "--source"
.PD
Display source code intermixed with disassembly, if possible. Implies
\&\fB\-d\fR.
.IP "\fB\-\-prefix=\fR\fIprefix\fR" 4
.IX Item "--prefix=prefix"
Specify \fIprefix\fR to add to the absolute paths when used with
\&\fB\-S\fR.
.IP "\fB\-\-prefix\-strip=\fR\fIlevel\fR" 4
.IX Item "--prefix-strip=level"
Indicate how many initial directory names to strip off the hardwired
absolute paths. It has no effect without \fB\-\-prefix=\fR\fIprefix\fR.
.IP "\fB\-\-show\-raw\-insn\fR" 4
.IX Item "--show-raw-insn"
When disassembling instructions, print the instruction in hex as well as
in symbolic form. This is the default except when
\&\fB\-\-prefix\-addresses\fR is used.
.IP "\fB\-\-no\-show\-raw\-insn\fR" 4
.IX Item "--no-show-raw-insn"
When disassembling instructions, do not print the instruction bytes.
This is the default when \fB\-\-prefix\-addresses\fR is used.
.IP "\fB\-\-insn\-width=\fR\fIwidth\fR" 4
.IX Item "--insn-width=width"
Display \fIwidth\fR bytes on a single line when disassembling
instructions.
.IP "\fB\-W[lLiaprmfFsoRt]\fR" 4
.IX Item "-W[lLiaprmfFsoRt]"
.PD 0
.IP "\fB\-\-dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]\fR" 4
.IX Item "--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]"
.PD
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.
.Sp
Note that there is no single letter option to display the content of
trace sections or .gdb_index.
.Sp
Note: the output from the \fB=info\fR option can also be affected
by the options \fB\-\-dwarf\-depth\fR, the \fB\-\-dwarf\-start\fR and
the \fB\-\-dwarf\-check\fR.
.IP "\fB\-\-dwarf\-depth=\fR\fIn\fR" 4
.IX Item "--dwarf-depth=n"
Limit the dump of the \f(CW\*(C`.debug_info\*(C'\fR section to \fIn\fR children.
This is only useful with \fB\-\-dwarf=info\fR. The default is
to print all DIEs; the special value 0 for \fIn\fR will also have this
effect.
.Sp
With a non-zero value for \fIn\fR, DIEs at or deeper than \fIn\fR
levels will not be printed. The range for \fIn\fR is zero-based.
.IP "\fB\-\-dwarf\-start=\fR\fIn\fR" 4
.IX Item "--dwarf-start=n"
Print only DIEs beginning with the \s-1DIE\s0 numbered \fIn\fR. This is only
useful with \fB\-\-dwarf=info\fR.
.Sp
If specified, this option will suppress printing of any header
information and all DIEs before the \s-1DIE\s0 numbered \fIn\fR. Only
siblings and children of the specified \s-1DIE\s0 will be printed.
.Sp
This can be used in conjunction with \fB\-\-dwarf\-depth\fR.
.IP "\fB\-\-dwarf\-check\fR" 4
.IX Item "--dwarf-check"
Enable additional checks for consistency of Dwarf information.
.IP "\fB\-G\fR" 4
.IX Item "-G"
.PD 0
.IP "\fB\-\-stabs\fR" 4
.IX Item "--stabs"
.PD
Display the full contents of any sections requested. Display the
contents of the .stab and .stab.index and .stab.excl sections from an
\&\s-1ELF\s0 file. This is only useful on systems (such as Solaris 2.0) in which
\&\f(CW\*(C`.stab\*(C'\fR debugging symbol-table entries are carried in an \s-1ELF\s0
section. In most other file formats, debugging symbol-table entries are
interleaved with linkage symbols, and are visible in the \fB\-\-syms\fR
output.
.IP "\fB\-\-start\-address=\fR\fIaddress\fR" 4
.IX Item "--start-address=address"
Start displaying data at the specified address. This affects the output
of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
.IP "\fB\-\-stop\-address=\fR\fIaddress\fR" 4
.IX Item "--stop-address=address"
Stop displaying data at the specified address. This affects the output
of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
.IP "\fB\-t\fR" 4
.IX Item "-t"
.PD 0
.IP "\fB\-\-syms\fR" 4
.IX Item "--syms"
.PD
Print the symbol table entries of the file.
This is similar to the information provided by the \fBnm\fR 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:
.Sp
.Vb 2
\& [ 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
.Ve
.Sp
where the number inside the square brackets is the number of the entry
in the symbol table, the \fIsec\fR number is the section number, the
\&\fIfl\fR value are the symbol's flag bits, the \fIty\fR number is the
symbol's type, the \fIscl\fR number is the symbol's storage class and
the \fInx\fR value is the number of auxilary entries associated with
the symbol. The last two fields are the symbol's value and its name.
.Sp
The other common output format, usually seen with \s-1ELF\s0 based files,
looks like this:
.Sp
.Vb 2
\& 00000000 l d .bss 00000000 .bss
\& 00000000 g .text 00000000 fred
.Ve
.Sp
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 \fI*ABS*\fR if the section is absolute (ie
not connected with any section), or \fI*UND*\fR if the section is
referenced in the file being dumped, but not defined there.
.Sp
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.
.Sp
The flag characters are divided into 7 groups as follows:
.RS 4
.ie n .IP """l""" 4
.el .IP "\f(CWl\fR" 4
.IX Item "l"
.PD 0
.ie n .IP """g""" 4
.el .IP "\f(CWg\fR" 4
.IX Item "g"
.ie n .IP """u""" 4
.el .IP "\f(CWu\fR" 4
.IX Item "u"
.ie n .IP """!""" 4
.el .IP "\f(CW!\fR" 4
.IX Item "!"
.PD
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 \s-1GNU\s0 extension to the standard set of \s-1ELF\s0 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.
.ie n .IP """w""" 4
.el .IP "\f(CWw\fR" 4
.IX Item "w"
The symbol is weak (w) or strong (a space).
.ie n .IP """C""" 4
.el .IP "\f(CWC\fR" 4
.IX Item "C"
The symbol denotes a constructor (C) or an ordinary symbol (a space).
.ie n .IP """W""" 4
.el .IP "\f(CWW\fR" 4
.IX Item "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.
.ie n .IP """I""" 4
.el .IP "\f(CWI\fR" 4
.IX Item "I"
.PD 0
.ie n .IP """i""" 4
.el .IP "\f(CWi\fR" 4
.IX Item "i"
.PD
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).
.ie n .IP """d""" 4
.el .IP "\f(CWd\fR" 4
.IX Item "d"
.PD 0
.ie n .IP """D""" 4
.el .IP "\f(CWD\fR" 4
.IX Item "D"
.PD
The symbol is a debugging symbol (d) or a dynamic symbol (D) or a
normal symbol (a space).
.ie n .IP """F""" 4
.el .IP "\f(CWF\fR" 4
.IX Item "F"
.PD 0
.ie n .IP """f""" 4
.el .IP "\f(CWf\fR" 4
.IX Item "f"
.ie n .IP """O""" 4
.el .IP "\f(CWO\fR" 4
.IX Item "O"
.PD
The symbol is the name of a function (F) or a file (f) or an object
(O) or just a normal symbol (a space).
.RE
.RS 4
.RE
.IP "\fB\-T\fR" 4
.IX Item "-T"
.PD 0
.IP "\fB\-\-dynamic\-syms\fR" 4
.IX Item "--dynamic-syms"
.PD
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 \fBnm\fR
program when given the \fB\-D\fR (\fB\-\-dynamic\fR) option.
.IP "\fB\-\-special\-syms\fR" 4
.IX Item "--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.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Print the version number of \fBobjdump\fR and exit.
.IP "\fB\-x\fR" 4
.IX Item "-x"
.PD 0
.IP "\fB\-\-all\-headers\fR" 4
.IX Item "--all-headers"
.PD
Display all available header information, including the symbol table and
relocation entries. Using \fB\-x\fR is equivalent to specifying all of
\&\fB\-a \-f \-h \-p \-r \-t\fR.
.IP "\fB\-w\fR" 4
.IX Item "-w"
.PD 0
.IP "\fB\-\-wide\fR" 4
.IX Item "--wide"
.PD
Format some lines for output devices that have more than 80 columns.
Also do not truncate symbol names when they are displayed.
.IP "\fB\-z\fR" 4
.IX Item "-z"
.PD 0
.IP "\fB\-\-disassemble\-zeroes\fR" 4
.IX Item "--disassemble-zeroes"
.PD
Normally the disassembly output will skip blocks of zeroes. This
option directs the disassembler to disassemble those blocks, just like
any other data.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fInm\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,218 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "RANLIB 1"
.TH RANLIB 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
ranlib \- generate index to archive.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
ranlib [\fB\-\-plugin\fR \fIname\fR] [\fB\-DhHvVt\fR] \fIarchive\fR
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBranlib\fR 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.
.PP
You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index.
.PP
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.
.PP
The \s-1GNU\s0 \fBranlib\fR program is another form of \s-1GNU\s0 \fBar\fR; running
\&\fBranlib\fR is completely equivalent to executing \fBar \-s\fR.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-H\fR" 4
.IX Item "-H"
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Show usage information for \fBranlib\fR.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-V\fR" 4
.IX Item "-V"
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Show the version number of \fBranlib\fR.
.IP "\fB\-D\fR" 4
.IX Item "-D"
Operate in \fIdeterministic\fR mode. The symbol map archive member's
header will show zero for the \s-1UID\s0, \s-1GID\s0, and timestamp. When this
option is used, multiple runs will produce identical output files.
.Sp
This is the default unless \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR.
.IP "\fB\-t\fR" 4
.IX Item "-t"
Update the timestamp of the symbol map of an archive.
.IP "\fB\-U\fR" 4
.IX Item "-U"
Do \fInot\fR operate in \fIdeterministic\fR mode. This is the
inverse of the \fB\-D\fR option, above: the archive index will get
actual \s-1UID\s0, \s-1GID\s0, timestamp, and file mode values.
.Sp
This is the default unless \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIar\fR\|(1), \fInm\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,451 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "READELF 1"
.TH READELF 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
readelf \- Displays information about ELF files.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
readelf [\fB\-a\fR|\fB\-\-all\fR]
[\fB\-h\fR|\fB\-\-file\-header\fR]
[\fB\-l\fR|\fB\-\-program\-headers\fR|\fB\-\-segments\fR]
[\fB\-S\fR|\fB\-\-section\-headers\fR|\fB\-\-sections\fR]
[\fB\-g\fR|\fB\-\-section\-groups\fR]
[\fB\-t\fR|\fB\-\-section\-details\fR]
[\fB\-e\fR|\fB\-\-headers\fR]
[\fB\-s\fR|\fB\-\-syms\fR|\fB\-\-symbols\fR]
[\fB\-\-dyn\-syms\fR]
[\fB\-n\fR|\fB\-\-notes\fR]
[\fB\-r\fR|\fB\-\-relocs\fR]
[\fB\-u\fR|\fB\-\-unwind\fR]
[\fB\-d\fR|\fB\-\-dynamic\fR]
[\fB\-V\fR|\fB\-\-version\-info\fR]
[\fB\-A\fR|\fB\-\-arch\-specific\fR]
[\fB\-D\fR|\fB\-\-use\-dynamic\fR]
[\fB\-x\fR <number or name>|\fB\-\-hex\-dump=\fR<number or name>]
[\fB\-p\fR <number or name>|\fB\-\-string\-dump=\fR<number or name>]
[\fB\-R\fR <number or name>|\fB\-\-relocated\-dump=\fR<number or name>]
[\fB\-c\fR|\fB\-\-archive\-index\fR]
[\fB\-w[lLiaprmfFsoRt]\fR|
\fB\-\-debug\-dump\fR[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]]
[\fB\-\-dwarf\-depth=\fR\fIn\fR]
[\fB\-\-dwarf\-start=\fR\fIn\fR]
[\fB\-I\fR|\fB\-\-histogram\fR]
[\fB\-v\fR|\fB\-\-version\fR]
[\fB\-W\fR|\fB\-\-wide\fR]
[\fB\-H\fR|\fB\-\-help\fR]
\fIelffile\fR...
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBreadelf\fR displays information about one or more \s-1ELF\s0 format object
files. The options control what particular information to display.
.PP
\&\fIelffile\fR... are the object files to be examined. 32\-bit and
64\-bit \s-1ELF\s0 files are supported, as are archives containing \s-1ELF\s0 files.
.PP
This program performs a similar function to \fBobjdump\fR but it
goes into more detail and it exists independently of the \s-1BFD\s0
library, so if there is a bug in \s-1BFD\s0 then readelf will not be
affected.
.SH "OPTIONS"
.IX Header "OPTIONS"
The long and short forms of options, shown here as alternatives, are
equivalent. At least one option besides \fB\-v\fR or \fB\-H\fR must be
given.
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-all\fR" 4
.IX Item "--all"
.PD
Equivalent to specifying \fB\-\-file\-header\fR,
\&\fB\-\-program\-headers\fR, \fB\-\-sections\fR, \fB\-\-symbols\fR,
\&\fB\-\-relocs\fR, \fB\-\-dynamic\fR, \fB\-\-notes\fR and
\&\fB\-\-version\-info\fR.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-file\-header\fR" 4
.IX Item "--file-header"
.PD
Displays the information contained in the \s-1ELF\s0 header at the start of the
file.
.IP "\fB\-l\fR" 4
.IX Item "-l"
.PD 0
.IP "\fB\-\-program\-headers\fR" 4
.IX Item "--program-headers"
.IP "\fB\-\-segments\fR" 4
.IX Item "--segments"
.PD
Displays the information contained in the file's segment headers, if it
has any.
.IP "\fB\-S\fR" 4
.IX Item "-S"
.PD 0
.IP "\fB\-\-sections\fR" 4
.IX Item "--sections"
.IP "\fB\-\-section\-headers\fR" 4
.IX Item "--section-headers"
.PD
Displays the information contained in the file's section headers, if it
has any.
.IP "\fB\-g\fR" 4
.IX Item "-g"
.PD 0
.IP "\fB\-\-section\-groups\fR" 4
.IX Item "--section-groups"
.PD
Displays the information contained in the file's section groups, if it
has any.
.IP "\fB\-t\fR" 4
.IX Item "-t"
.PD 0
.IP "\fB\-\-section\-details\fR" 4
.IX Item "--section-details"
.PD
Displays the detailed section information. Implies \fB\-S\fR.
.IP "\fB\-s\fR" 4
.IX Item "-s"
.PD 0
.IP "\fB\-\-symbols\fR" 4
.IX Item "--symbols"
.IP "\fB\-\-syms\fR" 4
.IX Item "--syms"
.PD
Displays the entries in symbol table section of the file, if it has one.
.IP "\fB\-\-dyn\-syms\fR" 4
.IX Item "--dyn-syms"
Displays the entries in dynamic symbol table section of the file, if it
has one.
.IP "\fB\-e\fR" 4
.IX Item "-e"
.PD 0
.IP "\fB\-\-headers\fR" 4
.IX Item "--headers"
.PD
Display all the headers in the file. Equivalent to \fB\-h \-l \-S\fR.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-\-notes\fR" 4
.IX Item "--notes"
.PD
Displays the contents of the \s-1NOTE\s0 segments and/or sections, if any.
.IP "\fB\-r\fR" 4
.IX Item "-r"
.PD 0
.IP "\fB\-\-relocs\fR" 4
.IX Item "--relocs"
.PD
Displays the contents of the file's relocation section, if it has one.
.IP "\fB\-u\fR" 4
.IX Item "-u"
.PD 0
.IP "\fB\-\-unwind\fR" 4
.IX Item "--unwind"
.PD
Displays the contents of the file's unwind section, if it has one. Only
the unwind sections for \s-1IA64\s0 \s-1ELF\s0 files, as well as \s-1ARM\s0 unwind tables
(\f(CW\*(C`.ARM.exidx\*(C'\fR / \f(CW\*(C`.ARM.extab\*(C'\fR) are currently supported.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-\-dynamic\fR" 4
.IX Item "--dynamic"
.PD
Displays the contents of the file's dynamic section, if it has one.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\-info\fR" 4
.IX Item "--version-info"
.PD
Displays the contents of the version sections in the file, it they
exist.
.IP "\fB\-A\fR" 4
.IX Item "-A"
.PD 0
.IP "\fB\-\-arch\-specific\fR" 4
.IX Item "--arch-specific"
.PD
Displays architecture-specific information in the file, if there
is any.
.IP "\fB\-D\fR" 4
.IX Item "-D"
.PD 0
.IP "\fB\-\-use\-dynamic\fR" 4
.IX Item "--use-dynamic"
.PD
When displaying symbols, this option makes \fBreadelf\fR use the
symbol hash tables in the file's dynamic section, rather than the
symbol table sections.
.IP "\fB\-x <number or name>\fR" 4
.IX Item "-x <number or name>"
.PD 0
.IP "\fB\-\-hex\-dump=<number or name>\fR" 4
.IX Item "--hex-dump=<number or name>"
.PD
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.
.IP "\fB\-R <number or name>\fR" 4
.IX Item "-R <number or name>"
.PD 0
.IP "\fB\-\-relocated\-dump=<number or name>\fR" 4
.IX Item "--relocated-dump=<number or name>"
.PD
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.
.IP "\fB\-p <number or name>\fR" 4
.IX Item "-p <number or name>"
.PD 0
.IP "\fB\-\-string\-dump=<number or name>\fR" 4
.IX Item "--string-dump=<number or name>"
.PD
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.
.IP "\fB\-c\fR" 4
.IX Item "-c"
.PD 0
.IP "\fB\-\-archive\-index\fR" 4
.IX Item "--archive-index"
.PD
Displays the file symbol index infomation contained in the header part
of binary archives. Performs the same function as the \fBt\fR
command to \fBar\fR, but without using the \s-1BFD\s0 library.
.IP "\fB\-w[lLiaprmfFsoRt]\fR" 4
.IX Item "-w[lLiaprmfFsoRt]"
.PD 0
.IP "\fB\-\-debug\-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]\fR" 4
.IX Item "--debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index]"
.PD
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.
.Sp
Note that there is no single letter option to display the content of
trace sections or .gdb_index.
.Sp
Note: the \fB=decodedline\fR option will display the interpreted
contents of a .debug_line section whereas the \fB=rawline\fR option
dumps the contents in a raw format.
.Sp
Note: the \fB=frames\-interp\fR option will display the interpreted
contents of a .debug_frame section whereas the \fB=frames\fR option
dumps the contents in a raw format.
.Sp
Note: the output from the \fB=info\fR option can also be affected
by the options \fB\-\-dwarf\-depth\fR and \fB\-\-dwarf\-start\fR.
.IP "\fB\-\-dwarf\-depth=\fR\fIn\fR" 4
.IX Item "--dwarf-depth=n"
Limit the dump of the \f(CW\*(C`.debug_info\*(C'\fR section to \fIn\fR children.
This is only useful with \fB\-\-debug\-dump=info\fR. The default is
to print all DIEs; the special value 0 for \fIn\fR will also have this
effect.
.Sp
With a non-zero value for \fIn\fR, DIEs at or deeper than \fIn\fR
levels will not be printed. The range for \fIn\fR is zero-based.
.IP "\fB\-\-dwarf\-start=\fR\fIn\fR" 4
.IX Item "--dwarf-start=n"
Print only DIEs beginning with the \s-1DIE\s0 numbered \fIn\fR. This is only
useful with \fB\-\-debug\-dump=info\fR.
.Sp
If specified, this option will suppress printing of any header
information and all DIEs before the \s-1DIE\s0 numbered \fIn\fR. Only
siblings and children of the specified \s-1DIE\s0 will be printed.
.Sp
This can be used in conjunction with \fB\-\-dwarf\-depth\fR.
.IP "\fB\-I\fR" 4
.IX Item "-I"
.PD 0
.IP "\fB\-\-histogram\fR" 4
.IX Item "--histogram"
.PD
Display a histogram of bucket list lengths when displaying the contents
of the symbol tables.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Display the version number of readelf.
.IP "\fB\-W\fR" 4
.IX Item "-W"
.PD 0
.IP "\fB\-\-wide\fR" 4
.IX Item "--wide"
.PD
Don't break output lines to fit into 80 columns. By default
\&\fBreadelf\fR breaks section header and segment listing lines for
64\-bit \s-1ELF\s0 files, so that they fit into 80 columns. This option causes
\&\fBreadelf\fR to print each section header resp. each segment one a
single line, which is far more readable on terminals wider than 80 columns.
.IP "\fB\-H\fR" 4
.IX Item "-H"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Display the command line options understood by \fBreadelf\fR.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,269 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "SIZE 1"
.TH SIZE 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
size \- list section sizes and total size.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
size [\fB\-A\fR|\fB\-B\fR|\fB\-\-format=\fR\fIcompatibility\fR]
[\fB\-\-help\fR]
[\fB\-d\fR|\fB\-o\fR|\fB\-x\fR|\fB\-\-radix=\fR\fInumber\fR]
[\fB\-\-common\fR]
[\fB\-t\fR|\fB\-\-totals\fR]
[\fB\-\-target=\fR\fIbfdname\fR] [\fB\-V\fR|\fB\-\-version\fR]
[\fIobjfile\fR...]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
The \s-1GNU\s0 \fBsize\fR utility lists the section sizes\-\-\-and the total
size\-\-\-for each of the object or archive files \fIobjfile\fR in its
argument list. By default, one line of output is generated for each
object file or each module in an archive.
.PP
\&\fIobjfile\fR... are the object files to be examined.
If none are specified, the file \f(CW\*(C`a.out\*(C'\fR will be used.
.SH "OPTIONS"
.IX Header "OPTIONS"
The command line options have the following meanings:
.IP "\fB\-A\fR" 4
.IX Item "-A"
.PD 0
.IP "\fB\-B\fR" 4
.IX Item "-B"
.IP "\fB\-\-format=\fR\fIcompatibility\fR" 4
.IX Item "--format=compatibility"
.PD
Using one of these options, you can choose whether the output from \s-1GNU\s0
\&\fBsize\fR resembles output from System V \fBsize\fR (using \fB\-A\fR,
or \fB\-\-format=sysv\fR), or Berkeley \fBsize\fR (using \fB\-B\fR, or
\&\fB\-\-format=berkeley\fR). The default is the one-line format similar to
Berkeley's.
.Sp
Here is an example of the Berkeley (default) format of output from
\&\fBsize\fR:
.Sp
.Vb 4
\& $ size \-\-format=Berkeley ranlib size
\& text data bss dec hex filename
\& 294880 81920 11592 388392 5ed28 ranlib
\& 294880 81920 11888 388688 5ee50 size
.Ve
.Sp
This is the same data, but displayed closer to System V conventions:
.Sp
.Vb 7
\& $ 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
.Ve
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Show a summary of acceptable arguments and options.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-o\fR" 4
.IX Item "-o"
.IP "\fB\-x\fR" 4
.IX Item "-x"
.IP "\fB\-\-radix=\fR\fInumber\fR" 4
.IX Item "--radix=number"
.PD
Using one of these options, you can control whether the size of each
section is given in decimal (\fB\-d\fR, or \fB\-\-radix=10\fR); octal
(\fB\-o\fR, or \fB\-\-radix=8\fR); or hexadecimal (\fB\-x\fR, or
\&\fB\-\-radix=16\fR). In \fB\-\-radix=\fR\fInumber\fR, only the three
values (8, 10, 16) are supported. The total size is always given in two
radices; decimal and hexadecimal for \fB\-d\fR or \fB\-x\fR output, or
octal and hexadecimal if you're using \fB\-o\fR.
.IP "\fB\-\-common\fR" 4
.IX Item "--common"
Print total size of common symbols in each file. When using Berkeley
format these are included in the bss size.
.IP "\fB\-t\fR" 4
.IX Item "-t"
.PD 0
.IP "\fB\-\-totals\fR" 4
.IX Item "--totals"
.PD
Show totals of all objects listed (Berkeley format listing mode only).
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
Specify that the object-code format for \fIobjfile\fR is
\&\fIbfdname\fR. This option may not be necessary; \fBsize\fR can
automatically recognize many formats.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Display the version number of \fBsize\fR.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,258 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "STRINGS 1"
.TH STRINGS 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
strings \- print the strings of printable characters in files.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
strings [\fB\-afovV\fR] [\fB\-\fR\fImin-len\fR]
[\fB\-n\fR \fImin-len\fR] [\fB\-\-bytes=\fR\fImin-len\fR]
[\fB\-t\fR \fIradix\fR] [\fB\-\-radix=\fR\fIradix\fR]
[\fB\-e\fR \fIencoding\fR] [\fB\-\-encoding=\fR\fIencoding\fR]
[\fB\-\fR] [\fB\-\-all\fR] [\fB\-\-print\-file\-name\fR]
[\fB\-T\fR \fIbfdname\fR] [\fB\-\-target=\fR\fIbfdname\fR]
[\fB\-\-help\fR] [\fB\-\-version\fR] \fIfile\fR...
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
For each \fIfile\fR given, \s-1GNU\s0 \fBstrings\fR 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.
.PP
\&\fBstrings\fR is mainly useful for determining the contents of non-text
files.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-all\fR" 4
.IX Item "--all"
.IP "\fB\-\fR" 4
.IX Item "-"
.PD
Do not scan only the initialized and loaded sections of object files;
scan the whole files.
.IP "\fB\-f\fR" 4
.IX Item "-f"
.PD 0
.IP "\fB\-\-print\-file\-name\fR" 4
.IX Item "--print-file-name"
.PD
Print the name of the file before each string.
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Print a summary of the program usage on the standard output and exit.
.IP "\fB\-\fR\fImin-len\fR" 4
.IX Item "-min-len"
.PD 0
.IP "\fB\-n\fR \fImin-len\fR" 4
.IX Item "-n min-len"
.IP "\fB\-\-bytes=\fR\fImin-len\fR" 4
.IX Item "--bytes=min-len"
.PD
Print sequences of characters that are at least \fImin-len\fR characters
long, instead of the default 4.
.IP "\fB\-o\fR" 4
.IX Item "-o"
Like \fB\-t o\fR. Some other versions of \fBstrings\fR have \fB\-o\fR
act like \fB\-t d\fR instead. Since we can not be compatible with both
ways, we simply chose one.
.IP "\fB\-t\fR \fIradix\fR" 4
.IX Item "-t radix"
.PD 0
.IP "\fB\-\-radix=\fR\fIradix\fR" 4
.IX Item "--radix=radix"
.PD
Print the offset within the file before each string. The single
character argument specifies the radix of the offset\-\-\-\fBo\fR for
octal, \fBx\fR for hexadecimal, or \fBd\fR for decimal.
.IP "\fB\-e\fR \fIencoding\fR" 4
.IX Item "-e encoding"
.PD 0
.IP "\fB\-\-encoding=\fR\fIencoding\fR" 4
.IX Item "--encoding=encoding"
.PD
Select the character encoding of the strings that are to be found.
Possible values for \fIencoding\fR are: \fBs\fR = single\-7\-bit\-byte
characters (\s-1ASCII\s0, \s-1ISO\s0 8859, etc., default), \fBS\fR =
single\-8\-bit\-byte characters, \fBb\fR = 16\-bit bigendian, \fBl\fR =
16\-bit littleendian, \fBB\fR = 32\-bit bigendian, \fBL\fR = 32\-bit
littleendian. Useful for finding wide character strings. (\fBl\fR
and \fBb\fR apply to, for example, Unicode \s-1UTF\-16/UCS\-2\s0 encodings).
.IP "\fB\-T\fR \fIbfdname\fR" 4
.IX Item "-T bfdname"
.PD 0
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
.PD
Specify an object code format other than your system's default format.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-V\fR" 4
.IX Item "-V"
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Print the program version number on the standard output and exit.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIar\fR\|(1), \fInm\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), \fIreadelf\fR\|(1)
and the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,428 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "STRIP 1"
.TH STRIP 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
strip \- Discard symbols from object files.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
strip [\fB\-F\fR \fIbfdname\fR |\fB\-\-target=\fR\fIbfdname\fR]
[\fB\-I\fR \fIbfdname\fR |\fB\-\-input\-target=\fR\fIbfdname\fR]
[\fB\-O\fR \fIbfdname\fR |\fB\-\-output\-target=\fR\fIbfdname\fR]
[\fB\-s\fR|\fB\-\-strip\-all\fR]
[\fB\-S\fR|\fB\-g\fR|\fB\-d\fR|\fB\-\-strip\-debug\fR]
[\fB\-\-strip\-dwo\fR]
[\fB\-K\fR \fIsymbolname\fR |\fB\-\-keep\-symbol=\fR\fIsymbolname\fR]
[\fB\-N\fR \fIsymbolname\fR |\fB\-\-strip\-symbol=\fR\fIsymbolname\fR]
[\fB\-w\fR|\fB\-\-wildcard\fR]
[\fB\-x\fR|\fB\-\-discard\-all\fR] [\fB\-X\fR |\fB\-\-discard\-locals\fR]
[\fB\-R\fR \fIsectionname\fR |\fB\-\-remove\-section=\fR\fIsectionname\fR]
[\fB\-o\fR \fIfile\fR] [\fB\-p\fR|\fB\-\-preserve\-dates\fR]
[\fB\-D\fR|\fB\-\-enable\-deterministic\-archives\fR]
[\fB\-U\fR|\fB\-\-disable\-deterministic\-archives\fR]
[\fB\-\-keep\-file\-symbols\fR]
[\fB\-\-only\-keep\-debug\fR]
[\fB\-v\fR |\fB\-\-verbose\fR] [\fB\-V\fR|\fB\-\-version\fR]
[\fB\-\-help\fR] [\fB\-\-info\fR]
\fIobjfile\fR...
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\s-1GNU\s0 \fBstrip\fR discards all symbols from object files
\&\fIobjfile\fR. The list of object files may include archives.
At least one object file must be given.
.PP
\&\fBstrip\fR modifies the files named in its argument,
rather than writing modified copies under different names.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-F\fR \fIbfdname\fR" 4
.IX Item "-F bfdname"
.PD 0
.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
.IX Item "--target=bfdname"
.PD
Treat the original \fIobjfile\fR as a file with the object
code format \fIbfdname\fR, and rewrite it in the same format.
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
Show a summary of the options to \fBstrip\fR and exit.
.IP "\fB\-\-info\fR" 4
.IX Item "--info"
Display a list showing all architectures and object formats available.
.IP "\fB\-I\fR \fIbfdname\fR" 4
.IX Item "-I bfdname"
.PD 0
.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
.IX Item "--input-target=bfdname"
.PD
Treat the original \fIobjfile\fR as a file with the object
code format \fIbfdname\fR.
.IP "\fB\-O\fR \fIbfdname\fR" 4
.IX Item "-O bfdname"
.PD 0
.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
.IX Item "--output-target=bfdname"
.PD
Replace \fIobjfile\fR with a file in the output format \fIbfdname\fR.
.IP "\fB\-R\fR \fIsectionname\fR" 4
.IX Item "-R sectionname"
.PD 0
.IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4
.IX Item "--remove-section=sectionname"
.PD
Remove any section named \fIsectionname\fR from the output file. This
option may be given more than once. Note that using this option
inappropriately may make the output file unusable.
.IP "\fB\-s\fR" 4
.IX Item "-s"
.PD 0
.IP "\fB\-\-strip\-all\fR" 4
.IX Item "--strip-all"
.PD
Remove all symbols.
.IP "\fB\-g\fR" 4
.IX Item "-g"
.PD 0
.IP "\fB\-S\fR" 4
.IX Item "-S"
.IP "\fB\-d\fR" 4
.IX Item "-d"
.IP "\fB\-\-strip\-debug\fR" 4
.IX Item "--strip-debug"
.PD
Remove debugging symbols only.
.IP "\fB\-\-strip\-dwo\fR" 4
.IX Item "--strip-dwo"
Remove the contents of all \s-1DWARF\s0 .dwo sections, leaving the
remaining debugging sections and all symbols intact.
See the description of this option in the \fBobjcopy\fR section
for more information.
.IP "\fB\-\-strip\-unneeded\fR" 4
.IX Item "--strip-unneeded"
Remove all symbols that are not needed for relocation processing.
.IP "\fB\-K\fR \fIsymbolname\fR" 4
.IX Item "-K symbolname"
.PD 0
.IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4
.IX Item "--keep-symbol=symbolname"
.PD
When stripping symbols, keep symbol \fIsymbolname\fR even if it would
normally be stripped. This option may be given more than once.
.IP "\fB\-N\fR \fIsymbolname\fR" 4
.IX Item "-N symbolname"
.PD 0
.IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4
.IX Item "--strip-symbol=symbolname"
.PD
Remove symbol \fIsymbolname\fR from the source file. This option may be
given more than once, and may be combined with strip options other than
\&\fB\-K\fR.
.IP "\fB\-o\fR \fIfile\fR" 4
.IX Item "-o file"
Put the stripped output in \fIfile\fR, rather than replacing the
existing file. When this argument is used, only one \fIobjfile\fR
argument may be specified.
.IP "\fB\-p\fR" 4
.IX Item "-p"
.PD 0
.IP "\fB\-\-preserve\-dates\fR" 4
.IX Item "--preserve-dates"
.PD
Preserve the access and modification dates of the file.
.IP "\fB\-D\fR" 4
.IX Item "-D"
.PD 0
.IP "\fB\-\-enable\-deterministic\-archives\fR" 4
.IX Item "--enable-deterministic-archives"
.PD
Operate in \fIdeterministic\fR mode. When copying archive members
and writing the archive index, use zero for UIDs, GIDs, timestamps,
and use consistent file modes for all files.
.Sp
If \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR, then this mode is on by default.
It can be disabled with the \fB\-U\fR option, below.
.IP "\fB\-U\fR" 4
.IX Item "-U"
.PD 0
.IP "\fB\-\-disable\-deterministic\-archives\fR" 4
.IX Item "--disable-deterministic-archives"
.PD
Do \fInot\fR operate in \fIdeterministic\fR mode. This is the
inverse of the \fB\-D\fR option, above: when copying archive members
and writing the archive index, use their actual \s-1UID\s0, \s-1GID\s0, timestamp,
and file mode values.
.Sp
This is the default unless \fIbinutils\fR was configured with
\&\fB\-\-enable\-deterministic\-archives\fR.
.IP "\fB\-w\fR" 4
.IX Item "-w"
.PD 0
.IP "\fB\-\-wildcard\fR" 4
.IX Item "--wildcard"
.PD
Permit regular expressions in \fIsymbolname\fRs used in other command
line options. The question mark (?), asterisk (*), backslash (\e) 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:
.Sp
.Vb 1
\& \-w \-K !foo \-K fo*
.Ve
.Sp
would cause strip to only keep symbols that start with the letters
\&\*(L"fo\*(R", but to discard the symbol \*(L"foo\*(R".
.IP "\fB\-x\fR" 4
.IX Item "-x"
.PD 0
.IP "\fB\-\-discard\-all\fR" 4
.IX Item "--discard-all"
.PD
Remove non-global symbols.
.IP "\fB\-X\fR" 4
.IX Item "-X"
.PD 0
.IP "\fB\-\-discard\-locals\fR" 4
.IX Item "--discard-locals"
.PD
Remove compiler-generated local symbols.
(These usually start with \fBL\fR or \fB.\fR.)
.IP "\fB\-\-keep\-file\-symbols\fR" 4
.IX Item "--keep-file-symbols"
When stripping a file, perhaps with \fB\-\-strip\-debug\fR or
\&\fB\-\-strip\-unneeded\fR, retain any symbols specifying source file names,
which would otherwise get stripped.
.IP "\fB\-\-only\-keep\-debug\fR" 4
.IX Item "--only-keep-debug"
Strip a file, removing contents of any sections that would not be
stripped by \fB\-\-strip\-debug\fR and leaving the debugging sections
intact. In \s-1ELF\s0 files, this preserves all note sections in the output.
.Sp
The intention is that this option will be used in conjunction with
\&\fB\-\-add\-gnu\-debuglink\fR to create a two part executable. One a
stripped binary which will occupy less space in \s-1RAM\s0 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:
.RS 4
.IP "1.<Link the executable as normal. Assuming that is is called>" 4
.IX Item "1.<Link the executable as normal. Assuming that is is called>"
\&\f(CW\*(C`foo\*(C'\fR then...
.ie n .IP "1.<Run ""objcopy \-\-only\-keep\-debug foo foo.dbg"" to>" 4
.el .IP "1.<Run \f(CWobjcopy \-\-only\-keep\-debug foo foo.dbg\fR to>" 4
.IX Item "1.<Run objcopy --only-keep-debug foo foo.dbg to>"
create a file containing the debugging info.
.ie n .IP "1.<Run ""objcopy \-\-strip\-debug foo"" to create a>" 4
.el .IP "1.<Run \f(CWobjcopy \-\-strip\-debug foo\fR to create a>" 4
.IX Item "1.<Run objcopy --strip-debug foo to create a>"
stripped executable.
.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.dbg foo"">" 4
.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.dbg foo\fR>" 4
.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.dbg foo>"
to add a link to the debugging info into the stripped executable.
.RE
.RS 4
.Sp
Note\-\-\-the choice of \f(CW\*(C`.dbg\*(C'\fR as an extension for the debug info
file is arbitrary. Also the \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR step is
optional. You could instead do this:
.IP "1.<Link the executable as normal.>" 4
.IX Item "1.<Link the executable as normal.>"
.PD 0
.ie n .IP "1.<Copy ""foo"" to ""foo.full"">" 4
.el .IP "1.<Copy \f(CWfoo\fR to \f(CWfoo.full\fR>" 4
.IX Item "1.<Copy foo to foo.full>"
.ie n .IP "1.<Run ""strip \-\-strip\-debug foo"">" 4
.el .IP "1.<Run \f(CWstrip \-\-strip\-debug foo\fR>" 4
.IX Item "1.<Run strip --strip-debug foo>"
.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.full foo"">" 4
.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.full foo\fR>" 4
.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.full foo>"
.RE
.RS 4
.PD
.Sp
i.e., the file pointed to by the \fB\-\-add\-gnu\-debuglink\fR can be the
full executable. It does not have to be a file created by the
\&\fB\-\-only\-keep\-debug\fR switch.
.Sp
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.
.RE
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Show the version number for \fBstrip\fR.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-verbose\fR" 4
.IX Item "--verbose"
.PD
Verbose output: list all object files modified. In the case of
archives, \fBstrip \-v\fR lists all members of the archive.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,354 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "WINDMC 1"
.TH WINDMC 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
windmc \- generates Windows message resources.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
windmc [options] input-file
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBwindmc\fR 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:
.ie n .IP """h""" 4
.el .IP "\f(CWh\fR" 4
.IX Item "h"
A C header file containing the message definitions.
.ie n .IP """rc""" 4
.el .IP "\f(CWrc\fR" 4
.IX Item "rc"
A resource file compilable by the \fBwindres\fR tool.
.ie n .IP """bin""" 4
.el .IP "\f(CWbin\fR" 4
.IX Item "bin"
One or more binary files containing the resource data for a specific
message language.
.ie n .IP """dbg""" 4
.el .IP "\f(CWdbg\fR" 4
.IX Item "dbg"
A C include file that maps message id's to their symbolic name.
.PP
The exact description of these different formats is available in
documentation from Microsoft.
.PP
When \fBwindmc\fR converts from the \f(CW\*(C`mc\*(C'\fR format to the \f(CW\*(C`bin\*(C'\fR
format, \f(CW\*(C`rc\*(C'\fR, \f(CW\*(C`h\*(C'\fR, and optional \f(CW\*(C`dbg\*(C'\fR it is acting like the
Windows Message Compiler.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-a\fR" 4
.IX Item "-a"
.PD 0
.IP "\fB\-\-ascii_in\fR" 4
.IX Item "--ascii_in"
.PD
Specifies that the input file specified is \s-1ASCII\s0. This is the default
behaviour.
.IP "\fB\-A\fR" 4
.IX Item "-A"
.PD 0
.IP "\fB\-\-ascii_out\fR" 4
.IX Item "--ascii_out"
.PD
Specifies that messages in the output \f(CW\*(C`bin\*(C'\fR files should be in \s-1ASCII\s0
format.
.IP "\fB\-b\fR" 4
.IX Item "-b"
.PD 0
.IP "\fB\-\-binprefix\fR" 4
.IX Item "--binprefix"
.PD
Specifies that \f(CW\*(C`bin\*(C'\fR filenames should have to be prefixed by the
basename of the source file.
.IP "\fB\-c\fR" 4
.IX Item "-c"
.PD 0
.IP "\fB\-\-customflag\fR" 4
.IX Item "--customflag"
.PD
Sets the customer bit in all message id's.
.IP "\fB\-C\fR \fIcodepage\fR" 4
.IX Item "-C codepage"
.PD 0
.IP "\fB\-\-codepage_in\fR \fIcodepage\fR" 4
.IX Item "--codepage_in codepage"
.PD
Sets the default codepage to be used to convert input file to \s-1UTF16\s0. The
default is ocdepage 1252.
.IP "\fB\-d\fR" 4
.IX Item "-d"
.PD 0
.IP "\fB\-\-decimal_values\fR" 4
.IX Item "--decimal_values"
.PD
Outputs the constants in the header file in decimal. Default is using
hexadecimal output.
.IP "\fB\-e\fR \fIext\fR" 4
.IX Item "-e ext"
.PD 0
.IP "\fB\-\-extension\fR \fIext\fR" 4
.IX Item "--extension ext"
.PD
The extension for the header file. The default is .h extension.
.IP "\fB\-F\fR \fItarget\fR" 4
.IX Item "-F target"
.PD 0
.IP "\fB\-\-target\fR \fItarget\fR" 4
.IX Item "--target target"
.PD
Specify the \s-1BFD\s0 format to use for a bin file as output. This
is a \s-1BFD\s0 target name; you can use the \fB\-\-help\fR option to see a list
of supported targets. Normally \fBwindmc\fR will use the default
format, which is the first one listed by the \fB\-\-help\fR option.
.IP "\fB\-h\fR \fIpath\fR" 4
.IX Item "-h path"
.PD 0
.IP "\fB\-\-headerdir\fR \fIpath\fR" 4
.IX Item "--headerdir path"
.PD
The target directory of the generated header file. The default is the
current directory.
.IP "\fB\-H\fR" 4
.IX Item "-H"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Displays a list of command line options and then exits.
.IP "\fB\-m\fR \fIcharacters\fR" 4
.IX Item "-m characters"
.PD 0
.IP "\fB\-\-maxlength\fR \fIcharacters\fR" 4
.IX Item "--maxlength characters"
.PD
Instructs \fBwindmc\fR to generate a warning if the length
of any message exceeds the number specified.
.IP "\fB\-n\fR" 4
.IX Item "-n"
.PD 0
.IP "\fB\-\-nullterminate\fR" 4
.IX Item "--nullterminate"
.PD
Terminate message text in \f(CW\*(C`bin\*(C'\fR files by zero. By default they are
terminated by \s-1CR/LF\s0.
.IP "\fB\-o\fR" 4
.IX Item "-o"
.PD 0
.IP "\fB\-\-hresult_use\fR" 4
.IX Item "--hresult_use"
.PD
Not yet implemented. Instructs \f(CW\*(C`windmc\*(C'\fR to generate an \s-1OLE2\s0 header
file, using \s-1HRESULT\s0 definitions. Status codes are used if the flag is not
specified.
.IP "\fB\-O\fR \fIcodepage\fR" 4
.IX Item "-O codepage"
.PD 0
.IP "\fB\-\-codepage_out\fR \fIcodepage\fR" 4
.IX Item "--codepage_out codepage"
.PD
Sets the default codepage to be used to output text files. The default
is ocdepage 1252.
.IP "\fB\-r\fR \fIpath\fR" 4
.IX Item "-r path"
.PD 0
.IP "\fB\-\-rcdir\fR \fIpath\fR" 4
.IX Item "--rcdir path"
.PD
The target directory for the generated \f(CW\*(C`rc\*(C'\fR script and the generated
\&\f(CW\*(C`bin\*(C'\fR files that the resource compiler script includes. The default
is the current directory.
.IP "\fB\-u\fR" 4
.IX Item "-u"
.PD 0
.IP "\fB\-\-unicode_in\fR" 4
.IX Item "--unicode_in"
.PD
Specifies that the input file is \s-1UTF16\s0.
.IP "\fB\-U\fR" 4
.IX Item "-U"
.PD 0
.IP "\fB\-\-unicode_out\fR" 4
.IX Item "--unicode_out"
.PD
Specifies that messages in the output \f(CW\*(C`bin\*(C'\fR file should be in \s-1UTF16\s0
format. This is the default behaviour.
.IP "\fB\-v\fR" 4
.IX Item "-v"
.PD 0
.IP "\fB\-\-verbose\fR" 4
.IX Item "--verbose"
.PD
Enable verbose mode.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Prints the version number for \fBwindmc\fR.
.IP "\fB\-x\fR \fIpath\fR" 4
.IX Item "-x path"
.PD 0
.IP "\fB\-\-xdgb\fR \fIpath\fR" 4
.IX Item "--xdgb path"
.PD
The path of the \f(CW\*(C`dbg\*(C'\fR C include file that maps message id's to the
symbolic name. No such file is generated without specifying the switch.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,362 @@
.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "WINDRES 1"
.TH WINDRES 1 "2013-03-25" "binutils-2.23.2" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
windres \- manipulate Windows resources.
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
windres [options] [input\-file] [output\-file]
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fBwindres\fR reads resources from an input file and copies them into
an output file. Either file may be in one of three formats:
.ie n .IP """rc""" 4
.el .IP "\f(CWrc\fR" 4
.IX Item "rc"
A text format read by the Resource Compiler.
.ie n .IP """res""" 4
.el .IP "\f(CWres\fR" 4
.IX Item "res"
A binary format generated by the Resource Compiler.
.ie n .IP """coff""" 4
.el .IP "\f(CWcoff\fR" 4
.IX Item "coff"
A \s-1COFF\s0 object or executable.
.PP
The exact description of these different formats is available in
documentation from Microsoft.
.PP
When \fBwindres\fR converts from the \f(CW\*(C`rc\*(C'\fR format to the \f(CW\*(C`res\*(C'\fR
format, it is acting like the Windows Resource Compiler. When
\&\fBwindres\fR converts from the \f(CW\*(C`res\*(C'\fR format to the \f(CW\*(C`coff\*(C'\fR
format, it is acting like the Windows \f(CW\*(C`CVTRES\*(C'\fR program.
.PP
When \fBwindres\fR generates an \f(CW\*(C`rc\*(C'\fR file, the output is similar
but not identical to the format expected for the input. When an input
\&\f(CW\*(C`rc\*(C'\fR file refers to an external filename, an output \f(CW\*(C`rc\*(C'\fR file
will instead include the file contents.
.PP
If the input or output format is not specified, \fBwindres\fR will
guess based on the file name, or, for the input file, the file contents.
A file with an extension of \fI.rc\fR will be treated as an \f(CW\*(C`rc\*(C'\fR
file, a file with an extension of \fI.res\fR will be treated as a
\&\f(CW\*(C`res\*(C'\fR file, and a file with an extension of \fI.o\fR or
\&\fI.exe\fR will be treated as a \f(CW\*(C`coff\*(C'\fR file.
.PP
If no output file is specified, \fBwindres\fR will print the resources
in \f(CW\*(C`rc\*(C'\fR format to standard output.
.PP
The normal use is for you to write an \f(CW\*(C`rc\*(C'\fR file, use \fBwindres\fR
to convert it to a \s-1COFF\s0 object file, and then link the \s-1COFF\s0 file into
your application. This will make the resources described in the
\&\f(CW\*(C`rc\*(C'\fR file available to Windows.
.SH "OPTIONS"
.IX Header "OPTIONS"
.IP "\fB\-i\fR \fIfilename\fR" 4
.IX Item "-i filename"
.PD 0
.IP "\fB\-\-input\fR \fIfilename\fR" 4
.IX Item "--input filename"
.PD
The name of the input file. If this option is not used, then
\&\fBwindres\fR will use the first non-option argument as the input file
name. If there are no non-option arguments, then \fBwindres\fR will
read from standard input. \fBwindres\fR can not read a \s-1COFF\s0 file from
standard input.
.IP "\fB\-o\fR \fIfilename\fR" 4
.IX Item "-o filename"
.PD 0
.IP "\fB\-\-output\fR \fIfilename\fR" 4
.IX Item "--output filename"
.PD
The name of the output file. If this option is not used, then
\&\fBwindres\fR 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 \fBwindres\fR will write to standard output.
\&\fBwindres\fR can not write a \s-1COFF\s0 file to standard output. Note,
for compatibility with \fBrc\fR the option \fB\-fo\fR is also
accepted, but its use is not recommended.
.IP "\fB\-J\fR \fIformat\fR" 4
.IX Item "-J format"
.PD 0
.IP "\fB\-\-input\-format\fR \fIformat\fR" 4
.IX Item "--input-format format"
.PD
The input format to read. \fIformat\fR may be \fBres\fR, \fBrc\fR, or
\&\fBcoff\fR. If no input format is specified, \fBwindres\fR will
guess, as described above.
.IP "\fB\-O\fR \fIformat\fR" 4
.IX Item "-O format"
.PD 0
.IP "\fB\-\-output\-format\fR \fIformat\fR" 4
.IX Item "--output-format format"
.PD
The output format to generate. \fIformat\fR may be \fBres\fR,
\&\fBrc\fR, or \fBcoff\fR. If no output format is specified,
\&\fBwindres\fR will guess, as described above.
.IP "\fB\-F\fR \fItarget\fR" 4
.IX Item "-F target"
.PD 0
.IP "\fB\-\-target\fR \fItarget\fR" 4
.IX Item "--target target"
.PD
Specify the \s-1BFD\s0 format to use for a \s-1COFF\s0 file as input or output. This
is a \s-1BFD\s0 target name; you can use the \fB\-\-help\fR option to see a list
of supported targets. Normally \fBwindres\fR will use the default
format, which is the first one listed by the \fB\-\-help\fR option.
.IP "\fB\-\-preprocessor\fR \fIprogram\fR" 4
.IX Item "--preprocessor program"
When \fBwindres\fR reads an \f(CW\*(C`rc\*(C'\fR 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 \f(CW\*(C`gcc \-E \-xc\-header \-DRC_INVOKED\*(C'\fR.
.IP "\fB\-\-preprocessor\-arg\fR \fIoption\fR" 4
.IX Item "--preprocessor-arg option"
When \fBwindres\fR reads an \f(CW\*(C`rc\*(C'\fR file, it runs it through
the C preprocessor first. This option may be used to specify additional
text to be passed to preprocessor on its command line.
This option can be used multiple times to add multiple options to the
preprocessor command line.
.IP "\fB\-I\fR \fIdirectory\fR" 4
.IX Item "-I directory"
.PD 0
.IP "\fB\-\-include\-dir\fR \fIdirectory\fR" 4
.IX Item "--include-dir directory"
.PD
Specify an include directory to use when reading an \f(CW\*(C`rc\*(C'\fR file.
\&\fBwindres\fR will pass this to the preprocessor as an \fB\-I\fR
option. \fBwindres\fR will also search this directory when looking for
files named in the \f(CW\*(C`rc\*(C'\fR file. If the argument passed to this command
matches any of the supported \fIformats\fR (as described in the \fB\-J\fR
option), it will issue a deprecation warning, and behave just like the
\&\fB\-J\fR option. New programs should not use this behaviour. If a
directory happens to match a \fIformat\fR, simple prefix it with \fB./\fR
to disable the backward compatibility.
.IP "\fB\-D\fR \fItarget\fR" 4
.IX Item "-D target"
.PD 0
.IP "\fB\-\-define\fR \fIsym\fR\fB[=\fR\fIval\fR\fB]\fR" 4
.IX Item "--define sym[=val]"
.PD
Specify a \fB\-D\fR option to pass to the preprocessor when reading an
\&\f(CW\*(C`rc\*(C'\fR file.
.IP "\fB\-U\fR \fItarget\fR" 4
.IX Item "-U target"
.PD 0
.IP "\fB\-\-undefine\fR \fIsym\fR" 4
.IX Item "--undefine sym"
.PD
Specify a \fB\-U\fR option to pass to the preprocessor when reading an
\&\f(CW\*(C`rc\*(C'\fR file.
.IP "\fB\-r\fR" 4
.IX Item "-r"
Ignored for compatibility with rc.
.IP "\fB\-v\fR" 4
.IX Item "-v"
Enable verbose mode. This tells you what the preprocessor is if you
didn't specify one.
.IP "\fB\-c\fR \fIval\fR" 4
.IX Item "-c val"
.PD 0
.IP "\fB\-\-codepage\fR \fIval\fR" 4
.IX Item "--codepage val"
.PD
Specify the default codepage to use when reading an \f(CW\*(C`rc\*(C'\fR file.
\&\fIval\fR should be a hexadecimal prefixed by \fB0x\fR or decimal
codepage code. The valid range is from zero up to 0xffff, but the
validity of the codepage is host and configuration dependent.
.IP "\fB\-l\fR \fIval\fR" 4
.IX Item "-l val"
.PD 0
.IP "\fB\-\-language\fR \fIval\fR" 4
.IX Item "--language val"
.PD
Specify the default language to use when reading an \f(CW\*(C`rc\*(C'\fR file.
\&\fIval\fR should be a hexadecimal language code. The low eight bits are
the language, and the high eight bits are the sublanguage.
.IP "\fB\-\-use\-temp\-file\fR" 4
.IX Item "--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).
.IP "\fB\-\-no\-use\-temp\-file\fR" 4
.IX Item "--no-use-temp-file"
Use popen, not a temporary file, to read the output of the preprocessor.
This is the default behaviour.
.IP "\fB\-h\fR" 4
.IX Item "-h"
.PD 0
.IP "\fB\-\-help\fR" 4
.IX Item "--help"
.PD
Prints a usage summary.
.IP "\fB\-V\fR" 4
.IX Item "-V"
.PD 0
.IP "\fB\-\-version\fR" 4
.IX Item "--version"
.PD
Prints the version number for \fBwindres\fR.
.IP "\fB\-\-yydebug\fR" 4
.IX Item "--yydebug"
If \fBwindres\fR is compiled with \f(CW\*(C`YYDEBUG\*(C'\fR defined as \f(CW1\fR,
this will turn on parser debugging.
.IP "\fB@\fR\fIfile\fR" 4
.IX Item "@file"
Read command-line options from \fIfile\fR. The options read are
inserted in place of the original @\fIfile\fR option. If \fIfile\fR
does not exist, or cannot be read, then the option will be treated
literally, and not removed.
.Sp
Options in \fIfile\fR are separated by whitespace. A whitespace
character may be included in an option by surrounding the entire
option in either single or double quotes. Any character (including a
backslash) may be included by prefixing the character to be included
with a backslash. The \fIfile\fR may itself contain additional
@\fIfile\fR options; any such options will be processed recursively.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
the Info entries for \fIbinutils\fR.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
2010, 2011, 2012
Free Software Foundation, Inc.
.PP
Permission is granted to copy, distribute and/or modify this document
under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled \*(L"\s-1GNU\s0 Free Documentation License\*(R".

View file

@ -0,0 +1,192 @@
.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "FSF-FUNDING 7"
.TH FSF-FUNDING 7 "2014-02-28" "gcc-4.8.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
fsf\-funding \- Funding Free Software
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
.Sh "Funding Free Software"
.IX Subsection "Funding Free Software"
If you want to have more free software a few years from now, it makes
sense for you to help encourage people to contribute funds for its
development. The most effective approach known is to encourage
commercial redistributors to donate.
.PP
Users of free software systems can boost the pace of development by
encouraging for-a-fee distributors to donate part of their selling price
to free software developers\-\-\-the Free Software Foundation, and others.
.PP
The way to convince distributors to do this is to demand it and expect
it from them. So when you compare distributors, judge them partly by
how much they give to free software development. Show distributors
they must compete to be the one who gives the most.
.PP
To make this approach work, you must insist on numbers that you can
compare, such as, \*(L"We will donate ten dollars to the Frobnitz project
for each disk sold.\*(R" Don't be satisfied with a vague promise, such as
\&\*(L"A portion of the profits are donated,\*(R" since it doesn't give a basis
for comparison.
.PP
Even a precise fraction \*(L"of the profits from this disk\*(R" is not very
meaningful, since creative accounting and unrelated business decisions
can greatly alter what fraction of the sales price counts as profit.
If the price you pay is \f(CW$50\fR, ten percent of the profit is probably
less than a dollar; it might be a few cents, or nothing at all.
.PP
Some redistributors do development work themselves. This is useful too;
but to keep everyone honest, you need to inquire how much they do, and
what kind. Some kinds of development make much more long-term
difference than others. For example, maintaining a separate version of
a program contributes very little; maintaining the standard version of a
program for the whole community contributes much. Easy new ports
contribute little, since someone else would surely do them; difficult
ports such as adding a new \s-1CPU\s0 to the \s-1GNU\s0 Compiler Collection contribute more;
major new features or packages contribute the most.
.PP
By establishing the idea that supporting further development is \*(L"the
proper thing to do\*(R" when distributing free software for a fee, we can
assure a steady flow of resources into making more free software.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIgpl\fR\|(7), \fIgfdl\fR\|(7).
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 1994 Free Software Foundation, Inc.
Verbatim copying and redistribution of this section is permitted
without royalty; alteration is not permitted.

View file

@ -0,0 +1,645 @@
.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "GFDL 7"
.TH GFDL 7 "2014-02-28" "gcc-4.8.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
gfdl \- GNU Free Documentation License
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
.Sh "\s-1GNU\s0 Free Documentation License"
.IX Subsection "GNU Free Documentation License"
.Sh "Version 1.3, 3 November 2008"
.IX Subsection "Version 1.3, 3 November 2008"
.Vb 2
\& Copyright (c) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
\& E<lt>B<http://fsf.org/>E<gt>
\&
\& Everyone is permitted to copy and distribute verbatim copies
\& of this license document, but changing it is not allowed.
.Ve
.IP "0." 4
.IX Item "0."
\&\s-1PREAMBLE\s0
.Sp
The purpose of this License is to make a manual, textbook, or other
functional and useful document \fIfree\fR in the sense of freedom: to
assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially.
Secondarily, this License preserves for the author and publisher a way
to get credit for their work, while not being considered responsible
for modifications made by others.
.Sp
This License is a kind of \*(L"copyleft\*(R", which means that derivative
works of the document must themselves be free in the same sense. It
complements the \s-1GNU\s0 General Public License, which is a copyleft
license designed for free software.
.Sp
We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free
program should come with manuals providing the same freedoms that the
software does. But this License is not limited to software manuals;
it can be used for any textual work, regardless of subject matter or
whether it is published as a printed book. We recommend this License
principally for works whose purpose is instruction or reference.
.IP "1." 4
.IX Item "1."
\&\s-1APPLICABILITY\s0 \s-1AND\s0 \s-1DEFINITIONS\s0
.Sp
This License applies to any manual or other work, in any medium, that
contains a notice placed by the copyright holder saying it can be
distributed under the terms of this License. Such a notice grants a
world-wide, royalty-free license, unlimited in duration, to use that
work under the conditions stated herein. The \*(L"Document\*(R", below,
refers to any such manual or work. Any member of the public is a
licensee, and is addressed as \*(L"you\*(R". You accept the license if you
copy, modify or distribute the work in a way requiring permission
under copyright law.
.Sp
A \*(L"Modified Version\*(R" of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
.Sp
A \*(L"Secondary Section\*(R" is a named appendix or a front-matter section
of the Document that deals exclusively with the relationship of the
publishers or authors of the Document to the Document's overall
subject (or to related matters) and contains nothing that could fall
directly within that overall subject. (Thus, if the Document is in
part a textbook of mathematics, a Secondary Section may not explain
any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding
them.
.Sp
The \*(L"Invariant Sections\*(R" are certain Secondary Sections whose titles
are designated, as being those of Invariant Sections, in the notice
that says that the Document is released under this License. If a
section does not fit the above definition of Secondary then it is not
allowed to be designated as Invariant. The Document may contain zero
Invariant Sections. If the Document does not identify any Invariant
Sections then there are none.
.Sp
The \*(L"Cover Texts\*(R" are certain short passages of text that are listed,
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
the Document is released under this License. A Front-Cover Text may
be at most 5 words, and a Back-Cover Text may be at most 25 words.
.Sp
A \*(L"Transparent\*(R" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the
general public, that is suitable for revising the document
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or
for automatic translation to a variety of formats suitable for input
to text formatters. A copy made in an otherwise Transparent file
format whose markup, or absence of markup, has been arranged to thwart
or discourage subsequent modification by readers is not Transparent.
An image format is not Transparent if used for any substantial amount
of text. A copy that is not \*(L"Transparent\*(R" is called \*(L"Opaque\*(R".
.Sp
Examples of suitable formats for Transparent copies include plain
\&\s-1ASCII\s0 without markup, Texinfo input format, LaTeX input
format, \s-1SGML\s0 or \s-1XML\s0 using a publicly available
\&\s-1DTD\s0, and standard-conforming simple \s-1HTML\s0,
PostScript or \s-1PDF\s0 designed for human modification. Examples
of transparent image formats include \s-1PNG\s0, \s-1XCF\s0 and
\&\s-1JPG\s0. Opaque formats include proprietary formats that can be
read and edited only by proprietary word processors, \s-1SGML\s0 or
\&\s-1XML\s0 for which the \s-1DTD\s0 and/or processing tools are
not generally available, and the machine-generated \s-1HTML\s0,
PostScript or \s-1PDF\s0 produced by some word processors for
output purposes only.
.Sp
The \*(L"Title Page\*(R" means, for a printed book, the title page itself,
plus such following pages as are needed to hold, legibly, the material
this License requires to appear in the title page. For works in
formats which do not have any title page as such, \*(L"Title Page\*(R" means
the text near the most prominent appearance of the work's title,
preceding the beginning of the body of the text.
.Sp
The \*(L"publisher\*(R" means any person or entity that distributes copies
of the Document to the public.
.Sp
A section \*(L"Entitled \s-1XYZ\s0\*(R" means a named subunit of the Document whose
title either is precisely \s-1XYZ\s0 or contains \s-1XYZ\s0 in parentheses following
text that translates \s-1XYZ\s0 in another language. (Here \s-1XYZ\s0 stands for a
specific section name mentioned below, such as \*(L"Acknowledgements\*(R",
\&\*(L"Dedications\*(R", \*(L"Endorsements\*(R", or \*(L"History\*(R".) To \*(L"Preserve the Title\*(R"
of such a section when you modify the Document means that it remains a
section \*(L"Entitled \s-1XYZ\s0\*(R" according to this definition.
.Sp
The Document may include Warranty Disclaimers next to the notice which
states that this License applies to the Document. These Warranty
Disclaimers are considered to be included by reference in this
License, but only as regards disclaiming warranties: any other
implication that these Warranty Disclaimers may have is void and has
no effect on the meaning of this License.
.IP "2." 4
.IX Item "2."
\&\s-1VERBATIM\s0 \s-1COPYING\s0
.Sp
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies
to the Document are reproduced in all copies, and that you add no other
conditions whatsoever to those of this License. You may not use
technical measures to obstruct or control the reading or further
copying of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
.Sp
You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
.IP "3." 4
.IX Item "3."
\&\s-1COPYING\s0 \s-1IN\s0 \s-1QUANTITY\s0
.Sp
If you publish printed copies (or copies in media that commonly have
printed covers) of the Document, numbering more than 100, and the
Document's license notice requires Cover Texts, you must enclose the
copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify
you as the publisher of these copies. The front cover must present
the full title with all words of the title equally prominent and
visible. You may add other material on the covers in addition.
Copying with changes limited to the covers, as long as they preserve
the title of the Document and satisfy these conditions, can be treated
as verbatim copying in other respects.
.Sp
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
.Sp
If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy
a computer-network location from which the general network-using
public has access to download using public-standard network protocols
a complete Transparent copy of the Document, free of added material.
If you use the latter option, you must take reasonably prudent steps,
when you begin distribution of Opaque copies in quantity, to ensure
that this Transparent copy will remain thus accessible at the stated
location until at least one year after the last time you distribute an
Opaque copy (directly or through your agents or retailers) of that
edition to the public.
.Sp
It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give
them a chance to provide you with an updated version of the Document.
.IP "4." 4
.IX Item "4."
\&\s-1MODIFICATIONS\s0
.Sp
You may copy and distribute a Modified Version of the Document under
the conditions of sections 2 and 3 above, provided that you release
the Modified Version under precisely this License, with the Modified
Version filling the role of the Document, thus licensing distribution
and modification of the Modified Version to whoever possesses a copy
of it. In addition, you must do these things in the Modified Version:
.RS 4
.IP "A." 4
.IX Item "A."
Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions
(which should, if there were any, be listed in the History section
of the Document). You may use the same title as a previous version
if the original publisher of that version gives permission.
.IP "B." 4
.IX Item "B."
List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified
Version, together with at least five of the principal authors of the
Document (all of its principal authors, if it has fewer than five),
unless they release you from this requirement.
.IP "C." 4
.IX Item "C."
State on the Title page the name of the publisher of the
Modified Version, as the publisher.
.IP "D." 4
.IX Item "D."
Preserve all the copyright notices of the Document.
.IP "E." 4
.IX Item "E."
Add an appropriate copyright notice for your modifications
adjacent to the other copyright notices.
.IP "F." 4
.IX Item "F."
Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the
terms of this License, in the form shown in the Addendum below.
.IP "G." 4
.IX Item "G."
Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document's license notice.
.IP "H." 4
.IX Item "H."
Include an unaltered copy of this License.
.IP "I." 4
.IX Item "I."
Preserve the section Entitled \*(L"History\*(R", Preserve its Title, and add
to it an item stating at least the title, year, new authors, and
publisher of the Modified Version as given on the Title Page. If
there is no section Entitled \*(L"History\*(R" in the Document, create one
stating the title, year, authors, and publisher of the Document as
given on its Title Page, then add an item describing the Modified
Version as stated in the previous sentence.
.IP "J." 4
.IX Item "J."
Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise
the network locations given in the Document for previous versions
it was based on. These may be placed in the \*(L"History\*(R" section.
You may omit a network location for a work that was published at
least four years before the Document itself, or if the original
publisher of the version it refers to gives permission.
.IP "K." 4
.IX Item "K."
For any section Entitled \*(L"Acknowledgements\*(R" or \*(L"Dedications\*(R", Preserve
the Title of the section, and preserve in the section all the
substance and tone of each of the contributor acknowledgements and/or
dedications given therein.
.IP "L." 4
.IX Item "L."
Preserve all the Invariant Sections of the Document,
unaltered in their text and in their titles. Section numbers
or the equivalent are not considered part of the section titles.
.IP "M." 4
.IX Item "M."
Delete any section Entitled \*(L"Endorsements\*(R". Such a section
may not be included in the Modified Version.
.IP "N." 4
.IX Item "N."
Do not retitle any existing section to be Entitled \*(L"Endorsements\*(R" or
to conflict in title with any Invariant Section.
.IP "O." 4
.IX Item "O."
Preserve any Warranty Disclaimers.
.RE
.RS 4
.Sp
If the Modified Version includes new front-matter sections or
appendices that qualify as Secondary Sections and contain no material
copied from the Document, you may at your option designate some or all
of these sections as invariant. To do this, add their titles to the
list of Invariant Sections in the Modified Version's license notice.
These titles must be distinct from any other section titles.
.Sp
You may add a section Entitled \*(L"Endorsements\*(R", provided it contains
nothing but endorsements of your Modified Version by various
parties\-\-\-for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
standard.
.Sp
You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of
Front-Cover Text and one of Back-Cover Text may be added by (or
through arrangements made by) any one entity. If the Document already
includes a cover text for the same cover, previously added by you or
by arrangement made by the same entity you are acting on behalf of,
you may not add another; but you may replace the old one, on explicit
permission from the previous publisher that added the old one.
.Sp
The author(s) and publisher(s) of the Document do not by this License
give permission to use their names for publicity for or to assert or
imply endorsement of any Modified Version.
.RE
.IP "5." 4
.IX Item "5."
\&\s-1COMBINING\s0 \s-1DOCUMENTS\s0
.Sp
You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its
license notice, and that you preserve all their Warranty Disclaimers.
.Sp
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by
adding at the end of it, in parentheses, the name of the original
author or publisher of that section if known, or else a unique number.
Make the same adjustment to the section titles in the list of
Invariant Sections in the license notice of the combined work.
.Sp
In the combination, you must combine any sections Entitled \*(L"History\*(R"
in the various original documents, forming one section Entitled
\&\*(L"History\*(R"; likewise combine any sections Entitled \*(L"Acknowledgements\*(R",
and any sections Entitled \*(L"Dedications\*(R". You must delete all
sections Entitled \*(L"Endorsements.\*(R"
.IP "6." 4
.IX Item "6."
\&\s-1COLLECTIONS\s0 \s-1OF\s0 \s-1DOCUMENTS\s0
.Sp
You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this
License in the various documents with a single copy that is included in
the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
.Sp
You may extract a single document from such a collection, and distribute
it individually under this License, provided you insert a copy of this
License into the extracted document, and follow this License in all
other respects regarding verbatim copying of that document.
.IP "7." 4
.IX Item "7."
\&\s-1AGGREGATION\s0 \s-1WITH\s0 \s-1INDEPENDENT\s0 \s-1WORKS\s0
.Sp
A compilation of the Document or its derivatives with other separate
and independent documents or works, in or on a volume of a storage or
distribution medium, is called an \*(L"aggregate\*(R" if the copyright
resulting from the compilation is not used to limit the legal rights
of the compilation's users beyond what the individual works permit.
When the Document is included in an aggregate, this License does not
apply to the other works in the aggregate which are not themselves
derivative works of the Document.
.Sp
If the Cover Text requirement of section 3 is applicable to these
copies of the Document, then if the Document is less than one half of
the entire aggregate, the Document's Cover Texts may be placed on
covers that bracket the Document within the aggregate, or the
electronic equivalent of covers if the Document is in electronic form.
Otherwise they must appear on printed covers that bracket the whole
aggregate.
.IP "8." 4
.IX Item "8."
\&\s-1TRANSLATION\s0
.Sp
Translation is considered a kind of modification, so you may
distribute translations of the Document under the terms of section 4.
Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include
translations of some or all Invariant Sections in addition to the
original versions of these Invariant Sections. You may include a
translation of this License, and all the license notices in the
Document, and any Warranty Disclaimers, provided that you also include
the original English version of this License and the original versions
of those notices and disclaimers. In case of a disagreement between
the translation and the original version of this License or a notice
or disclaimer, the original version will prevail.
.Sp
If a section in the Document is Entitled \*(L"Acknowledgements\*(R",
\&\*(L"Dedications\*(R", or \*(L"History\*(R", the requirement (section 4) to Preserve
its Title (section 1) will typically require changing the actual
title.
.IP "9." 4
.IX Item "9."
\&\s-1TERMINATION\s0
.Sp
You may not copy, modify, sublicense, or distribute the Document
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense, or distribute it is void, and
will automatically terminate your rights under this License.
.Sp
However, if you cease all violation of this License, then your license
from a particular copyright holder is reinstated (a) provisionally,
unless and until the copyright holder explicitly and finally
terminates your license, and (b) permanently, if the copyright holder
fails to notify you of the violation by some reasonable means prior to
60 days after the cessation.
.Sp
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
.Sp
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, receipt of a copy of some or all of the same material does
not give you any rights to use it.
.IP "10." 4
.IX Item "10."
\&\s-1FUTURE\s0 \s-1REVISIONS\s0 \s-1OF\s0 \s-1THIS\s0 \s-1LICENSE\s0
.Sp
The Free Software Foundation may publish new, revised versions
of the \s-1GNU\s0 Free Documentation License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns. See
<\fBhttp://www.gnu.org/copyleft/\fR>.
.Sp
Each version of the License is given a distinguishing version number.
If the Document specifies that a particular numbered version of this
License \*(L"or any later version\*(R" applies to it, you have the option of
following the terms and conditions either of that specified version or
of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
as a draft) by the Free Software Foundation. If the Document
specifies that a proxy can decide which future versions of this
License can be used, that proxy's public statement of acceptance of a
version permanently authorizes you to choose that version for the
Document.
.IP "11." 4
.IX Item "11."
\&\s-1RELICENSING\s0
.Sp
\&\*(L"Massive Multiauthor Collaboration Site\*(R" (or \*(L"\s-1MMC\s0 Site\*(R") means any
World Wide Web server that publishes copyrightable works and also
provides prominent facilities for anybody to edit those works. A
public wiki that anybody can edit is an example of such a server. A
\&\*(L"Massive Multiauthor Collaboration\*(R" (or \*(L"\s-1MMC\s0\*(R") contained in the
site means any set of copyrightable works thus published on the \s-1MMC\s0
site.
.Sp
\&\*(L"CC-BY-SA\*(R" means the Creative Commons Attribution-Share Alike 3.0
license published by Creative Commons Corporation, a not-for-profit
corporation with a principal place of business in San Francisco,
California, as well as future copyleft versions of that license
published by that same organization.
.Sp
\&\*(L"Incorporate\*(R" means to publish or republish a Document, in whole or
in part, as part of another Document.
.Sp
An \s-1MMC\s0 is \*(L"eligible for relicensing\*(R" if it is licensed under this
License, and if all works that were first published under this License
somewhere other than this \s-1MMC\s0, and subsequently incorporated in whole
or in part into the \s-1MMC\s0, (1) had no cover texts or invariant sections,
and (2) were thus incorporated prior to November 1, 2008.
.Sp
The operator of an \s-1MMC\s0 Site may republish an \s-1MMC\s0 contained in the site
under CC-BY-SA on the same site at any time before August 1, 2009,
provided the \s-1MMC\s0 is eligible for relicensing.
.Sh "\s-1ADDENDUM:\s0 How to use this License for your documents"
.IX Subsection "ADDENDUM: How to use this License for your documents"
To use this License in a document you have written, include a copy of
the License in the document and put the following copyright and
license notices just after the title page:
.PP
.Vb 7
\& Copyright (C) <year> <your name>.
\& Permission is granted to copy, distribute and/or modify this document
\& under the terms of the GNU Free Documentation License, Version 1.3
\& or any later version published by the Free Software Foundation;
\& with no Invariant Sections, no Front\-Cover Texts, and no Back\-Cover
\& Texts. A copy of the license is included in the section entitled "GNU
\& Free Documentation License".
.Ve
.PP
If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts,
replace the \*(L"with...Texts.\*(R" line with this:
.PP
.Vb 3
\& with the Invariant Sections being <list their titles>, with
\& the Front\-Cover Texts being <list>, and with the Back\-Cover Texts
\& being <list>.
.Ve
.PP
If you have Invariant Sections without Cover Texts, or some other
combination of the three, merge those two alternatives to suit the
situation.
.PP
If your document contains nontrivial examples of program code, we
recommend releasing these examples in parallel under your choice of
free software license, such as the \s-1GNU\s0 General Public License,
to permit their use in free software.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIgpl\fR\|(7), \fIfsf\-funding\fR\|(7).
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
<\fBhttp://fsf.org/\fR>
.PP
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

View file

@ -0,0 +1,849 @@
.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sh \" Subsection heading
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. \*(C+ will
.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
. ds -- \(*W-
. ds PI pi
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
. ds L" ""
. ds R" ""
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds -- \|\(em\|
. ds PI \(*p
. ds L" ``
. ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. nr % 0
. rr F
.\}
.el \{\
. de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
.if n \{\
. ds #H 0
. ds #V .8m
. ds #F .3m
. ds #[ \f1
. ds #] \fP
.\}
.if t \{\
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. ds #V .6m
. ds #F 0
. ds #[ \&
. ds #] \&
.\}
. \" simple accents for nroff and troff
.if n \{\
. ds ' \&
. ds ` \&
. ds ^ \&
. ds , \&
. ds ~ ~
. ds /
.\}
.if t \{\
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
. ds : e
. ds 8 ss
. ds o a
. ds d- d\h'-1'\(ga
. ds D- D\h'-1'\(hy
. ds th \o'bp'
. ds Th \o'LP'
. ds ae ae
. ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "GPL 7"
.TH GPL 7 "2014-02-28" "gcc-4.8.3" "GNU"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
gpl \- GNU General Public License
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
.Sh "\s-1GNU\s0 General Public License"
.IX Subsection "GNU General Public License"
.Sh "Version 3, 29 June 2007"
.IX Subsection "Version 3, 29 June 2007"
.Vb 1
\& Copyright (c) 2007 Free Software Foundation, Inc. <http://fsf.org/>
\&
\& Everyone is permitted to copy and distribute verbatim copies of this
\& license document, but changing it is not allowed.
.Ve
.Sh "Preamble"
.IX Subsection "Preamble"
The \s-1GNU\s0 General Public License is a free, copyleft license for
software and other kinds of works.
.PP
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the \s-1GNU\s0 General Public License is intended to guarantee your freedom
to share and change all versions of a program\*(--to make sure it remains
free software for all its users. We, the Free Software Foundation,
use the \s-1GNU\s0 General Public License for most of our software; it
applies also to any other work released this way by its authors. You
can apply it to your programs, too.
.PP
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
.PP
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you
have certain responsibilities if you distribute copies of the
software, or if you modify it: responsibilities to respect the freedom
of others.
.PP
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too,
receive or can get the source code. And you must show them these
terms so they know their rights.
.PP
Developers that use the \s-1GNU\s0 \s-1GPL\s0 protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
.PP
For the developers' and authors' protection, the \s-1GPL\s0 clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the \s-1GPL\s0 requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
.PP
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the
manufacturer can do so. This is fundamentally incompatible with the
aim of protecting users' freedom to change the software. The
systematic pattern of such abuse occurs in the area of products for
individuals to use, which is precisely where it is most unacceptable.
Therefore, we have designed this version of the \s-1GPL\s0 to prohibit the
practice for those products. If such problems arise substantially in
other domains, we stand ready to extend this provision to those
domains in future versions of the \s-1GPL\s0, as needed to protect the
freedom of users.
.PP
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish
to avoid the special danger that patents applied to a free program
could make it effectively proprietary. To prevent this, the \s-1GPL\s0
assures that patents cannot be used to render the program non-free.
.PP
The precise terms and conditions for copying, distribution and
modification follow.
.Sh "\s-1TERMS\s0 \s-1AND\s0 \s-1CONDITIONS\s0"
.IX Subsection "TERMS AND CONDITIONS"
.IP "0. Definitions." 4
.IX Item "0. Definitions."
\&\*(L"This License\*(R" refers to version 3 of the \s-1GNU\s0 General Public License.
.Sp
\&\*(L"Copyright\*(R" also means copyright-like laws that apply to other kinds
of works, such as semiconductor masks.
.Sp
\&\*(L"The Program\*(R" refers to any copyrightable work licensed under this
License. Each licensee is addressed as \*(L"you\*(R". \*(L"Licensees\*(R" and
\&\*(L"recipients\*(R" may be individuals or organizations.
.Sp
To \*(L"modify\*(R" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of
an exact copy. The resulting work is called a \*(L"modified version\*(R" of
the earlier work or a work \*(L"based on\*(R" the earlier work.
.Sp
A \*(L"covered work\*(R" means either the unmodified Program or a work based
on the Program.
.Sp
To \*(L"propagate\*(R" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
.Sp
To \*(L"convey\*(R" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user
through a computer network, with no transfer of a copy, is not
conveying.
.Sp
An interactive user interface displays \*(L"Appropriate Legal Notices\*(R" to
the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
.IP "1. Source Code." 4
.IX Item "1. Source Code."
The \*(L"source code\*(R" for a work means the preferred form of the work for
making modifications to it. \*(L"Object code\*(R" means any non-source form
of a work.
.Sp
A \*(L"Standard Interface\*(R" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
.Sp
The \*(L"System Libraries\*(R" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
\&\*(L"Major Component\*(R", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
.Sp
The \*(L"Corresponding Source\*(R" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
.Sp
The Corresponding Source need not include anything that users can
regenerate automatically from other parts of the Corresponding Source.
.Sp
The Corresponding Source for a work in source code form is that same
work.
.IP "2. Basic Permissions." 4
.IX Item "2. Basic Permissions."
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
.Sp
You may make, run and propagate covered works that you do not convey,
without conditions so long as your license otherwise remains in force.
You may convey covered works to others for the sole purpose of having
them make modifications exclusively for you, or provide you with
facilities for running those works, provided that you comply with the
terms of this License in conveying all material for which you do not
control copyright. Those thus making or running the covered works for
you must do so exclusively on your behalf, under your direction and
control, on terms that prohibit them from making any copies of your
copyrighted material outside their relationship with you.
.Sp
Conveying under any other circumstances is permitted solely under the
conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
.IP "3. Protecting Users' Legal Rights From Anti-Circumvention Law." 4
.IX Item "3. Protecting Users' Legal Rights From Anti-Circumvention Law."
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the \s-1WIPO\s0 copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
.Sp
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such
circumvention is effected by exercising rights under this License with
respect to the covered work, and you disclaim any intention to limit
operation or modification of the work as a means of enforcing, against
the work's users, your or third parties' legal rights to forbid
circumvention of technological measures.
.IP "4. Conveying Verbatim Copies." 4
.IX Item "4. Conveying Verbatim Copies."
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
.Sp
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
.IP "5. Conveying Modified Source Versions." 4
.IX Item "5. Conveying Modified Source Versions."
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these
conditions:
.RS 4
.IP "a." 4
.IX Item "a."
The work must carry prominent notices stating that you modified it,
and giving a relevant date.
.IP "b." 4
.IX Item "b."
The work must carry prominent notices stating that it is released
under this License and any conditions added under section 7. This
requirement modifies the requirement in section 4 to \*(L"keep intact all
notices\*(R".
.IP "c." 4
.IX Item "c."
You must license the entire work, as a whole, under this License to
anyone who comes into possession of a copy. This License will
therefore apply, along with any applicable section 7 additional terms,
to the whole of the work, and all its parts, regardless of how they
are packaged. This License gives no permission to license the work in
any other way, but it does not invalidate such permission if you have
separately received it.
.IP "d." 4
.IX Item "d."
If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your work
need not make them do so.
.RE
.RS 4
.Sp
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
\&\*(L"aggregate\*(R" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
.RE
.IP "6. Conveying Non-Source Forms." 4
.IX Item "6. Conveying Non-Source Forms."
You may convey a covered work in object code form under the terms of
sections 4 and 5, provided that you also convey the machine-readable
Corresponding Source under the terms of this License, in one of these
ways:
.RS 4
.IP "a." 4
.IX Item "a."
Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium customarily
used for software interchange.
.IP "b." 4
.IX Item "b."
Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a written
offer, valid for at least three years and valid for as long as you
offer spare parts or customer support for that product model, to give
anyone who possesses the object code either (1) a copy of the
Corresponding Source for all the software in the product that is
covered by this License, on a durable physical medium customarily used
for software interchange, for a price no more than your reasonable
cost of physically performing this conveying of source, or (2) access
to copy the Corresponding Source from a network server at no charge.
.IP "c." 4
.IX Item "c."
Convey individual copies of the object code with a copy of the written
offer to provide the Corresponding Source. This alternative is
allowed only occasionally and noncommercially, and only if you
received the object code with such an offer, in accord with subsection
6b.
.IP "d." 4
.IX Item "d."
Convey the object code by offering access from a designated place
(gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to copy
the object code is a network server, the Corresponding Source may be
on a different server (operated by you or a third party) that supports
equivalent copying facilities, provided you maintain clear directions
next to the object code saying where to find the Corresponding Source.
Regardless of what server hosts the Corresponding Source, you remain
obligated to ensure that it is available for as long as needed to
satisfy these requirements.
.IP "e." 4
.IX Item "e."
Convey the object code using peer-to-peer transmission, provided you
inform other peers where the object code and Corresponding Source of
the work are being offered to the general public at no charge under
subsection 6d.
.RE
.RS 4
.Sp
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
.Sp
A \*(L"User Product\*(R" is either (1) a \*(L"consumer product\*(R", which means any
tangible personal property which is normally used for personal,
family, or household purposes, or (2) anything designed or sold for
incorporation into a dwelling. In determining whether a product is a
consumer product, doubtful cases shall be resolved in favor of
coverage. For a particular product received by a particular user,
\&\*(L"normally used\*(R" refers to a typical or common use of that class of
product, regardless of the status of the particular user or of the way
in which the particular user actually uses, or expects or is expected
to use, the product. A product is a consumer product regardless of
whether the product has substantial commercial, industrial or
non-consumer uses, unless such uses represent the only significant
mode of use of the product.
.Sp
\&\*(L"Installation Information\*(R" for a User Product means any methods,
procedures, authorization keys, or other information required to
install and execute modified versions of a covered work in that User
Product from a modified version of its Corresponding Source. The
information must suffice to ensure that the continued functioning of
the modified object code is in no case prevented or interfered with
solely because modification has been made.
.Sp
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in \s-1ROM\s0).
.Sp
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or
updates for a work that has been modified or installed by the
recipient, or for the User Product in which it has been modified or
installed. Access to a network may be denied when the modification
itself materially and adversely affects the operation of the network
or violates the rules and protocols for communication across the
network.
.Sp
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
.RE
.IP "7. Additional Terms." 4
.IX Item "7. Additional Terms."
\&\*(L"Additional permissions\*(R" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
.Sp
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
.Sp
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders
of that material) supplement the terms of this License with terms:
.RS 4
.IP "a." 4
.IX Item "a."
Disclaiming warranty or limiting liability differently from the terms
of sections 15 and 16 of this License; or
.IP "b." 4
.IX Item "b."
Requiring preservation of specified reasonable legal notices or author
attributions in that material or in the Appropriate Legal Notices
displayed by works containing it; or
.IP "c." 4
.IX Item "c."
Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
.IP "d." 4
.IX Item "d."
Limiting the use for publicity purposes of names of licensors or
authors of the material; or
.IP "e." 4
.IX Item "e."
Declining to grant rights under trademark law for use of some trade
names, trademarks, or service marks; or
.IP "f." 4
.IX Item "f."
Requiring indemnification of licensors and authors of that material by
anyone who conveys the material (or modified versions of it) with
contractual assumptions of liability to the recipient, for any
liability that these contractual assumptions directly impose on those
licensors and authors.
.RE
.RS 4
.Sp
All other non-permissive additional terms are considered \*(L"further
restrictions\*(R" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
.Sp
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
.Sp
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions; the
above requirements apply either way.
.RE
.IP "8. Termination." 4
.IX Item "8. Termination."
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
.Sp
However, if you cease all violation of this License, then your license
from a particular copyright holder is reinstated (a) provisionally,
unless and until the copyright holder explicitly and finally
terminates your license, and (b) permanently, if the copyright holder
fails to notify you of the violation by some reasonable means prior to
60 days after the cessation.
.Sp
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
.Sp
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
.IP "9. Acceptance Not Required for Having Copies." 4
.IX Item "9. Acceptance Not Required for Having Copies."
You are not required to accept this License in order to receive or run
a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
.IP "10. Automatic Licensing of Downstream Recipients." 4
.IX Item "10. Automatic Licensing of Downstream Recipients."
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
.Sp
An \*(L"entity transaction\*(R" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
.Sp
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
.IP "11. Patents." 4
.IX Item "11. Patents."
A \*(L"contributor\*(R" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's \*(L"contributor version\*(R".
.Sp
A contributor's \*(L"essential patent claims\*(R" are all patent claims owned
or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, \*(L"control\*(R" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
.Sp
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
.Sp
In the following three paragraphs, a \*(L"patent license\*(R" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To \*(L"grant\*(R" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
.Sp
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. \*(L"Knowingly relying\*(R" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
.Sp
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
.Sp
A patent license is \*(L"discriminatory\*(R" if it does not include within the
scope of its coverage, prohibits the exercise of, or is conditioned on
the non-exercise of one or more of the rights that are specifically
granted under this License. You may not convey a covered work if you
are a party to an arrangement with a third party that is in the
business of distributing software, under which you make payment to the
third party based on the extent of your activity of conveying the
work, and under which the third party grants, to any of the parties
who would receive the covered work from you, a discriminatory patent
license (a) in connection with copies of the covered work conveyed by
you (or copies made from those copies), or (b) primarily for and in
connection with specific products or compilations that contain the
covered work, unless you entered into that arrangement, or that patent
license was granted, prior to 28 March 2007.
.Sp
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
.IP "12. No Surrender of Others' Freedom." 4
.IX Item "12. No Surrender of Others' Freedom."
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey
a covered work so as to satisfy simultaneously your obligations under
this License and any other pertinent obligations, then as a
consequence you may not convey it at all. For example, if you agree
to terms that obligate you to collect a royalty for further conveying
from those to whom you convey the Program, the only way you could
satisfy both those terms and this License would be to refrain entirely
from conveying the Program.
.IP "13. Use with the \s-1GNU\s0 Affero General Public License." 4
.IX Item "13. Use with the GNU Affero General Public License."
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the \s-1GNU\s0 Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the \s-1GNU\s0 Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
.IP "14. Revised Versions of this License." 4
.IX Item "14. Revised Versions of this License."
The Free Software Foundation may publish revised and/or new versions
of the \s-1GNU\s0 General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
.Sp
Each version is given a distinguishing version number. If the Program
specifies that a certain numbered version of the \s-1GNU\s0 General Public
License \*(L"or any later version\*(R" applies to it, you have the option of
following the terms and conditions either of that numbered version or
of any later version published by the Free Software Foundation. If
the Program does not specify a version number of the \s-1GNU\s0 General
Public License, you may choose any version ever published by the Free
Software Foundation.
.Sp
If the Program specifies that a proxy can decide which future versions
of the \s-1GNU\s0 General Public License can be used, that proxy's public
statement of acceptance of a version permanently authorizes you to
choose that version for the Program.
.Sp
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
.IP "15. Disclaimer of Warranty." 4
.IX Item "15. Disclaimer of Warranty."
\&\s-1THERE\s0 \s-1IS\s0 \s-1NO\s0 \s-1WARRANTY\s0 \s-1FOR\s0 \s-1THE\s0 \s-1PROGRAM\s0, \s-1TO\s0 \s-1THE\s0 \s-1EXTENT\s0 \s-1PERMITTED\s0 \s-1BY\s0
\&\s-1APPLICABLE\s0 \s-1LAW\s0. \s-1EXCEPT\s0 \s-1WHEN\s0 \s-1OTHERWISE\s0 \s-1STATED\s0 \s-1IN\s0 \s-1WRITING\s0 \s-1THE\s0 \s-1COPYRIGHT\s0
\&\s-1HOLDERS\s0 \s-1AND/OR\s0 \s-1OTHER\s0 \s-1PARTIES\s0 \s-1PROVIDE\s0 \s-1THE\s0 \s-1PROGRAM\s0 \*(L"\s-1AS\s0 \s-1IS\s0\*(R" \s-1WITHOUT\s0
\&\s-1WARRANTY\s0 \s-1OF\s0 \s-1ANY\s0 \s-1KIND\s0, \s-1EITHER\s0 \s-1EXPRESSED\s0 \s-1OR\s0 \s-1IMPLIED\s0, \s-1INCLUDING\s0, \s-1BUT\s0 \s-1NOT\s0
\&\s-1LIMITED\s0 \s-1TO\s0, \s-1THE\s0 \s-1IMPLIED\s0 \s-1WARRANTIES\s0 \s-1OF\s0 \s-1MERCHANTABILITY\s0 \s-1AND\s0 \s-1FITNESS\s0 \s-1FOR\s0
A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. \s-1THE\s0 \s-1ENTIRE\s0 \s-1RISK\s0 \s-1AS\s0 \s-1TO\s0 \s-1THE\s0 \s-1QUALITY\s0 \s-1AND\s0
\&\s-1PERFORMANCE\s0 \s-1OF\s0 \s-1THE\s0 \s-1PROGRAM\s0 \s-1IS\s0 \s-1WITH\s0 \s-1YOU\s0. \s-1SHOULD\s0 \s-1THE\s0 \s-1PROGRAM\s0 \s-1PROVE\s0
\&\s-1DEFECTIVE\s0, \s-1YOU\s0 \s-1ASSUME\s0 \s-1THE\s0 \s-1COST\s0 \s-1OF\s0 \s-1ALL\s0 \s-1NECESSARY\s0 \s-1SERVICING\s0, \s-1REPAIR\s0 \s-1OR\s0
\&\s-1CORRECTION\s0.
.IP "16. Limitation of Liability." 4
.IX Item "16. Limitation of Liability."
\&\s-1IN\s0 \s-1NO\s0 \s-1EVENT\s0 \s-1UNLESS\s0 \s-1REQUIRED\s0 \s-1BY\s0 \s-1APPLICABLE\s0 \s-1LAW\s0 \s-1OR\s0 \s-1AGREED\s0 \s-1TO\s0 \s-1IN\s0 \s-1WRITING\s0
\&\s-1WILL\s0 \s-1ANY\s0 \s-1COPYRIGHT\s0 \s-1HOLDER\s0, \s-1OR\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1PARTY\s0 \s-1WHO\s0 \s-1MODIFIES\s0 \s-1AND/OR\s0
\&\s-1CONVEYS\s0 \s-1THE\s0 \s-1PROGRAM\s0 \s-1AS\s0 \s-1PERMITTED\s0 \s-1ABOVE\s0, \s-1BE\s0 \s-1LIABLE\s0 \s-1TO\s0 \s-1YOU\s0 \s-1FOR\s0 \s-1DAMAGES\s0,
\&\s-1INCLUDING\s0 \s-1ANY\s0 \s-1GENERAL\s0, \s-1SPECIAL\s0, \s-1INCIDENTAL\s0 \s-1OR\s0 \s-1CONSEQUENTIAL\s0 \s-1DAMAGES\s0
\&\s-1ARISING\s0 \s-1OUT\s0 \s-1OF\s0 \s-1THE\s0 \s-1USE\s0 \s-1OR\s0 \s-1INABILITY\s0 \s-1TO\s0 \s-1USE\s0 \s-1THE\s0 \s-1PROGRAM\s0 (\s-1INCLUDING\s0 \s-1BUT\s0
\&\s-1NOT\s0 \s-1LIMITED\s0 \s-1TO\s0 \s-1LOSS\s0 \s-1OF\s0 \s-1DATA\s0 \s-1OR\s0 \s-1DATA\s0 \s-1BEING\s0 \s-1RENDERED\s0 \s-1INACCURATE\s0 \s-1OR\s0
\&\s-1LOSSES\s0 \s-1SUSTAINED\s0 \s-1BY\s0 \s-1YOU\s0 \s-1OR\s0 \s-1THIRD\s0 \s-1PARTIES\s0 \s-1OR\s0 A \s-1FAILURE\s0 \s-1OF\s0 \s-1THE\s0 \s-1PROGRAM\s0
\&\s-1TO\s0 \s-1OPERATE\s0 \s-1WITH\s0 \s-1ANY\s0 \s-1OTHER\s0 \s-1PROGRAMS\s0), \s-1EVEN\s0 \s-1IF\s0 \s-1SUCH\s0 \s-1HOLDER\s0 \s-1OR\s0 \s-1OTHER\s0
\&\s-1PARTY\s0 \s-1HAS\s0 \s-1BEEN\s0 \s-1ADVISED\s0 \s-1OF\s0 \s-1THE\s0 \s-1POSSIBILITY\s0 \s-1OF\s0 \s-1SUCH\s0 \s-1DAMAGES\s0.
.IP "17. Interpretation of Sections 15 and 16." 4
.IX Item "17. Interpretation of Sections 15 and 16."
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
.Sh "\s-1END\s0 \s-1OF\s0 \s-1TERMS\s0 \s-1AND\s0 \s-1CONDITIONS\s0"
.IX Subsection "END OF TERMS AND CONDITIONS"
.Sh "How to Apply These Terms to Your New Programs"
.IX Subsection "How to Apply These Terms to Your New Programs"
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these
terms.
.PP
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the \*(L"copyright\*(R" line and a pointer to where the full notice is found.
.PP
.Vb 2
\& <one line to give the program\*(Aqs name and a brief idea of what it does.>
\& Copyright (C) <year> <name of author>
\&
\& This program is free software: you can redistribute it and/or modify
\& it under the terms of the GNU General Public License as published by
\& the Free Software Foundation, either version 3 of the License, or (at
\& your option) any later version.
\&
\& This program is distributed in the hope that it will be useful, but
\& WITHOUT ANY WARRANTY; without even the implied warranty of
\& MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
\& General Public License for more details.
\&
\& You should have received a copy of the GNU General Public License
\& along with this program. If not, see <http://www.gnu.org/licenses/>.
.Ve
.PP
Also add information on how to contact you by electronic and paper mail.
.PP
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
.PP
.Vb 4
\& <program> Copyright (C) <year> <name of author>
\& This program comes with ABSOLUTELY NO WARRANTY; for details type "show w".
\& This is free software, and you are welcome to redistribute it
\& under certain conditions; type "show c" for details.
.Ve
.PP
The hypothetical commands \fBshow w\fR and \fBshow c\fR should show
the appropriate parts of the General Public License. Of course, your
program's commands might be different; for a \s-1GUI\s0 interface, you would
use an \*(L"about box\*(R".
.PP
You should also get your employer (if you work as a programmer) or school,
if any, to sign a \*(L"copyright disclaimer\*(R" for the program, if necessary.
For more information on this, and how to apply and follow the \s-1GNU\s0 \s-1GPL\s0, see
<\fBhttp://www.gnu.org/licenses/\fR>.
.PP
The \s-1GNU\s0 General Public License does not permit incorporating your
program into proprietary programs. If your program is a subroutine
library, you may consider it more useful to permit linking proprietary
applications with the library. If this is what you want to do, use
the \s-1GNU\s0 Lesser General Public License instead of this License. But
first, please read <\fBhttp://www.gnu.org/philosophy/why\-not\-lgpl.html\fR>.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
\&\fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7).
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
Copyright (c) 2007 Free Software Foundation, Inc.
.PP
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.