[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: "a.out"



"e" == eichin  <eichin@cygnus.com> writes:

  e> I don't know what the "Magic Garden Explained" book is, but it's,
  e> well, *wrong*, if you rendition of it is accurate.
   
   Here is what I based my rendition on:

   "Executable files created by the compilation system are called
_a.out_ files, because the default link editor and assembler is a file
called _a.out_. Within each _a.out_ file is _header_. The _header_
holds the information about the format and sructure of the program
within the file.
    "Prior to UNIX System V Release 4, _a.out_ ... files on System V
versions of Unix used the _Common_ _Object_ _File_ _Format_
(COFF). COFF is supported in UNIX System 5 Release 4, although a new
_a.out_ format is introduced called _Extensible_ _Linking_ _Format_
(ELF). ...

    "Although both ELF and COFF object formats contain similar
information, the information is stored in the files in different
formats." [pp 143-144]
    
    "The only executable objects that Unix System V Release 4 supports
at present are ELF or COFF file formats, or executable text files
(shell scripts). However, the design is flexible enough to incorporate
newer exectable object formats into the operating system as they
become available." [p. 259]
   
  e> a.out is one format; COFF is another (and it's Common Object *File*
  e> Format); ELF is yet another. a.out is real simple -- the header
  e> contains a couple of addresses and that's basically it. There is a
  e> "string table" which is filled in with assembler ".stab" directives;
  e> this is used for debugging (-g) info, and is thus called "stabs"
  e> debugging records. COFF is a lot more complicated, it has named
  e> sections, and a very C-specific debugging format tied to it. ELF is
  e> more general, and has a more advanced debugging format tied to it --
  e> which doesn't get used much either; it's fairly common, especially
  e> with the GNU tools, to use use a COFF or ELF named section to hold
  e> STABS debug information.

  e> LInux can run COFF files -- if you've got the iBCS2 package (for SCO
  e> compatibility) installed.

	
    Ok, thank you, I think I get the point that SVR4 COFF and non-ELF
linux-gcc output format (by any name) are not the same thing after
all, but I am left wondering if non-ELF linux-gcc output format
qualifies as what Goodheart and Cox call an `executable object format'
in SVR4.

	SVR4 Executable Object Formats
	------------------------------
	COFF
	ELF
	non-ELF linux-gcc output format?

    (I am, btw, only asking, not being argumentative.)

    
   Bill
  
   


Reply to: