Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site unccvax.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!mcnc!unccvax!dsi
From: dsi@unccvax.UUCP (Dataspan Inc)
Newsgroups: net.lang.c,net.micro,net.micro.68k,net.wanted
Subject: Re: hot 68000 C cross-compiler sought
Message-ID: <120@unccvax.UUCP>
Date: Fri, 11-Jan-85 15:43:49 EST
Article-I.D.: unccvax.120
Posted: Fri Jan 11 15:43:49 1985
Date-Received: Sun, 13-Jan-85 09:21:01 EST
References: <1258@bbncca.ARPA>
Organization: UNC-Charlotte
Lines: 44
Keywords: Tartan Labs, workstations vs. embedded systems
Xref: watmath net.lang.c:3842 net.micro:9042 net.micro.68k:509 net.wanted:5523


     We talked to Tartan last spring, when we were hot for a hot C-compiler.
We had been using the MIT compiler on a 750 running 4.1, and someone lost
the source, so when we went 4.2, we decided to get another compiler.

     Tartan called us about 4 months too late to annouce that their 68k
cross compiler for VAX/4.2 bsd was ready, at $ 6,000. We bought the Alcyon
compiler for cross-development, and on a 6000 line program, it is about
15 % more dense in code. Unfortunately, there are  more than a few bugs
which do nasty things like force your addressing to the lowest 64k when
you call certain object modules by certain names (like panic.o and p(n).o,
where n is an integer, prog.o, abort.o ... your usual O.S. names), it
also incorrectly compiles certain pointer operations by adding irrelevant
shifts to the operands. This last bug even extends to comparing pointers
to constants. For example


long *p;

p = 32;

if ( p == 32 ) /* do something intelligent */

generates something stupid in the assembly code like    cmpi 128,RX 

     My expert in this area claims that comparing to 2 is impossible. Not
that this trivial example is going to screw you up, but there are some
really deep-seated bugs you can get from the weird things this compiler
generates if you don't watch it. 

     It was cheap, however, ($1250) and doesn't do stupid things like
generates branches to the next label right below. Another really annoying
thing is that (I think, for the first time) an int is not a full register
width. 

     We also bought a Whitesmiths C-compiler for a PDP 11/34 running RSX-11
as well as on our Idris system. It doesn't seem to have these bugs but I
don't think it is terribly hot, either.

     If anyone has any suggestions about a half-decent compiler, I'd like
to hear about them by mail

dya