Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
ar(4)			   Kernel Interfaces Manual			 ar(4)

       ar - common archive file	format

       The  command  is	used to	concatenate several files into an archive file
       (see ar(1)).  Archives are used mainly as libraries to be  searched  by
       the link	editor (see ld(1)).

       Each archive begins with	the archive magic string.

       Following  the archive magic string are the archive file	members.  Each
       file member is preceded by a file member	header which is	of the follow-
       ing format:

       All  information	in the file member headers is in printable ASCII.  The
       numeric information contained in	the headers is stored as decimal  num-
       bers  (except  for  which  is in	octal).	 Thus, if the archive contains
       printable files,	the archive itself is printable.

       The contents of the field are slash terminated and  blank-padded.   The
       field is	the modification date of the file at the time of its insertion
       into the	archive.  Common format	archives can be	moved from  system  to
       system  as  long	 as  the  portable archive command is used.  Note that
       older versions of did not use the common	archive	format,	and those  ar-
       chives cannot be	read or	written	by the common archiver.

       Each  archive  file  member begins on an	even byte boundary; a new-line
       character is inserted between files if  necessary.   Nevertheless,  the
       size given reflects the actual size of the file exclusive of padding.

       Notice  there  is  no provision for empty areas in an archive file.  If
       the archive symbol table	exists,	the first file in the  archive	has  a
       zero-length name	(i.e., and The contents	of this	archive	member are ma-
       chine-dependent.	 Refer to the appropriate a.out(4)  manual  entry  for
       more information.

       Each  archive which contains object files (see a.out(4))	may include an
       archive symbol table.  This symbol table	is used	 by  the  link	editor
       (see  ld(1))  to	 determine which archive members must be loaded	during
       the link	edit process.  The archive symbol table	(if it exists) is  al-
       ways the	first member in	the archive (but is never listed) and is auto-
       matically created and/or	updated	by

       If a member with	a file name greater than 15 bytes  exists  within  the
       archive,	 then the archive will also contain an additional special mem-
       ber to store the	long file name string table. The special string	 table
       member has a zero length	name where and

       If  a  special string table exists, it will precede all non-special ar-
       chive members. If both a	symbol table member and	a string table	member
       exist then the symbol table member will always precede the string table

       Each entry in the string	table is followed by a slash  and  a  new-line
       character. The offset of	the table begins at zero. If an	archive	member
       name exceeds 15 bytes, then the entry in	the member's header  does  not
       contain	a  name,  instead it contains the offset into the string table
       preceded	by a slash.

       For example, the	member name contains in	the field.  This value	repre-
       sents  the  offset  into	the string table.  The member name contains in
       the field.  The long name string	table would have the following format:

		+0   +1	   +2	 +3    +4    +5	   +6	 +7    +8    +9
	     0|	t  |  h	 |  i  |  s  |	i  |  s	 |  a  |  v  |	e  |  r	|
	    10|	y  |  l	 |  o  |  n  |	g  |  f	 |  i  |  l  |	e  |  n	|
	    20|	a  |  m	 |  e  |  .  |	o  |  /	 | \n  |  y  |	e  |  t	|
	    30|	a  |  n	 |  o  |  t  |	h  |  e	 |  r  |  l  |	o  |  n	|
	    40|	g  |  f	 |  i  |  l  |	e  |  n	 |  a  |  m  |	e  |  .	|
	    50|	o  |  /	 | \n  |

   System Tools:
       ar(1)		 create	archived libraries
       ld(1)		 invoke	the link editor

       a.out(4)		 assembler, compiler, and linker output
       magic(4)		 magic number for HP-UX	implementations
       ranlib(1)	 regenerate an archive symbol table
       strip(1)		 strip symbol and line number information from an  ob-
			 ject file

       removes	 the  archive  symbol  table  member  from  the	 archive  (see
       strip(1)).  The archive symbol table must be restored by	using the  op-
       tion  of	the command or the ranlib(1) command before the	archive	can be
       used with the link editor.



Want to link to this manual page? Use this URL:

home | help