[mod.computers.apollo] /usr/include/a.out.h missing in SR9

ekrell@LOCUS.UCLA.EDU (Eduardo Krell) (11/22/85)

I was trying to port a 4.2 program to SR9 and found that there is no
<a.out.h>. It could be that just the node I was using was missing that
file but if indeed there is no a.out.h then what do you do with programs
that use "sizeof exec" ?

JW-Peterson@UTAH-20.ARPA (John W Peterson) (11/22/85)

The fact that a.out.h is missing is intentional.  Because the Apollo doesn't
use the wretched Bell labs/PCC compiler, the internal format of binary
and library files is completly different.  The linker (what Apollo calls
the binder) is also much different, for example you can't use "ar" to build
subroutine libraries.

If the program you're porting depends extensivly on the binary file format
(and hence a.out.h) you may simply be out of luck (though I've heard rumors
of a compatibilty kludge for SRn+i).  However, in several cases of porting
code here I've been able to work around it by no-op'ing out whatever feature
needed to look at a.out.h (e.g., things that dig in /dev/kmem to find
load averages and so forth).

[Personally, I would never trade the Apollo's C compiler for PCC compatibility.
It runs 2-3 times faster than PCC, produces much better diagnostics,
and has better debugging facilities...]
-------

jnp@BROWN.CSNET (Joe Pato) (12/02/85)

John Peterson is correct in saying that the apollo object module format
is different from either 4.2 or sys5, but he is wrong in stating that
you cannot build subroutine libraries with ar.	ar is supported at sr9
and will create a standard UNIX archive if the files are not object modules,
or it will create an apollo format object library if the elements are
all object files.  SR9.x is rumored to support a number of programs that
work with archives (e.g., make, nm)

- Joe Pato
  Box 1910 - Dept. of Computer Science
  Brown University
  Providence, R.I. 02912 (USA)

  ARPA: jnp%brown@csnet-relay	UUCP: {decvax,ihnp4,allegra}!brunix!jnp