There seems to be a bug in egcs on i386. When doing a straight compile of Kerberos 5 from the MIT sources, the 'make' eventually dies: cc -fPIC -O2 -m486 -fno-strength-reduce -D_GNU_SOURCE -DHAVE_LIBNSL=1 -DPOSIX_FILE_LOCKS=1 -DHAS_UNISTD_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_TIME_H=1 -DHAS_STDLIB_H=1 -DLSBFIRST=1 -DSIZEOF_INT=4 -DBITS32=1 -DKRB4_USE_KEYTAB=1 -DHAVE_SETEUID=1 -DHAVE_SETREUID=1 -DHAVE_SETRESUID=1 -DKRB5_KRB4_COMPAT -I./../../include -I../../include -I./../../include/krb5 -I../../include/krb5 -I./../../include/kerberosIV -o shared/g_ad_tkt.o -c g_ad_tkt.c cc: Internal compiler error: program cc1 got fatal signal 11 make: *** [g_ad_tkt.o] Error 1 If I type in that same command line manually, _without_ the -O2 flag, the compile succeeds without an error. So I'd guess there is a bug in the optimizer that is showing up at least on the i386 platform. I've tried this on two different machines with Red Hat 6.0/Intel: a dual PPro/200 and a single PII-400. The same error occurs on both machines. The compile works fine on an Alpha 21164 system with Red Hat 6.0. (aside from an include file bug in the Kerberos sources) I haven't tried using gcc 2.95 to see if the bug has been fixed. -Chris Wing wingc.edu
Please supply the output of gcc -E (so that we can reproduce the bug by feeding this file directly to cc1, with worrying about kerberos5 header files and so on). Of course that is assuming you always get a sig11 on this particular file - if the sig11 is intermittent or sometimes happens on another file, it is probably a hardware problem (see seg11 FAQ).
The crash is 100% repeatable on i386 (tried it on 3 different machines so far). I tried it on a Red Hat 6.0/Alpha machine and it didn't crash. Here is the code which makes it fail: (gcc -E output like you requested) http://www.engin.umich.edu/caen/systems/Linux/code/misc/make_egcs_crash.c cc -fPIC -O2 -m486 -fno-strength-reduce -o die.o -c make_egcs_crash.c causes egcs to crash with a sig11 failure, but cc -fPIC -m486 -fno-strength-reduce -o die.o -c make_egcs_crash.c works okay. So I'm guessing it's a bug in the optimizer. -Chris wingc.edu
See http://egcs.cygnus.com/ml/gcc-patches/1999-08/msg01007.html for a patch to egcs for this bug. There isn't a new RPM package containing this fix yet.
Christopher Allen Wing <wingc.edu> writes in email: Thanks for taking a look at the bug and fixing it! I'll rebuild my egcs RPM with the patch and try it out. (in the meanwhile, I just built Kerberos 5 disabling the optimizer on that particular file)
Fixed in the egcs which ships with Red Hat Linux 6.1.