egcs-19990830 + sco unix 3.2v4.0 gets libgcc2.c:888: Internal compiler error in 'allocate_reload_reg', at reload1.c:5581

William Bader william@nscs.fast.net
Sun Sep 5 15:59:00 GMT 1999


egcs-19990830 gets the error below under sco odt 2.0 (sco unix 3.2v4.0).

My system has the sco odt 2.0 dev sys.
I am doing the build with gcc-2.7.2.1,
gas-2.9.1 (which I have in /usr/local/bin/as, and /usr/local/bin is before
/bin in my PATH), sco /bin/ld, flex-2.5.4, bison-1.27, gmake-3.77,
and a hacked bash-2.04-alpha1.

I get the same error with gcc-2.95.1, even when I change the build to
compile with -O0.  Is there any place I should start looking?
Do I need to submit a log with --save-temps?

I have simplified the Makefile.in and gcc/Makefile.in to reduce the command
line length with changes like the one below.

-AR_FOR_TARGET = ` \
-  if [ -f $(objdir)/../binutils/ar ] ; then \
-    echo $(objdir)/../binutils/ar ; \
-  else \
-    if [ "$(host_canonical)" = "$(target)" ] ; then \
-      echo ar; \
-    else \
-       t='$(program_transform_name)'; echo ar | sed -e $$t ; \
-    fi; \
-  fi`
+AR_FOR_TARGET = ar

Here is the end of the make:

for name in _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi _fixtfdi _fixunstfdi _floatditf __gcc_bcmp _varargs __dummy _eprintf _bb _shtab _clear_cache _trampoline __main _exit _ctors _pure; \
do \
  echo ${name}; \
  /u2/gnu/egcs-19990830/objdir/gcc/xgcc -B/u2/gnu/egcs-19990830/objdir/gcc/ -B/usr/local/i686-pc-sco3.2v4.0/bin/ -I/usr/local/i686-pc-sco3.2v4.0/include -O2   -DIN_GCC    -O  -pipe -I./include   -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED   -I. -I/u2/gnu/egcs-19990830/gcc -I/u2/gnu/egcs-19990830/gcc/config -I/u2/gnu/egcs-19990830/gcc/../include -c -DL${name} \
       /u2/gnu/egcs-19990830/gcc/libgcc2.c -o ${name}.o; \
  if [ $? -eq 0 ] ; then true; else exit 1; fi; \
  ar rc tmplibgcc2.a ${name}.o; \
  rm -f ${name}.o; \
done
_muldi3
_divdi3
_moddi3
_udivdi3
_umoddi3
_negdi2
_lshrdi3
_ashldi3
_ashrdi3
_ffsdi2
_udiv_w_sdiv
_udivmoddi4
_cmpdi2
_ucmpdi2
_floatdidf
_floatdisf
_fixunsdfsi
_fixunssfsi
_fixunsdfdi
/u2/gnu/egcs-19990830/gcc/libgcc2.c: In function `__fixunsdfdi':
/u2/gnu/egcs-19990830/gcc/libgcc2.c:888: Could not find a spill register
(insn 38 35 40 (parallel[ 
            (set (reg:XF 31)
                (float:XF (reg/v:DI 3 %ebx)))
            (clobber (mem:DI (plus:SI (reg:SI 6 %ebp)
                        (const_int -12 [0xfffffff4])) 0))
        ] ) 197 {floatdixf2+1} (insn_list 35 (nil))
    (nil))
/u2/gnu/egcs-19990830/gcc/libgcc2.c:888: Internal compiler error in `allocate_reload_reg', at reload1.c:5581
Please submit a full bug report.


More information about the Gcc-bugs mailing list