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.