| .\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.35 | 
 | .\" | 
 | .\" 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.  | will give a | 
 | .\" real vertical bar.  \*(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-|\(bv\*(Tr | 
 | .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\} | 
 | .\" | 
 | .\" 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. | 
 | .if \nF \{\ | 
 | .    de IX | 
 | .    tm Index:\\$1\t\\n%\t"\\$2" | 
 | .. | 
 | .    nr % 0 | 
 | .    rr F | 
 | .\} | 
 | .\" | 
 | .\" For nroff, turn off justification.  Always turn off hyphenation; it makes | 
 | .\" way too many mistakes in technical documents. | 
 | .hy 0 | 
 | .\" | 
 | .\" 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 "2011-04-15" "binutils-2.20.51" "GNU Development Tools" | 
 | .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]] \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 "\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. | 
 | .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. | 
 | .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 "\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. | 
 | .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 | 
 | 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". |