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