On May 28, 2022, at 5:57 PM, Warner Losh <imp@bsdimp.com> wrote:
>
> HP-UX had a weird form of COFF in the early days. IBM AIX had its own thing that wasn't quite COFF, nor was it quite a.out. Apollo also had a variation on COFF that wasn't quite standard. I wrote a symbol mangler for all of these in the early 90s and each one was its own special snowflake.
HP initially used its own object file format for 32-bit PA-RISC, whether running HP-UX or MPE. I believe it's still the format the ROM expects for anything bootable, at least it is for my MPE-capable A400.
IBM's COFF for AIX on POWER and PowerPC was XCOFF, which was also used as the initial object file format (though not executable format) for the Power Macintosh. Apple's Preferred Executable Format was essentially a mechanical translation away from IBM's XCOFF; the initial toolchains produced .o files and then a "final" binary in XCOFF format, and then ran a MakePEF tool on that to produce the PEF binary for an executable or shared library. I believe Be, due in part to their heritage and toolchains, also used PEF for BeOS on PowerPC.
And then there's the "b.out" format used by i960…