Subject: Re: ar
To: ITOH Yasufumi <>
From: Todd Vierling <>
List: tech-toolchain
Date: 12/13/1999 10:31:44
On Mon, 13 Dec 1999, ITOH Yasufumi wrote:

:  1. ar produces Berkeley file format
:  2. ar produces SysV ("/" at the end of file names) file format

System V filenames have many other differences.  However, the binutils based
ar(1) is supposed to produce System V compliant archives on ELF systems.  
It does, on alpha, so this is likely an arch-specific bug (i386, sparc?).

(In fact, binutils ar(1) originally could not produce 4.4BSD archives, only
"truncated" V7 archives.  I wrote the code for 4.4BSD writing support.)

: ar symbol table:
:  a. ar doesn't produce symbol table
:  b. ar produces "/" table
:  c. ar produces "__.SYMDEF" table
: ranlib:
:  A. ranlib produces "__.SYMDEF" table
:  B. ranlib produces "/" table
:  C. ranlib produces "__.SYMDEF" table unless it has "/" table
:  D. ranlib produces "/" table unless it has "__.SYMDEF" table
:  E. ranlib doesn't exist
: The orignal Berkeley systems are 1-a-A.
: The SysV systems are 2-b-E.
: Currently we have 1-b-C toolchain.

We attempt to follow the System V standard for ELF, so all ELF systems
should be one of 2-b-[CDE].  Which of C, D, E isn't particularly important,
as the binutils-based ld(1) *should* be able to handle both formats.

-- Todd Vierling (