[net.wanted] 4.1 BSD & SysV C

vacca@burdvax.UUCP (Dave Vacca) (03/29/84)

I'm interested in the difference between the C compiler running
under Berkeley 4.1 BSD and the C compiler running under Sys V.
Are there differences? And, will these differences affect comparisons
between the two compilers?  We have successfully run test programs
using both compilers.  They seem to be somewhat compatible yet I'm
not sure that they are internally creating the same object code.

David Vacca                          (215)269-1100 x333
                                     ..!burdvax!vacca

gwyn@brl-vgr.ARPA (Doug Gwyn ) (03/31/84)

I don't know about the 4.1BSD C compiler per se but I have experience
with the 4.1cBSD and 4.2BSD compilers vs. the UNIX System V (Release 1)
version.

The two compilers differ in three major ways:

(1) Different object module format (actually this is determined by the
assembler "as", not the C compiler proper, except for various things
like symbol entries and use of common vs. data storage).

(2) The BSD compilers allow long variable names ("flexnames").  This
is supported in UNIX System V Release 2, which I do not yet have.

(3) The BSD compilers have many more bugs.  The worst example is that
they do not know how to deal with pointers to void-valued functions.
But their "optimizers" often break code and various other things are
wrong with the code they generate.

I am pretty sure that the 4.1cBSD C compiler was pretty much a UNIX
System III PCC, judging by the code and the particular set of bugs it
has.  If not exactly System III, then some version about the same
vintage.

When I started the BRL UNIX System V emulation for 4.2BSD, I intended
to use the Berkeley C compiler rather than adapt the UNIX System V one
to work on 4.2BSD.  However, I got so utterly disgusted with the BSD
compiler that I changed my mind and now use only the System V version.
I don't know about the rest of the world, but I have a job to get done
and can't afford to fight broken software any more than absolutely
necessary.