[comp.sys.ibm.pc] 68000 Cross Compilers: Opinions & Recommendations

0rrodrig@teknowledge-vaxc.ARPA (Russ Rodriguez) (10/05/88)

Several weeks ago, I asked the net for recommendations on 68000 cross
compilers.  I failed to specify that I was interested in assembly language
compilers, but the kind persons responding didn't flame me for it.  Here is
a compilation of the replys -- some rather lengthy, but well worth it in
my opinion.  My deepest thanks to the respondents. -- Russ

-------  68000 Cross Compilers: Opinions & Recommendations  ------------

Dr. Dobb's ran a series on a 68000 x-asm written in modula-2 -- they offer
the source and executables on disk.  Contact M & T Publishing - 800-533-4372
----------------------

Check with your local Motorola Sales office, and ask for a copy of "The Source"
(Motorola Document number BR506/D).  This lists quite a few cross compilers
and assemblers for MSDOS machines.  Since you didn't specify what language, I
can't list any here (there are 14 MSDOS cross assembler entries, 10 cross
C compiler entries, 2 cross Modula-2 entries, and 4 cross Pascal entries).
Note that these are all commercial products, I don't know where to get a 
reasonably complete compendium of pd cross-support.

This manual (BR506) is also now available as a HyperCard(tm) stack, but only
through me, not through the local sales office.  I was thinking of posting
it, but it's BIG (about 500K bytes).  The stack is a little more up to date
than the manual, and we would **like** to post it to see if there was any
interest in distributing information in this format.  If there is sufficient
interest, we are considering expanding the stackware offering (which now
only includes "The Source" for both 68000 and 88000 families), to include
all Motorola MPUs.

|  Tom Johnson
|  Motorola High End Marketing
|  6501 Wm. Cannon Dr. West m/s OE33
|  Austin, TX  78735-8598
|
|  tomj@oakhill.UUCP
----------------------

I recently completed a large real-time application for a 68020, hosted
on MS-DOS 3.1.

I tried both the MICROTEC C68K and AZTEC C68 cross development systems.
Here are some of my impressions:

MICROTEC C68K:

	The MICROTEC is a port of the really nice Greenhills 
	compiler, originally written for the Apple LISA, but
	ported to UNIX V, Apollo, SUN, McIntosh, etc.  The Greenhills
	compiler creates fast, well optimized code that is hard
	to beat even in assembler.

	MICROTEC apparently had a lot of trouble shoe-horning the
	Greenhills compiler into 640K.  The MS-DOS version does
	not optimize nearly as well as the Greenhills UNIX version,
	but is still better than average.

	Compilation times are agonizingly slow, requiring about
	45 minutes to regenerate a 100K object on a 16MHz 386 AT.
	Some of the source files that compiled fine on the UNIX
	PCC, UNIX Greenhills, and AZTEC C68 crashed the MICROTEC
	system in a big way.  It filled the screen with junk characters,
	crashed MS-DOS (needed reboot), and even trashed the disk
	directory (needed Norton Utilities repair).  I suspect 
	some kind of memory overflow problem while multiple files
	were open for update.

	The compiler doesn't bother to use MS-DOS error codes, so
	you really have to watch your makefiles carefully (they will
	NOT stop on error).

	The MICROTEC assembler is great if you like VAX/VMS 
	interactive prompt & drag.  If you're used to UNIX you'll
	miss reasonable command line switches, stdio redirection,
	using CPP for #ifdefs in your assembly files, etc.

	I didn't like the MICROTEC system so I complained and sent
	it back.  To their credit, MICROTEC refunded my $1750 without
	a fight.

AZTEC C68:

	The AZTEC C 68 package is simple, rugged, and reasonably
	fast.  It's optimization is not as good as Greenhills, but
	ties with MICROTEC.  For your $950 you get:

		C 68000/010/020 and 68881 cross compiler
		Motorola syntax assembler
		Linker, Librarian, Symbol table utilities
		Complete standalone C run-time library including source

	Just for grins, AZTEC also gives you their complete C 86 
	package when you buy the C 68.  I guess they expect you to
	prototype your high-level C code and debug it under MS-DOS.
	This is the top-dollar C 86 professional package including
	source code and licensing rights for all AZTEC libraries.

	The AZTEC system is reasonably priced, fairly easy to use,
	and definitely will get the job done for you.  The following
	are my only complaints, most of which can be overcome with
	clever command line switches and (occasionally) tweaking some
	of the C library source code:

		defaults to 16-bit (vs 32-bit) integers
		defaults to short pointers
		defaults to short PC-relative data addressing
		librarian limited to 64K total objects size, cannot handle
			large objects e.g. kernel or large driver modules
		uses strange CPM 68K object file format.  Not compatable
			with UNIX a.out
		CPP cannot be used as a standard preprocessor on assembler
			files.
		Unusually touchy about pointer & integer type casting,
			reminiscent of 8086 compilers

	The AZTEC make program is a downscaled UNIX make.  It doesn't
	support multiple directories very well, but all the .SUFFIXES
	and multiple target support is there.  The compiler and assembler
	use MS-DOS return codes correctly, and make automatically stops
	on error unless you ask it not to.  It is much nicer than
	Microsoft make, and about the same as NDMake.

SUMMARY:

	I don't recommend MICROTEC.
	I do recommend AZTEC for general purpose cross development, especially
		if you are budget conscious.
	For truly fast, optimized code however, nothing beats the Greenhills
		compiler system.  Unfortunately you will need UNIX, a Mac,
		a SUN, APOLLO, or Amiga workstation with 2 Meg RAM or more
		to run it.
----------------------------------------
 
Last summer I used C and 68000 assembler cross compilers in the place where
I worked. The C compiler produced first 68K assembly language code, which
then had to be run thru the assembler. The assembler produced Motorola S-
records (and also something else, I just can't remember; the S-records were
just fine for me :-) )

But now comes the hard point: _IF_ (and only if) I remember correctly, the
whole package was made by MICROTEC CORP./LTD. (????) and was called PARAGON.
The C compiler was called MCC68K and the assembler ASM68K. So it was not PD.

The environment was an AT-clone with a hard disk (also a PC was used sometimes)
-----------------

Russell Rodriguez
------------------------------------------------------------------------------
Disclaimer:   The opinions of Russ Rodriguez are his own and couldn't possibly
	    reflect those of his employer: Teknowledge, Inc., of Palo Alto, CA
------------------------------------------------------------------------------
internet:  0rrodrig@teknowledge-vaxc.arpa
usenet:	   {uunet|sun|ucbvax|decwrl|uw-beaver}!0rrodrig%teknowledge-vaxc.arpa