This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: m68k bootstrapping broken
On Mon, Jan 05, 2004 at 05:06:11AM +0100, Bernardo Innocenti wrote:
> Richard Zidlicky wrote:
> >Hello,
> >
> >I am testing gcc-3.4-20031210. Bootstrapping fails with
> >this problems:
> >
> >stage1/xgcc -Bstage1/ -B/usr/m68k-rz-linux/bin/ -c -g -O2 -DIN_GCC -W
> >-Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic
> >-Wno-long-long -Wold-style-definition -Werror -DHAVE_CONFIG_H -I.
> >-I. -I../../gcc-3.4-20031210/gcc -I../../gcc-3.4-20031210/gcc/.
> >-I../../gcc-3.4-20031210/gcc/../include \
> > ../../gcc-3.4-20031210/gcc/config/m68k/m68k.c -o m68k.o
> >../../gcc-3.4-20031210/gcc/config/m68k/m68k.c: In function `output_andsi3':
> >
> >../../gcc-3.4-20031210/gcc/config/m68k/m68k.c:3285: warning: comparison
> >between signed and unsigned
> >make[2]: *** [m68k.o] Error 1
>
> Are you building with --enable-werror ?
yes, thats what "make bootstrap" did for me. I had to override
the Makefile to proceed to the next error.
> This is a long-standing warning,
> I'll fix that.
thanks.
> >/sources/rz-rpm/BUILD/build-gcc-3.4.0/gcc/xgcc
> >-B/sources/rz-rpm/BUILD/build-gcc-3.4.0/gcc/ -B/usr/m68k-rz-linux/bin/
> >-B/usr/m68k-rz-linux/lib/ -isystem /usr/m68k-rz-linux/include -isystem
> >/usr/m68k-rz-linux/sys-include -O2 -DIN_GCC -W -Wall -Wwrite-strings
> >-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem
> >./include -O3 -fomit-frame-pointer -m68020-60 -O2 -Dmc68060
> >-D__mc68060__ -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED
> >-I. -I -I../../gcc-3.4-20031210/gcc -I../../gcc-3.4-20031210/gcc/
> >-I../../gcc-3.4-20031210/gcc/../include -DL_lshrdi3 -c
> >../../gcc-3.4-20031210/gcc/libgcc2.c -o libgcc/./_lshrdi3.o
> >
> >../../gcc-3.4-20031210/gcc/libgcc2.c: In function `__lshrdi3':
> >../../gcc-3.4-20031210/gcc/libgcc2.c:361: error: unrecognizable insn:
> >(insn 35 34 36 3 ../../gcc-3.4-20031210/gcc/libgcc2.c:350 (set (reg:SI 39)
> > (lshiftrt:SI (subreg:SI (reg/v:DI 35 [ uu ]) 0)
> > (reg:SI 38))) -1 (insn_list 34 (nil))
> > (expr_list:REG_DEAD (reg/v:DI 35 [ uu ])
> > (expr_list:REG_DEAD (reg:SI 38)
> > (expr_list:REG_EQUAL (lshiftrt:SI (subreg:SI (reg/v:DI 35 [ uu
> > ]) 0)
> > (reg:SI 38))
> > (nil)))))
> >../../gcc-3.4-20031210/gcc/libgcc2.c:361: internal compiler error: in
> >extract_insn, at recog.c:2061
> >
> >When I compile libgcc with the same flags with a crosscompiler this
> >doesnt happen so it appears the compiler has miscompiled itself
> >somewhere else.. anyone else seen this?
>
> Never in m68k-*-uclinux nor m68k-*-elf. Neither uses -m68020-60, but
> I still can't reproduce the problem compiling the same code with
> m68k-uclinux-gcc:
>
> % m68k-uclinux-gcc -O2 -DIN_GCC -W -Wall -Wwrite-strings
....
....
did you ever bootstrap the compiler on uclinux? It does not happen
here with a crosscompiler here either.. in fact it built libgcc
and libstdc without problems.
It does happen with stage1 bootstrapped gcc and with a gcc that was
itself cross compiled for m68k-linux.
Does gcc-3.4 use any new binutils features aggressively?
> Do you have any local patches that might be triggering this ICE?
I have the "--with-cpu" and global register variables patches,
both very low on the list of suspects.
> You may also want to retry with a more recent CVS snapshot,
> just in case.
>
>
> >The crosscompiler so far works pretty well btw, working 2.4 & 2.6
> >kernels and some 3.2 problems fixed.
>
> That's good news. As you might have noticed, the m68k backend has
> been tortured quite a lot lately :-)
yes, quite a facelift.
Richard