This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
egcs 1004 libgcc2.c:884: Internal compiler error in 'allocate_reload_reg', at reload1.c:5557 under SCO Unix 3.2v4.0
- To: bug-gcc at gnu dot org, william at nscs dot fast dot net
- Subject: egcs 1004 libgcc2.c:884: Internal compiler error in 'allocate_reload_reg', at reload1.c:5557 under SCO Unix 3.2v4.0
- From: William Bader <william at nscs dot fast dot net>
- Date: Wed, 6 Oct 99 19:57:56 EDT
I tried building egcs-19991004 on SCO Unix 3.2v4.0.
I applied the 5 patches since 19990830.
My system has the sco dev sys, and I am building with
gnu gcc-2.7.2.1, gnu as-2.9.1, sco ld, gnu bison-1.28, gnu flex-2.5.4,
gnu make-3.78.1 and bash-2.04-beta1.
The build stopped quickly because it could not find "autoheader".
Is this due to a timestamp problem when building with patches instead of a
full distribution?
I made an empty script called "autoheader", and then the make continued.
The make died approximately the same ways as for the 0830 snapshot.
I was hoping that one of the edits to reload1.c would have helped.
I am pretty sure that this is an egcs problem (rather than flaky hardware
on my system) because the egcs list has several old reports which match
the error I had with the 0830 egcs. (The error below is slightly different.)
_fixunsdfdi
/u2/gnu/egcs-19991004/gcc/libgcc2.c: In function `__fixunsdfdi':
/u2/gnu/egcs-19991004/gcc/libgcc2.c:884: Could not find a spill register
(insn 32 29 34 (parallel[
(set (reg:DI 0 eax)
(fix:DI (reg/v:DF 8 st(0))))
(clobber (mem:SI (plus:SI (reg:SI 6 ebp)
(const_int -4 [0xfffffffc])) 0))
(clobber (mem:DI (plus:SI (reg:SI 6 ebp)
(const_int -12 [0xfffffff4])) 0))
(clobber (scratch:SI))
(clobber (scratch:XF))
] ) 135 {*fix_truncdi_1} (insn_list 29 (nil))
(expr_list:REG_DEAD (reg/v:DF 8 st(0))
(expr_list:REG_UNUSED (scratch:SI)
(expr_list:REG_UNUSED (scratch:XF)
(nil)))))
/u2/gnu/egcs-19991004/gcc/libgcc2.c:884: Internal compiler error in `allocate_reload_reg', at reload1.c:5557
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/faq.html#bugreport> for instructions.
gmake[2]: *** [libgcc2.a] Error 1
gmake[2]: Leaving directory `/u2/gnu/egcs-19991004/objdir/gcc'
gmake[1]: *** [bootstrap] Error 2
gmake[1]: Leaving directory `/u2/gnu/egcs-19991004/objdir/gcc'
When the build configures itself, it reports:
Using `/u2/gnu/egcs-19991004/gcc/config/i386/i386.c' to output insns.
Using `/u2/gnu/egcs-19991004/gcc/config/i386/i386.md' as machine description file.
Using `/u2/gnu/egcs-19991004/gcc/config/i386/sco4.h' as target machine macro file.
Using the following host machine macro files:
/u2/gnu/egcs-19991004/gcc/config/i386/xm-i386.h
/u2/gnu/egcs-19991004/gcc/config/i386/xm-sco.h
Is this reasonable for a SCO Unix 3.2v4.0 system on a Pentium?
Are any of these files likely to have "bit rot" that could cause register
allocation errors?
I got the bunch of warnings below, but the make seemed clean otherwise.
gcc -c -DIN_GCC -O -pipe -DHAVE_CONFIG_H -I. -I/u2/gnu/egcs-19991004/gcc
-I/u2/gnu/egcs-19991004/gcc/config -I/u2/gnu/egcs-19991004/gcc/../include
/u2/gnu/egcs-19991004/gcc/rtl.c
In file included from /u2/gnu/egcs-19991004/gcc/rtl.c:177:
/u2/gnu/egcs-19991004/gcc/machmode.def:73: warning: left shift count >= width of type
/u2/gnu/egcs-19991004/gcc/machmode.def:74: warning: left shift count >= width of type
...
/u2/gnu/egcs-19991004/gcc/machmode.def:119: warning: left shift count >= width of type
William