XCOFF stands for eXtended Common Object File Format, first used in AIX on IBM RS/6000.

Though the default name for an XCOFF executable is a.out, it is not by any means the same format.

The problem with XCOFF is that it is huge, and quite demanding in the level of detail it wants its object described in, which is why it has not been used so widely by anyone who had any other choice.

XCOFF can contain a composite header consisting of a file header, an auxiliary header and several section headers. It can than be followed by some raw data sections and perhaps some relocation information as well as some line numbering information for debuggers to use. At the end we can have a symbol table of some sort and a string table that is associated with it and perhaps the code that the raw data sections can contain.

The good thing about XCOFF is that it provides for including plenty of programming language-specific debugging info.

XCOFF supports 32-bit and 64-bit systems.