[comp.sys.isis] Problem with Isis and gcc 1.39 on sparc architecture.

rcbc@cs.cornell.edu (Robert Cooper) (03/14/91)

We have discovered an incompatibility between some Isis code (varargs
processing actually) and the gcc version 1.39 on the sparc architecture.  
gcc 1.39 will give errors when compiling mlib/msg_fmt.c and
clib/cl_bcast.c. If somehow you got gcc to give a clean compile you 
would still get problems at run-time.

Examining the change log for gcc it appears that for revisions 1.38 and
later of gcc, the argument passing conventions and the implementation 
of varargs.h changed on the sparcs. We are back to version 1.37.1 of
gcc and are running fine, and we recommend that you do the same. 

It would also appear that calling Sun C from gcc and vice versa is
error-prone and should be avoided, even if you don't use Isis.
We have not tested gcc against Isis on any other machines. A cursory look
at the documentation suggests that gcc and Isis are still compatible on 
680x0 machines (Sun3s, HP 9000/300s and 400s etc), on MIPS machines
(DECStations etc.). In general, Isis may have problems with varargs on
eany machine/compiler that does not define "va_list" to be "char *".

The long term fix to this involves a rewrite of the argument processing
most of the Isis routines that take a variable number of arguments. Its on
our list but is not something we will get to any time soon.
 
                           -- Robert Cooper