4.1 BSD & SysV C
Doug Gwyn
gwyn at brl-vgr.ARPA
Sat Mar 31 16:38:01 AEST 1984
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.
More information about the Comp.unix.wizards
mailing list