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